• ベストアンサー

エクセルの関数

同じ列のセルに、上段又は下段で記入済みの同じ記号や数字・文字を入力した場合、エラー表示(又は入力を受け付けない)を出せるような関数はないでしょうか?よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • haccyan
  • ベストアンサー率43% (27/62)
回答No.5

こんばんは。 D列に入力する場合、 E列を作業用セルとします。E1を、=COUNTIF(D:D,D1)として下にフィルコピー。 次にD1に条件付き書式で[数式が]、[=E1>=2]のとき書式を、 たとえば網掛けのパターンで”赤”を選択して下にフィルコピー。 これでD列にある、同内容のセル全てが赤の網掛けになります。 エラー表示や入力を受け付けないわけではありませんが、 セルが赤の網掛けに変わることで注意を促します。

karen-sk
質問者

お礼

ありがとうございました。 最も簡単に目的を達することができました。

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

入力セルがどのセルか判らないのに、既出回答は良いのでしょうか。 関数、入力規則では無理ではないでしょうか。(勘違いあれば、ご回答者には、すみません) それで VBAでそれらしきものを作りました。 A列のA1:A30の中で、任意のセルに(A1から順に入力するのでなく) 入力する場合です。 Sheet1のシートモジュールで、Changeイベントのプロシージュアーに 作ります。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 Then r = Target.Row If WorksheetFunction.CountIf(Range(Cells(1, "A"), Cells(r - 1, "A")), Target) <> 0 Then MsgBox "erra" Target = "" End If If WorksheetFunction.CountIf(Range(Cells(r + 1, "A"), Cells(30, "A")), Target) <> 0 Then MsgBox "errb" Target = "" End If End If End Sub Changeイベントですから、色々なケースで、うまくいかないケースが あるかもしれません。普通の入力、DELETE、コピー貼り付け はうまくいきそうです。

karen-sk
質問者

お礼

ありがとうございました。 詳しくご説明頂きましたが、マクロが理解できいないでの、残念でした。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.3

「データ」「入力規則」で入力値の種類を「ユーザー設定」 式を「=COUNTIF(列の入力範囲の絶対参照,セルの絶対参照)=1」 ですね。A列でA2の場合 =COUNTIF($A:$A,$A2)=1 同じ列に同じ値があると(式の結果が2以上になるため)エラーになります。 ただし、値を別のセル等からコピーして、貼り付けの場合はこの設定が消えるので対応できません。

karen-sk
質問者

お礼

ありがとうございました。

回答No.2

これでどうでしょう? A1からA4とA6からA11までデータが入っていたとして、 今回はA5に文字を入力するとします。 B5に=IF(VLOOKUP(A5,A1:A11,1,FALSE)=A5,"エラー","") を入れれば、A5に入力した数字または文字が列内にあればB5にエラー、列内に無ければ空白が表示されます。

karen-sk
質問者

お礼

ありがとうございました。

  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.1

関数ではなく、「データ」-「入力規則」で設定可能です。 ユーザ設定で数式を「<> 任意のセル」に指定ください。 メッセージなどは、他のタブで調整ください。

karen-sk
質問者

お礼

ありがとうございました。

関連するQ&A

専門家に質問してみよう