たった一つの式で検索・抽出ができるのはすごいですね
私の作った式は
=FILTER(情報!$A:$E,(IF(D3<>"",(情報!$A:$A=$D$3),TRUE))*(IFERROR(SEARCH($B$3,情報!$B:$B),FALSE)+IFERROR(SEARCH($B$3,情報!$C:$C),FALSE)),"該当なし")
これを見つけるのにググりましたが、もっといい調べ方があります
chatgptに質問してみました。
質問の仕方に工夫が必要です。
AIに適切な質問を行えるノウハウがこれから必要になります。
することが複雑になれば、aiがパーフェクトに答えてくれないので、答えを理解して修正が必要です
やはり、知識も必要ですが、考える力、応用力、理解力、判断力がこれからの子供たちに必要になります
質問
「複数の列から文字を含むものを検索して抽出するfilter式を詳しく教えてください」
答え
多くの表計算ソフトウェア(例えばMicrosoft ExcelやGoogle Sheets)では、フィルタリング機能を使用して、テーブル内のデータを特定の条件に基づいて絞り込むことができます。複数の列から文字を含むデータを検索して抽出するには、以下のような手順を行います。
-
テーブル内でフィルタリングしたい範囲を選択します。
-
フィルターを適用するために、選択した範囲の上部にある「データ」または「ホーム」タブをクリックします。
-
「フィルター」オプションをクリックし、列見出しの横に表示される「▼」アイコンをクリックして、フィルター条件を設定するためのドロップダウンメニューを表示します。
-
「テキストフィルター」または「標準フィルター」オプションをクリックします。
-
テキストフィルターを選択した場合、条件に基づいてデータを絞り込むための検索条件を入力するダイアログボックスが表示されます。ここで、文字列を入力し、フィルター条件に含める列を選択します。
-
検索条件を入力すると、テーブル内のデータがフィルターされ、条件に合致するデータのみが表示されます。
フィルタリング条件は、複数の列から文字を含むものを検索するためにカスタマイズすることができます。例えば、複数の列から「apple」という文字列を検索する場合、以下のような式を使用できます。
=FILTER(データ範囲,(A列="apple")+(B列="apple")+(C列="apple"))
この式では、データ範囲にはフィルターを適用したいテーブルの範囲を指定します。A列、B列、およびC列のいずれかの列に「apple」が含まれている場合、フィルターによってその行が抽出されます。この場合、「+」演算子は、列A、列B、および列Cのいずれかの列に対して「apple」という文字列が見つかった場合に、その行をフィルタリングするために使用されます。
これでは一致になります
質問
「一致ではなく含むです」
答え
おっしゃる通り、申し訳ありませんでした。一致ではなく、文字列を含む行をフィルタリングするためには、以下のような式を使用することができます。
=FILTER(データ範囲,ISNUMBER(SEARCH("apple",A列&B列&C列)))
この式では、SEARCH関数を使用して、A列、B列、およびC列の結合された文字列から「apple」という文字列を検索します。SEARCH関数は、文字列が見つかった場合にその位置を返します。一方、ISNUMBER関数は、SEARCH関数が数値を返した場合にTRUEを返します。
したがって、上記の式は、データ範囲内でA列、B列、およびC列のいずれかの列に「apple」という文字列が含まれている行をフィルタリングするために使用されます。
実際にはこうなります
=FILTER(情報!$A:$E,ISNUMBER(SEARCH(B1,情報!A:A&情報!B:B&情報!C:C)))
どっちがいいですか?
=FILTER(情報!$A:$E,(IF(D3<>"",(情報!$A:$A=$D$3),TRUE))*(IFERROR(SEARCH($B$3,情報!$B:$B),FALSE)+IFERROR(SEARCH($B$3,情報!$C:$C),FALSE)),"該当なし")