• ベストアンサー

エクセルの関数

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

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

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

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

karen-sk
質問者

お礼

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

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答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% (7418/18948)
回答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

  • Excel関数を解説して教えて下さい。

    どなたか教えて下さい。 Excelで特定の列の中で一定の範囲が指定されているセルの任意のセルに値を入力し、その範囲の中に入力された最終行 (最下段) の値を取り出すために下記のようにExcelのLookup関数を使用して必要とする値を取り出しています。 =Lookup (10~10,特定の列の最上段のセル:特定の列の最下段のセル) これで間違いなく特定の列で定められた範囲に記載された値の最下段の値を取り出せますが、 10~10と設定する意味と、どうして最下段の値が取り出せるのか、この関数を解説して教えて下さい。 また、この場合の最上段の値を取り出す際の関数も教えて下さるようお願いいたします。

  • エクセル 関数

    文字列で入力されている数字に1をたした数を 参照させたいのですがどうすればいいのでしょうか? A1のセルに1月と文字列で入っていた場合 次のA2のセルに2月と反映される式をA2に いれたいのですが・・。 関数でもVBAでもいいのですが方法はありますでしょうか? 数字だけだと反映されるのですが月が入ってしまうと どうもうまくいきません。

  • エクセル関数を使いこの様なことができますか?

    こんにちは エクセルのあるセルに数式(又は関数)を入力し、別のセルに数字を入力したら、セルの塗りつぶしの色が設定しておいた色に変わるようなことはできないでしょうか? (例えば、C1には当初は何も入力されておらず、そのC1にある数字を入力するとA1のセルの色が赤に変わるようなことを考えています。なお、色を変えたいセル自身には数字が入力されている場合といない場合と二通りあるため、いずれの場合も対応できるようにしたいのです。 つまり、初期状態では、A列(色を変えたいセル列)には数字が入ったセル、入っていないセルが混在しており、C列(ここに数字が入力されるたびにA列の対応する行のセルの色を変えたい)には何も入力されていない。この状態で、任意のC列のあるセルに数字を入力すると同じ行にあるA列のセルの色を変えたい、ということをしたいのです。) 具体的にA列にどの様な数式を入力すればよいかを教えて下さい。 (或いは、そのようなことをするための式(関数)はA,C以外の列のセルに入れる必要があるかもしれませんが(例えばB列)、それでもかまいません) よろしくお願いします。

  • エクセルで、こんな関数はありますか?

     あるセルに数字を入力すると、決まった文字を表示するようにしたいです。 たとえば・・・ A列は1.2.3.4と言った数字を入力します。 その隣のB列には、文字を自動表示。 「A1」に「1」と入力すると「B1」には「区分A顧客」と表示させる。 「A1」に「2」と入力した場合には「B1」には「区分B新規」と表示させる。 と言った様に、4種類くらいの表示を数字を入力するだけで、自動で表示させられるようにしたいです。 どなたか分ります方、よろしくお願いします。

  • エクセルの関数を教えてください

    エクセルの関数を教えてください。 あるセル(列単位です)に数字8ケタが入っていたら隣のセル(列)に◎◎◎(任意に設定)と表示されて、なにも入力されていなかったら空白表示にしたいのですがどうすればいいでしょうか?

  • エクセルと関数について

    エクセルと関数について エクセルで以下のような表を作成しています。 上段の表は、お客様へのチケット販売ナンバーを表で管理したものです。 下段の表は、お客様へのナンバーを把握するための表です。 上段のnoは手打ち入力するのですが、下段の通り、ヨーロッパの方だけ noの振り方が違っています。 しかし、手打ち入力するために、間違って全部を連番にしてしまうときが あります。 関数で間違いを回避する方法はあるのでしょうか。 できれば番号を振った時にエラー表示するようにしたいのです。 アクセルのほうがやりやすいのでしょうか。 お願いします。

  • エクセルの関数?

    文字が入力されているセルの数を表示したいのですが関数があるのでしょうか? countでやっても数字が入力されてあるセルしかカウントしてくれないんで困ってます。

  • EXCELの関数でこんな事できますか?

    表示形式が日付で入力されていて、たとえばあるセルに2012年6月29日の形式で入力されている場合隣のセルに2012/6と自動的に月までの表示に文字列形式で入力する関数、あるいは関数の組み合わせがあれば教えていただきたいのですが。      2012年6月29日→2012/6          日付形式    文字列   

  • EXCELの関数について教えてください。

    EXCELの関数について教えてください。 A列のセルに「18:00 」or 「18:30」 or「19:00」 or「19:30」と入力するとB列のセルに「8:00」と表示され、「17:30」と入力すると「7:00」と表示される方法を教えてください。 セルの書式の表示形式は「文字列」ではなく「時刻」に設定したいです。 多分IF関数をつかうを使うのではないかと思うのですが、書式が「時刻」のためかうまくいきません。 よろしくお願いします。

  • エクセル

    「A1セル」に、文字でも数字でも記号でも何でも良いので、 とにかく何か入力されたら 「C1セル」に自動で「★」と入力されるようにしたいのです。 ただし、 「B1セル」にも、文字・数字・記号でも何でも良いので、 とにかく何か入力されると 「C1セル」は空白にしたいのです。 関数でこんなことは可能でしょうか?

専門家に質問してみよう