アプリ版:「スタンプのみでお礼する」機能のリリースについて

教えてください

下段のように、A列にテキストがあり、その中の文字にBのデータ群の中のどれかが当てはまっているかの判定をしたいです。対象が複数で、またあいまい検索になるので、どのようにしたらよいか悩んでいます。 適切な関数を教えてください。

「エクセルで、B列にある文字を含むA列の対」の質問画像

質問者からの補足コメント

  • ありがとうございます!
    aggregate関数というのは初めてみたのですが、
    調べてみると、14,6というのは、
    降順の順位を求める集計と、エラー値を無視するというオプションということがわかりました。

    この場合、14を指定している理由はなんなのでしょうか?

    No.1の回答に寄せられた補足コメントです。 補足日時:2020/02/12 14:42

A 回答 (4件)

Excelのバージョンによります。



=IF(COUNT(FIND(D$2:D$8,A2)),"○","×")

Office365なら Enter確定。
それ以外なら Ctrl + Shift + Enterで確定

いずれのバージョンでもいちいち範囲指定するのではなく
それぞれのデータをテーブル書式にして構造化参照した方
がいいです。
    • good
    • 0

こんにちは!



一例です。
↓の画像ではB2セルに
=IF(A2="","",IF(OR(ISNUMBER(FIND(D$2:D$14,A2))),"○","×"))

配列数式なので、Ctrl+Shift+Enterで確定!(←必須★)し
フィルハンドルで下へコピーしています。

※ D列のアスタリクスは今後検索文字が増えた場合に追加可能です。
(空白セルを指定しないために、おそらくA列に使うことはないであろう、「*」を使っています。m(_ _)m
「エクセルで、B列にある文字を含むA列の対」の回答画像3
    • good
    • 0

No1です



>この場合、14を指定している理由はなんなのでしょうか?
キーワード群のうち「どれか一つが属していれば」をチェックしたいので、意味合いとしては MAX() を得れば良いのですが、エラー値が混在する場合はMAXではうまくいきません。

エラー値の処理のためにAGGREGATE関数を利用していますが、経験上、直接のセル範囲以外(=今回の式のような場合)を指定して配列計算をさせる場合にはSMALL,LARGE以外の機能は必ずしも期待する結果とはならないことがありますので、敢えてMAXを使わずに、その代わりとしてLARGEを用いた次第です。
    • good
    • 0

こんにちは



>対象が複数で、またあいまい検索になるので、どのようにしたらよいか悩んでいます。
「あいまい検索」にはしていませんが(含んでいるか否かで判定)。結果を○×表示で良いのなら、判定結果を表示したい列の1行目のセルに
 =IF(IFERROR(AGGREGATE(14,6,FIND(B$1:B$100,A1)*(B$1:B$100<>""),1),0)>0,"○","×")
の関数式を入れて、下方にフィルコピー。

で、いかがでしょうか?
(データは1行目からあるものと仮定しています)
この回答への補足あり
    • good
    • 0

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

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


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