『IFS関数とFIND関数を組み合わせたような結果にしたい。』(エクセル勉強中)   A B C D 1 あ      2 い      3 う      4 え 5 お 6 7       あかさたな 8 ☆     いきしちに 9       おこそとの ーーーーーーーーーーーーーーーーー やりたいことはA1〜A5までの文字がD8の文字列に含まれていたらその文字をA8に表記したいです。この場合は☆のところが『い』と表示されてほしいです。 上記の時、A8のセルに =IFS(FIND(A1,D8)>0,A1,FIND(A2,D8)>0,A2,FIND(A3,D8)>0,A3,FIND(A4,D8)>0,A4,FIND(A5,D8)>0,A5) という式を入力しました。ところがA1の『あ』がD8の『いきしちに』にないため、そこでエラー(VALUE)が起き、その先を判定してくれません。 このようなとき、☆に『い』と表示させるにはどうしたらよいか、アイディアはありませんか? IFS関数とFIND関数の組み合わせじゃなくても良いです。作業列を足すなども可能です。 ただVBAは使わない方向でお願いします。 < 使用 Excel:Excel2021、使用 OS:Windows11 > ---- もし、複数含まれている場合にはどうするのだろうか? 含まれている文字全部をA8セルに表示、A1セルからA5セルでより上の文字一文字だけを表示、その他? (ねむねむ) 2024/03/26(火) 15:07:35 ---- ISNUMBER(FIND(A1,D8)) でエラーはFALSEになります (どん) 2024/03/26(火) 15:12:28 ---- ねむねむさん> すいません言葉足らずでした。 A1〜A5までに同じ文字が入ることは無いようにしています。なので、複数含まれる場合は想定していただかなくても大丈夫です。 (エクセル勉強中) 2024/03/26(火) 15:15:20 ---- =INDEX(A$1:A$5,AGGREGATE(15,6,ROW($1:$5)/(FIND(A$1:A$5,D8)>0),1)) ではどうだろうか? (ねむねむ) 2024/03/26(火) 15:20:00 ---- >A1〜A5までに同じ文字が入ることは無いようにしています。 A1:A5 に重複がなくても、D8が「いうしちに」だったら 「い」と「う」の二つが該当しますよね? そんなこともないってこと? だったら =XLOOKUP(TRUE,ISNUMBER(FIND(A1:A5,D8)),A1:A5,"該当なし") 参考まで (笑) 2024/03/26(火) 15:25:25 ---- 2021であれば =FILTER(A1:A5,COUNTIF(D8,"*"&A1:A5&"*"),"該当なし") ではどうだろうか? ただ現在上記式を確認できる環境でないため求められなければすまない。 (ねむねむ) 2024/03/26(火) 15:28:23 ---- FILTERだと各要素が複数セルに展開されるかも。 仮に"い" と"う"が該当して、"いう"と表示するのであれば、 REDUCE関数を使うのかもしれませんね。 (xyz) 2024/03/27(水) 08:32:08 ---- 一応 >複数含まれる場合は想定していただかなくても大丈夫です。 なので。 あと >仮に"い" と"う"が該当して、"いう"と表示するのであれば、 場合はFILTER関数をTEXTJOIN関数の中に入れても。 (ねむねむ) 2024/03/27(水) 08:41:27 ---- >REDUCE関数を使うのかもしれませんね。 Excel2021で使えるの? (はてな) 2024/03/27(水) 08:54:54 ---- ねむねむさん、ありがとうございます。 >FILTER関数をTEXTJOIN関数の中に入れても。 そうですね。そのほうが分かりやすいですね。 はてなさん、ありがとうございます。 REDUCEは365だけだったのですか、失礼しました。 (xyz) 2024/03/27(水) 09:15:08 ---- 皆さんいろいろアドバイスありがとうございました。 もっとシンプルにできたと思いますが、実際のシートにはIF関数とISNUMBER関数とFIND関数を組み合わせる形で解決することができました。 知らない関数も多数教えていたいただき、改めて勉強になり本当にありがとうございました。 (エクセル勉強中) 2024/03/27(水) 15:38:59