ワイルドカード付きの複数条件を「配列定数」指定しています。
今後条件が増えることを想定して、「配列指定」部分をセル範囲に変更できないかと考え、試行錯誤したが、「配列指定」と同じ結果が得られません。
そもそも、無理な要求なんでしょうか?
表の形式
[列I] [列J]
分別区分 種類
可 R
可 R
資源・金 B
雑・ペ・蛍・ス B
雑・ペ・小 B
プラ資・大 Y
プラ資・破 Y
プラ資 Y
プラ資・埋 Y
プラ資 Y
プラ資・大・破 Y
プラ資・特 B
種類列の「配列指定」の数式
=IF(I2="可","R",IF(SUM(COUNTIF(I2,"*"&{"資源","雑","ペ","蛍","ス","小","特"}&"*"))>0,"B","Y"))
試行1
{"資源","雑","ペ","蛍","ス","小","特"}部分を1つづつセルに入力し「区分」という名前を定義
数式変更
=IF(I2="可","R",IF(SUM(COUNTIF(I2,"*"&区分&"*"))>0,"B","Y"))
結果
配列定数の結果が"B"となっているところ
なぜか「雑・ペ・蛍・ス」だけが"B"、他の"B"は"Y"が返ってきます。
試行2
=SUM(COUNTIF(I2,"*"&{"資源","雑","ペ","蛍","ス","小","特"}&"*"))
で戻り値を求めると、「雑・ペ・蛍・ス」は、"4"(正常な値)ですが、配列定数部分を「区分」に変更すると、
「雑・ペ・蛍・ス」は"1" 他は、"0"になります。
確認
「雑・ペ・蛍・ス」の中でヒットしている文字列は「雑」でした。
そうすると
「雑・ペ・小」も"1"が返ってもよいと考えるが・・・・不思議です。
|