アプリ版:「スタンプのみでお礼する」機能のリリースについて

電子メールアドレスに許可された文字列だけが使用されているかを関数のみでチェックしたいと考えています。

条件:使用可能文字列がa~zの英字と「@(アットマーク)」と「.(ドット)」

例(1) A1セル : abc@xxx.jp であれば「0」を表示
例(2) A1セル : abc@().jp であれば「1」を表示

色々試してみたりしたのですがうまくいかず…。
よろしくお願いいたします。

A 回答 (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
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!