• 締切済み

Excel A条件またはB条件に一致した場合に

どうもお世話になります。 タイトルわかりづらくてすいません。 Excelにて、 ワイルドカードを使用したA条件またはB条件に一致した場合に"1"、一致しない場合、"0"というのをしたいのですが、調べながら、以下のような式に辿りついたのですが、0という表示でした。。。 A2セルに”赤とんぼ”と入力 =SUM(IF((A1="赤"&"*")+(A2="赤"&"*"),"1","0")) 上の式でワイルドカードをしようして"1"と表示されるようにするにはどうしたらよいでしょうか??

みんなの回答

  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.4

候補・・と言うか、関数の知識はきっと邪魔にならないと思うので、 ちょっと違った関数の例を一つ紹介させていただきます。 FIND関数と言う、指定した値から検索する文字列の位置を探す関数を使います。   =FIND("赤",A1) とすることで、A1セルに「赤」と言う文字列の位置を返します。 A1セルが「赤とんぼ」なら「赤」は1文字目に有りますから、返り値は「1」。 A1セルが「真っ赤」なら「赤」は3文字目に有りますから、返り値は「3」。 A1セルが「真っ青」なら「赤」を含んでいないので「#VALUE」エラーが返ります。 これにISERROR関数と言う、エラーかどうかを調べる関数を組み合わせます。   =ISERROR(FIND("赤",A1)) A1セルに「赤」を含まない場合はFINDでエラーが返りますから、 ISERRORの返り値は「TRUE」です。 A1セルに「赤」を含んでいればエラーは返りませんから ISERROR関数は「FALSE」が返します。 なので、IF関数で区別が出来ます。   =IF(ISERROR(FIND("赤",A1)),0,1) ISERRORがTRUE→赤を含まない→「0」 ISERRORがFALSE→赤を含む→「1」 と言う式ですね。 応用するとしたら、 「赤」で始まる→1文字目が「赤」 ですから、   =IF(FIND("赤",A1)=1,1,0) としてやると良いですね。 覚えておくと何かに使えるかもしれませんね^^

回答No.3

赤で始まる =1*OR(LEFT(A1,1)="赤",LEFT(C1,1)="赤") 赤で終わる =1*OR(RIGHT(A1,1)="赤",RIGHT(C1,1)="赤") 赤を含む =1*OR(SUBSTITUTE(A1,"赤","",1)<>A1,SUBSTITUTE(C1,"赤","",1)<>C1) 参考まで

回答No.2

「A1="赤"&"*"」のように、「論理式」にワイルドカードをそのまま使うことはできません。ワイルドカードは、COUNTIF など、一部の関数でしか使えません。 「"赤"」と「"*"」はともに文字列なので、「"赤*"」と書いても構いません。セル参照を混ぜたいときは、「a1&"*"」といった書き方をします。「a1」の前後に「""」を付けると参照ではなく「a1」という文字列を表すので、付けません。 通常、数字には「""」を付けません。数字は、「数値」である数字として取り扱いたいからです。付けると、「文字列」の数字になってしまいます。 ●論理値 TRUE または FALSE で結果を表示 =countif(a1:a2,"赤*")>0 ● 1 または 0 で結果を表示 =(countif(a1:a2,"赤*")>0)+0 あるいは =--(countif(a1:a2,"赤*")>0) あるいは =n(countif(a1:a2,"赤*")>0) あるいは =sum(countif(a1:a2,"赤*")>0) あるいは =if(countif(a1:a2,"赤*")>0,1,0) ※「+0」の代わりに「-0」、「*1」、「/1」、「^1」と書き換えても構いません。 なお A1、A2 セルではなく A1、C1 である場合は、「countif(a1,"赤*")+countif(c1,"赤*")>0」と書けます。

bin-bou
質問者

お礼

ありがとうございます。 しかもたくさんの例まで示して頂いて・・・ あと、次の疑問として、A1,C1とセルが飛んだ場合でしたが、 それも書いて下さってて助かりました!

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! 外しているかもしれませんが・・・ A1セルまたはA2セルに 「赤」が含まれている文字列があれば「1」を なければ「0」を表示すれば良いわけですよね? 表示したいセルに =IF(COUNTIF(A1:A2,"*赤*"),1,0) ではどうでしょうか?m(_ _)m

bin-bou
質問者

お礼

ありとうございます。countifを使わないとダメなんですね。

関連するQ&A