- ベストアンサー
エクセルの関数
同じ列のセルに、上段又は下段で記入済みの同じ記号や数字・文字を入力した場合、エラー表示(又は入力を受け付けない)を出せるような関数はないでしょうか?よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 D列に入力する場合、 E列を作業用セルとします。E1を、=COUNTIF(D:D,D1)として下にフィルコピー。 次にD1に条件付き書式で[数式が]、[=E1>=2]のとき書式を、 たとえば網掛けのパターンで”赤”を選択して下にフィルコピー。 これでD列にある、同内容のセル全てが赤の網掛けになります。 エラー表示や入力を受け付けないわけではありませんが、 セルが赤の網掛けに変わることで注意を促します。
その他の回答 (4)
- imogasi
- ベストアンサー率27% (4737/17069)
入力セルがどのセルか判らないのに、既出回答は良いのでしょうか。 関数、入力規則では無理ではないでしょうか。(勘違いあれば、ご回答者には、すみません) それで 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、コピー貼り付け はうまくいきそうです。
お礼
ありがとうございました。 詳しくご説明頂きましたが、マクロが理解できいないでの、残念でした。
- mshr1962
- ベストアンサー率39% (7417/18945)
「データ」「入力規則」で入力値の種類を「ユーザー設定」 式を「=COUNTIF(列の入力範囲の絶対参照,セルの絶対参照)=1」 ですね。A列でA2の場合 =COUNTIF($A:$A,$A2)=1 同じ列に同じ値があると(式の結果が2以上になるため)エラーになります。 ただし、値を別のセル等からコピーして、貼り付けの場合はこの設定が消えるので対応できません。
お礼
ありがとうございました。
- shabushabu
- ベストアンサー率35% (20/57)
これでどうでしょう? A1からA4とA6からA11までデータが入っていたとして、 今回はA5に文字を入力するとします。 B5に=IF(VLOOKUP(A5,A1:A11,1,FALSE)=A5,"エラー","") を入れれば、A5に入力した数字または文字が列内にあればB5にエラー、列内に無ければ空白が表示されます。
お礼
ありがとうございました。
- Dxak
- ベストアンサー率34% (510/1465)
関数ではなく、「データ」-「入力規則」で設定可能です。 ユーザ設定で数式を「<> 任意のセル」に指定ください。 メッセージなどは、他のタブで調整ください。
お礼
ありがとうございました。
お礼
ありがとうございました。 最も簡単に目的を達することができました。