- ベストアンサー
IF関数の条件に関数を指定
Excelに関する質問です。 ちょっと分かりづらいのですが、例えばセルA1とB1があるとします。 A1には別シートのセルが参照されています。(「="あ!A1"」など) ここで、B1にはIF関数を入れたいのですが、その時A1の関数式内の文字を条件にしたいのですが、そういうことはできますか? つまり、B1にIF関数で「A1セル内の関数式内に"あ"の文字がある時に"い"と表示する」のようにしたいのです。 普通に「=IF(A1="あ","◯","")」ではできません。 Google先生でも調べてみたのですが、分かりませんでした。 お知恵をいただければ幸いです。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
EXCEL2013であれば、 B1に =IFERROR(IF(FIND("あ",FORMULATEXT(A1)),"○",),"") でできます。
その他の回答 (4)
- ryo_ Deathscythe(@Deathscythe)
- ベストアンサー率14% (515/3615)
"○○"はその値を示す記号です。 A1には「あ!A1」と表示されるかと。 A1=あ!A1 としたうえで B1=IF(A1="あ","い","") でOKなはず。
- marumets
- ベストアンサー率42% (199/463)
こういう方法はどうでしょう? A1に =INDIRECT(A2) として、 A2に あ!A1 という =を除いた式(文字列になります) を入れます。 これで、A1は今まで通りの値が計算されます。 そうしておいて、 B1には =IF(FIND("あ",A2),"○","") とします。
- bunjii
- ベストアンサー率43% (3589/8249)
>ちょっと分かりづらいのですが、例えばセルA1とB1があるとします。 >A1には別シートのセルが参照されています。(「="あ!A1"」など) はい、非常に分かりずらいです。 A1=あ!A1 と言う数式ならシート名が あ のA1セルを現在のシートのA1へ代入するのですが、 A1="あ!A1" では現在のシートのA1へ文字列の あ!A1 が代入されます。 「別シートのセルを参照」と言いながら例示の数式では別シートのセルを参照していません。 >つまり、B1にIF関数で「A1セル内の関数式内に"あ"の文字がある時に"い"と表示する」のようにしたいのです。 >普通に「=IF(A1="あ","◯","")」ではできません。 シート名の あ のA1セルに"あかさたな"と言う文字列があり、現在のシートのA1セルに =あ!A1 と言う数式が設定されていればA1セルに あかさたな と表示されているでしょう。 その状態で現在のシートのB1セルに次の数式を設定すると結果は右に示す通りです。 B1=IF(A1="あ","◯","") → (何も表示されない) C1=IF(FIND("あ",A1),"○","") → ○
お礼
>A1="あ!A1" では現在のシートのA1へ文字列の あ!A1 が代入されます。 誠に申し訳ございません、仰る通りでした(;´Д`) が、実例を明示していただいて申し訳ありませんが、別シートのA1セルに「あかさたな」と入れてしまうと、"あ"が入っていますので、そちらを検索してしまうのでは無いでしょうか。 実際に提示させていただいた方法で「あかさたな」を「いきしちに」に変えてみたところ、エラーになりました。 私が希望しているのは、関数内のシート名の"あ"を条件にしたいのです。 わかりづらくて申し訳ありませんが、よろしくお願いします。
- ryo_ky
- ベストアンサー率47% (112/237)
当方でも同じ検証をしましたが,おそらくできていると思います. Sheet1のA1に =あ!A1 B1に =IF(A1="あ","い","") これでB1には「い」と表示されます. ※Excel ver 2010 Home & Business
お礼
ご回答ありがとうございます。 これを求めていました! すごくシンプルに完了しました! ありがとうございました!!