プロが教える店舗&オフィスのセキュリティ対策術

=IF(A1“,”,AND(IFERROR(FIND(“.”,A1),FALSE),IFERROR(FIND(“.”,A1,FIND(“@”A1)),FALSE)))

コピペできなかったので手打ちで、「“”」が違う表記かもしれません。
二重かっこのようなものであることは確かです。

お知恵お貸しください...。

A 回答 (4件)

まず、「.」ドットと「@」アッとマークが登場したら「メールアドレス」を連想するのが普通です。

従って、投稿された数式

=IF(A1“,”,AND(IFERROR(FIND(“.”,A1),FALSE),IFERROR(FIND(“.”,A1,FIND(“@”A1)),FALSE)))

は、

=IF(A1="","",AND(IFERROR(FIND(".",A1),FALSE),IFERROR(FIND(".",A1,FIND("@",A1)),FALSE)))・・・①

という数式の誤りなのではないかと勝手に推測しました。

この数式はA1にメールアドレスらしきのものが入力されるとして、
=IF(A1="","",・・・②
の部分で、入力されるまでは「空白」を返し、入力されたら、ANDで括られた
IFERROR(FIND(".",A1),FALSE)・・・③

IFERROR(FIND(".",A1,FIND("@",A1)),FALSE)・・・④
という二つの条件をチェックします。

③はA1に「.」ドットが含まれるかをチェックしています。「.」ドットが含まれる場合は(左から数えた)その位置、そうでなければFALSEを返します。そもそも「.」がないのもはメールアドレスではないと判断するためではないかと推測できます。

④はA1に「.」ドットが含まれるとき、それは@アットマークより後かをチェックします。「@」より後に「.」があれば(左から数えた)その位置、そうでなければFALSEを返します。

③と④はANDで括られているので③④ともにFALSEでないとき、「.」の位置と「@」の位置の積になり正の整数になります。このとき、①の数式はTRUEを返し、そうでなければFALSEを返します。
つまり、①の数式はメールアドレスの形式チェックを行うもので、【必ず「@」があり、「@」より後に必ず「.」がある】というメールアドレスの形式をチェックしているものと推測されます。

仮に、私の推測が当たっているとすれば、同様の意味を持つ数式として、
=IF(A1="","",NOT(ISERROR(FIND(".",A1,FIND("@",A1)))))・・・⑤
という簡潔な数式で足りるのではないかという気もします。
    • good
    • 0
この回答へのお礼

ありがとうございます!!!
いただいた式でやってみます!!

お礼日時:2023/12/09 23:18

=IF(


   A1
   "," ←カンマが足りない。
  ,AND(
     IFERROR(FIND(".",A1       ),FALSE)
    ,IFERROR(FIND(".",A1,FIND("@"A1)),FALSE) ←カンマが足りない。
    )
  )

まず、IF関数の中身を確認しましょう。
ここは大雑把でOK。
 A1セルに「0」以外の数値が入力されたら ","。
 A1セルに「0」が入力、および未入力なら次の計算。
 ただし文字列の場合はエラーを吐く。
ですね。
カンマが足りませんが、まあ、ここは脳内補完可能。

次に「次の計算」のAND関数の中身。
IFERROR関数を使った2つの数式があるのかな?
 A1セルに使われている "." の位置を返す。
 A1セルに使われている "@" の位置を返す。
のようなことをしていますね。

(。-`ω-) これさ。IFERROR関数が仕事するには、
 A1セルの値が「0」
 A1セルが空白(未入力)
の2つのケースしかない。
よく考えてみてほしい。IFERROR関数に到達するときにA1セルに小数点は無いぞ。
アットマーク(@)が入力されている場合は数値じゃないからIF関数でエラーを吐く。
※ セルの表示形式でアットマークや小数点を付けるようにしても、それは表示だけで元の値は変わらないためFIND関数には反映されません。

AND関数でまとめるまでもなく ”FALSE” を返せばいいだけの数式になっています。

ということで
 =IF( A1 , "," , FALSE )
これと同じ動きをしている。
    • good
    • 0
この回答へのお礼

関数がおかしいんですかね?
自分で作ったものではないので、謎なのです...

お礼日時:2023/12/09 23:18

何をしたいのかが曖昧なので、是正のしようがありません。

    • good
    • 0

構文エラーになるので、分かりません。


やろうとしようとしているのは、たぶん、
A1の中に『.』や『@』といった文字が
あるかどうかを調べようとしている
ようですが…
    • good
    • 0
この回答へのお礼

ありがとうございます!
はい、メールアドレスのチェック関数なのですが、
どういう要件でFALSEを出そうとしているのかわからずでした。

お礼日時:2023/12/09 22:17

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A