• 締切済み

【エクセル】 関数による電子メールアドレスチェック

電子メールアドレスに許可された文字列だけが使用されているかを関数のみでチェックしたいと考えています。 条件:使用可能文字列がa~zの英字と「@(アットマーク)」と「.(ドット)」 例(1) A1セル : abc@xxx.jp であれば「0」を表示 例(2) A1セル : abc@().jp であれば「1」を表示 色々試してみたりしたのですがうまくいかず…。 よろしくお願いいたします。

みんなの回答

  • end-u
  • ベストアンサー率79% (496/625)
回答No.1

配列数式を使う場合は =OR(ISERR(FIND(MID(A1,ROW($1:$256),1),".@abcdefghijklmnopqrstuvwxyz")))*1 と入力して[ctrl]+[shift]+[enter]で確定させます。 配列数式がよくわからない、もしくは使いたくない場合は =OR(INDEX(ISERR(FIND(MID(A1,ROW($1:$256),1),".@abcdefghijklmnopqrstuvwxyz")),))*1 で普通に式入力します。 ".@abcdefghijklmnopqrstuvwxyz" この箇所のチェック文字種を修正する可能性もあるなら、 その文字列を[名前定義]するとメンテナンスし易いかと思います。 VBAを使って標準モジュールにユーザー定義関数を作る時のサンプルとしては 以下のような感じです。 Option Explicit Function chk(r As Range) As Long   Const arg = ".@abcdefghijklmnopqrstuvwxyz"   Dim s As String   Dim f As Boolean   Dim i As Long   s = r(1).Text   For i = 1 To Len(s)     f = InStr(1, arg, Mid$(s, i, 1), vbBinaryCompare) = 0     If f Then Exit For   Next   chk = -f End Function

関連するQ&A

  • 【至急】エクセルの関数で

    例えば、 セルA1~A3に Rev001X=589 Rev001Y=69 Rev001Z=50000 となっています。セルB列にセルA列の=以降の文字のみを取り出す関数を教えてください。 完成例(B列) 589 69 50000 よろしくお願いします!

  • EXCELの関数?について

    セルA1の値と等しい値がB列のセルにあり,セルA2にA1と等しいB列のセルと同じ行にあるC列の値を表示させたいのですが可能でしょうか? わかりにくい説明で申し訳有りませんが・・ 例:下記の場合 A1の内容とB3の内容が等しいため,A2にC3の内容”Z”を表示させたいのですが,A2はどのように設定すればいいのでしょう?  |  A  |  B  |  C  | ---------------------- 1| AAA | AA  |  X  | 2|     | A   |  Y  | 3|     | AAA |  Z  | 4|     |     |     |

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

    Sheet1  |**********| Sheet2       A       B 1|2005/01/20|ABC| 2|2005/03/15|DEF| 3|2005/04/20|XXX| わかりずらくてごめんなさい。エクセル初心者です。 関数のことで質問させてください。 Sheet2の「B」の列に「ABC」の語を含んでいた場合、Sheet1の「********」のセルに「A」の列の日付に半年をプラスした日付を表示させたいのです。 もし含んでいない場合は、表示しなくてもいいのですが、この場合どのように数式を作っていいのかわかりません。 ちなみに自分で作った数式は =if(sheet2!B1=”ABC”,date(year(sheet2!A1)+0,month(sheet2!A1)+6,day(sheet2!A1)+0),””)でした。 しかし、これでは「B2」や「B3」に「ABC」が入った場合には適用されません。 頭が痛くなってきたので質問させていただくことにしました。 よろしくお願いいたします。

  • EXCEL 2010 VBAまたは関数について

    こんにちは 初投稿です。 早速ですが、VBAまたは関数について質問させて頂きたいのですが・・・ 一つのセルに複数の数字と文字列がセルのE1混ざっている場合, (12345abc678cdef9ghijk)と入っている場合 にこの例で行くとセルのA1に12345セルB1に678セルC1に9というように数字で表示させたいのです が、最初関数で A1=VALUE(MID(E1,1,5)) B1=VALUE(MID(E1,9,3)) C1=VALUE(MID(E1,16,1)) と言う形で数字だけ抜き出していたのですが これだと数字の桁数が違ってくる(※正し文字列の長さは一緒 数字だけが桁が違ってきます) と表示されなくなってしまうため、 出来れば関数をいじらなくても表示されるようにしたいのです。 VBAもしくは関数でこの問題を解決出来る方がいらっしゃるなら どうぞよろしくお願い致します。 長文失礼致しました。 | A | B | C | D | E | ------------------------------------------------ 1 | 12345 | 678 | 9 | | 12345abc678cdef9ghijk | 2 | | | | | |

  • エクセルの関数

    次のようなことを実行する関数はありますか? 表のデータには、ABCとかBCFとか文字列のデータが入っています。これらの中から特定の文字、たとえば、Aという文字が入っている文字列のセルの個数を求めたいのですけど。

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

    エクセルについて質問です。 「ある数値を入力したら常に一定の文字列を表示する」にはどの関数がいちばん便利でしょうか? 例:セルA1に101を入力→B1に「りんご」を表示 セルA2に201を入力→B2に「みかん」を表示 のように全部で50程度の数値&文字列の組み合わせ(コード表)を 判別したいと思っています。 よろしくお願いします。

  • エクセル関数

    各セルに入力された文字のうち、違う種類のセル数をカウントしたいのですが方法がありますでしょうか 例  A列 1  あああ 2  いいい 3  あああ 4  ううう 5  あああ 上記の場合A1~A5セルの範囲で種類が3種類なので3とカウントしたいのですがよろしくお願いします。ウインドウズ2000、エクセル2000を使用しています。

  • エクセル関数?

    エクセル2000を使用しています。関数を使用するかわかりませんが2つ教えてください。 1.月を入力すると自動的に月末の日付が表示される。 (例:A1のセルに1と入力するとB1のセルに1月の月末日である31と表示) 2.A列に入力してある種類ごとにB列の数値の合計をB列の最後に出す。 よろしくお願いします。

  • エクセルの関数をおしえて

    こんにちは いつもお世話になっています エクセルの関数について教えてください。 例えば、A列の、あるセルに商品名を入れるとB列の同行セルに、その商品名に対応した特定のデータを入力するにはどうすればいいでしょうか。商品名と、それに対応したデータは別シートにあり、それを呼び出すような形にしたいのです。つまり、A1に「abc」と入力したら、自動的にB1に、「abc」に対応した特定のデータが入力されるようにしたいのです。A列のどこに入力しても、そのセルの横のセルに対応データを表示させたいのです。 関数名だけでもかまいません。よろしくお願いします

  • EXCELの関数について

    いつもお世話になっています。 EXCEL2000で 01の行に「A、B、C、D、E」という文字を適当な順番に打って、最終的に列がZほどいったときに「ABCDE」の中でもっとも多く使われた文字を特定のセルに表示させることは可能でしょうか? また二番目に多かった文字、三番目に・・・。ということもできるのでしょうか? 補足などがあればすぐに回答したいと思います。 よろしくお願いします。

専門家に質問してみよう