Excel ワイルドカード:検索と置換、フィルタリング、テキストと数値の数式での使用

  • これを共有
Michael Brown

ワイルドカードとは何か、Excelでの最適な使い方、ワイルドカードが数字に使えない理由など、ワイルドカードについて知っておくべきことが1ページにまとまっています。

何かを探しているけれど、何を探しているのかよくわからないとき、ワイルドカードは完璧なソリューションです。 ワイルドカードは、どんな値にもなり得るジョーカーと考えることができます。 Excelには3つのワイルドカード文字(アスタリスク、疑問符、チルダ)があるだけですが、これらは非常に多くの有用なことを行うことができます!この3つの文字を使用することにより、Excelは、より効果的な方法で、より多くのことを行うことができます。

    エクセルワイルドカード文字

    Microsoft Excelでは、ワイルドカードは、他の任意の文字を代替することができる特別な種類の文字です。 つまり、正確な文字がわからない場合、その場所にワイルドカードを使用することができます。

    Excelが認識する一般的なワイルドカード文字は、アスタリスク(*)とクエスチョンマーク(? チルダ(~)は、Excelがこれらをワイルドカードではなく、通常の文字として扱うように強制します。

    ワイルドカードは、データのフィルタリングの比較条件や、共通部分を持つ項目の検索、数式でのファジーマッチングなど、部分一致が必要な場面で便利な機能です。

    ワイルドカードとしてのアスタリスク

    アスタリスク(*)は、最も一般的なワイルドカード文字で、次のようなものを表すことができます。 何文字でも .例えば

    • ch - は、"ch "で始まる単語であれば何でもマッチします。 シャルル , 引き留める , チェス など。
    • *. - のように、"ch" で終わる任意の文字列を代入します。 3月 , インチ , フェッチ など。
    • *ch* - は、"ch "を含むすべての単語を表します。 チャド , 頭痛 , アーチ など。

    クエスチョンマークをワイルドカードとして使用

    クエスチョンマーク(?)は 一文字でも .部分一致を検索する際に、より具体的な情報を得ることができます。 例えば、以下のようなことです。

    • ? - "a"、"1"、"-"などの1文字を含むすべてのエントリにマッチします。
    • ab"、"11"、"a*"などの任意の2文字を代用します。
    • のようにハイフンで区切られた3文字で構成される2つのグループを含む文字列を表します。 ABC-DEF , ABC-123 , 111-222 など。
    • プライ - 試合 価格 , 矜持 , 賞金 などがあります。

    ワイルドカードとしてのチルダ(Tilde) nullifier

    ワイルドカード文字の前に置かれるチルダ(~)です。 は、ワイルドカードの効果をキャンセルします。 を、アスタリスク(~*)、クエスチョンマーク(~?)、チルダ(~~)に変換します。 例えば

    • *~? - は、クエスチョンマークで終わるすべてのエントリを検索します(例)。 何? , 誰かいるのか? など。
    • *~** - アスタリスクを含むすべてのデータを検索します(例)。 *1 , *11* , 2020年3月1日*。 この場合,1番目と3番目のアスタリスクはワイルドカードで,2番目のアスタリスクはリテラルなアスタリスク文字を表します.

    Excelでワイルドカードを検索・置換する

    Excelの検索と置換の機能でワイルドカード文字を使用する方法は、非常に多彩です。 以下の例では、よくあるシナリオをいくつか取り上げ、いくつかの注意点を説明します。

    ワイルドカードを使った検索方法

    デフォルトでは 検索と置換 ダイアログは、指定された条件をセル内の任意の場所で検索するように設定されており、セルの内容全体と一致することはありません。 たとえば、検索条件として「AA」を使用すると、Excelは次のように「AA」を含むすべてのエントリを返します。 AA-01 , 01-AA , 01-AA-02 しかし、ある状況下では、それがかえって複雑になることもあります。

    以下のデータセットで、ハイフンで区切られた4文字からなるIDを探したいとします。 そこで、以下のように 検索と置換 ダイアログ (Ctrl + F) に、次のように入力します。 ??-?? において を探す を押してください。 すべて検索 ちょっと戸惑うような結果ですね。

    技術的には、以下のような文字列は AAB-01 または BB-002 を含むため、これらの文字列も条件に一致します。 これらの文字列を結果から除外するには オプション ボタンをクリックし、確認します。 セルの内容全体を一致させる ボックスが表示され、Excelは結果を「?-?」文字列のみに制限するようになりました。

    ワイルドカードを使った置換方法

    データにあいまいな一致がある場合、ワイルドカードを使用することで、すばやく検索し、一致させることができます。

    下のスクリーンショットでは、同じ都市に2つのスペルのバリエーションがあることがわかります。 ホーメル ゴメル この2つを別のバージョンに入れ替えたいと思います。 ホメオ そして、私の生まれ故郷の都市名は、3つの綴りとも正しく、一般に受け入れられています :)

    部分一致を置き換えるには、次のようにします。

    1. Ctrl + H で開きます。 交換 のタブをクリックします。 検索と置換 ダイアログを表示します。
    2. での を探す ボックスに、ワイルドカード表現を入力します。 オメル
    3. での に置き換えてください。 ボックスで、置換テキストを入力します。 ホメオ
    4. をクリックします。 すべて交換 ボタンをクリックします。

    そして、その結果を観察してください。

    ワイルドカード文字の検索と置換方法

    Excelでワイルドカードとして認識される文字、つまりリテラルなアスタリスクやクエスチョンマークを検索するには、検索条件にチルダ(~)を含めます。 たとえば、アスタリスクを含むすべての項目を検索するには、「検索条件」ボックスに~*と入力します。

    アスタリスクを他のものに置き換えたい場合は、切り替えの際に 交換 タブに目的の文字を入力してください。 に置き換えてください。 アスタリスク文字をすべて削除するには、[OK]を押します。 に置き換えてください。 をクリックします。 すべて交換 .

    Excelでワイルドカードを使用したデータのフィルタリング

    Excelのワイルドカードは、巨大なデータ列があり、条件に基づいてそのデータをフィルタリングしたい場合にも非常に便利です。

    サンプルデータセットで、"B "で始まるIDをフィルタリングしたいとします。 そのためには、次のようにします。

    1. ヘッダーセルにフィルターを追加します。 Ctrl + Shift + L のショートカットを押すのが一番早いです。
    2. 対象列で、フィルタのドロップダウン矢印をクリックします。
    3. での 検索 ボックスに、条件を入力します。 B* 私たちの場合
    4. クリック よっしゃー .

    これにより、以下のように、ワイルドカードの条件に基づいてデータが即座にフィルタリングされます。

    ワイルドカードは、Advanced Filter でも使用することができ、正規表現 ( リージェックス 詳しくは、Excelのワイルドカードを使用した高度なフィルタをご覧ください。

    ワイルドカードを使用したExcelの計算式

    まず最初に、ワイルドカードをサポートするExcel関数は非常に限られていることに留意してください。 ここでは、ワイルドカードをサポートする最も一般的な関数を、計算式の例とともにリストアップしています。

    AVERAGEIF(ワイルドカード使用) - 指定された条件を満たすセルの平均(算術平均)を求めます。

    AVERAGEIFS - 複数の条件を満たすセルの平均を返します。 上記の例のAVERAGEIFと同様に、ワイルドカードを使用できます。

    COUNTIF(ワイルドカード文字付き) - 1つの基準に基づいてセルの数を数えます。

    COUNTIFS with wildcards - 複数の基準に基づいてセルの数を数えます。

    SUMIF(ワイルドカード付き)- 条件付きでセルを合計する。

    SUMIFS - 複数の条件を持つセルを追加します。 上記の例のSUMIFと同様に、ワイルドカード文字を使用できます。

    VLOOKUP with wildcards - 部分一致で垂直方向のルックアップを実行します。

    HLOOKUP with wildcard - 部分一致で水平方向の検索を行います。

    XLOOKUP with wildcard characters - 列と行の両方で部分一致検索を実行します。

    ワイルドカードを含むMATCH式-部分一致を見つけ、その相対位置を返します。

    XMATCH with wildcards - MATCH関数の現代的な後継で、ワイルドカードによるマッチングもサポートします。

    ワイルドカードを使った検索 - 大文字と小文字を区別するFIND機能とは異なり、大文字と小文字を区別しないSEARCHは、ワイルドカード文字を理解します。

    ワイルドカードをサポートしない他の関数で部分マッチを行う必要がある場合は、ExcelのIFワイルドカード式のような回避策を考えなければなりません。

    次の例は、Excel の数式でワイルドカードを使用する一般的な方法を示しています。

    Excel COUNTIF ワイルドカード式

    例えば、範囲A2:A12で「AA」という文字列を含むセルの数を数えたいとします。 これを実現するには、3つの方法があります。

    最も簡単なのは、ワイルドカード文字を直接 クライテリア の議論になります。

    =countif(a2:a12, "*aa*")

    実際には、このような「ハードコーディング」は最適な解決策とは言えません。 後から基準が変更された場合、毎回計算式を編集しなければならなくなるからです。

    数式に条件を入力する代わりに、あるセル、例えばE1に条件を入力し、セル参照とワイルドカード文字を連結することができます。 完全な数式は次のようになります。

    =COUNTIF(A2:A12,"*"&E1&"*")

    また、基準セル(E1)にワイルドカード文字列(この例では*AA*)を入力し、セル参照のみを数式に含めることも可能です。

    =countif(a2:a12, e1)

    3つのフォーミュラとも同じ結果が得られるので、どれを使うかは個人の好みの問題です。

    注)ワイルドカード検索 は大文字と小文字を区別しない のように、大文字と小文字の両方をカウントする式になっています。 AA-01 aa-01 .

    Excel ワイルドカード VLOOKUP 計算式

    ソースデータで完全一致しない値を探す必要がある場合、ワイルドカード文字を使用して部分一致を見つけることができます。

    この例では、特定の文字で始まるIDを検索し、その価格をB列から返すことにします。 ユニークな部品 をセル D2、D3、D4 に入力し、この式で結果を求めます。

    =VLOOKUP(D2& "*", $A$2:$B$12, 2, FALSE)

    上の数式はE1に書き込まれ、セルの相対参照と絶対参照を巧みに使って、下のセルに正しくコピーされます。

    注意:ExcelのVLOOKUP関数は、最初に見つかった一致する値を返すので、ワイルドカードを使った検索には十分な注意が必要です。 ルックアップ値がルックアップ範囲の複数の値に一致すると、誤解を招く結果が得られる可能性があります。

    Excelの数値のワイルドカード

    Excelのワイルドカードはテキスト値のみに有効で、数値には使えないと言われることがあります。 しかし、これは正確には正しくありません。 検索と置換 機能だけでなく フィルター ワイルドカードは、テキストと数値の両方に対して問題なく機能します。

    ワイルドカード番号による検索と置換

    下のスクリーンショットでは、数字の4を含むセルを検索するために、検索条件に*4*を使用していますが、Excelは文字列と数字の両方を検出します。

    ワイルドカード番号でフィルタリング

    同様に、Excelのオートフィルタでは、"4 "を含む数値のフィルタリングは問題ない。

    Excelのワイルドカードが数式中の数字で機能しない理由

    数式で数値にワイルドカードを使用すると、数値が文字列に変換されます(数値をワイルドカードで囲むかセル参照を連結するかは関係ありません)。 その結果、Excelは数値の範囲内の文字列を認識できません。

    例えば、以下の公式はどちらも「4」を含む文字列の数を完璧に数えることができます。

    =countif(a2:a12, "*4*" )

    =COUNTIF(A2:A12, "*"&E1& "*" )

    しかし、どちらも数字の中の4桁を識別することはできません。

    数字にワイルドカードを効かせる方法

    最も簡単な解決策は、数値をテキストに変換し(例えば、Text to Columns機能を使用)、通常のVLOOKUP、COUNTIF、MATCHなどを実行することです。

    例えば、以下のようなセルのカウントを得るには 抑々 をE1の数値とすると、計算式はこうなります。

    =COUNTIF(B2:B12, E1& "*" )

    この方法が現実的に受け入れられない場合は、それぞれのケースに応じた独自の数式を作成する必要があります。 残念ながら、一般的な解決策は存在しません :( 以下に、いくつかの例を示します。

    例1.Excelの数値のワイルドカードの計算式

    この例では、特定の数字を含む数を数える方法を示します。 以下のサンプル表で、範囲B2:B12に「4」が含まれる数がいくつあるかを計算したいとします。 使用する数式は次のとおりです。

    =sumproduct(--(isnumber(search("4", b2:b12))))

    この式の仕組み

    内側から外側への働きかけは、以下の通りです。

    SEARCH関数は、指定された数字を範囲内のすべてのセルで探し、その位置を返します。 見つからない場合は#VALUEエラーを返します。 出力は次のような配列です。

    {#value!;1;#value!;3;#value!;1;#value!;#value!}

    ISNUMBER関数はそれを受けて、任意の数値をTRUEに、エラーをFALSEに変更します。

    {false;true;false;true;false;false;false;false}のようになります。

    二重単項演算子(--)は、TRUEとFALSEをそれぞれ1と0に強制する。

    {0;1;0;0;1;0;0;1;0;0;0}

    最後に、SUMPRODUCT関数は1を加算し、その数を返します。

    注:ワークシートで同様の数式を使用する場合、いかなる場合も検索機能に「$」やその他の通貨記号を含めないでください。 これはセルに適用される「視覚的」通貨形式であり、基本的な値は単なる数値であることを忘れないでください。

    例2.日付のワイルドカード式

    上記のSUMPRODUCT式は、数値に対してはきれいに動作しますが、日付に対しては失敗します。 なぜかというと、Excel内部では日付を通し番号として格納しており、この式はセルに表示された日付ではなく、その数字を処理することになるからです。

    そこで、TEXT機能を使って日付を文字列に変換し、その文字列をSEARCH機能で検索する。

    何を集計するかによって、テキストの形式が異なります。

    C2:C12で、日、月、年に "4 "が含まれるすべての日付をカウントするには、" mmddyyyy" :

    =SUMPRODUCT(--(ISNUMBER(SEARCH("4",TEXT(C2:C12, "mmddyyyy")))))

    のみをカウントすること。 日間 月や年を無視した "4 "を含む場合は、""を使用します。 dd" テキスト形式です。

    =SUMPRODUCT(--(ISNUMBER(SEARCH("4",TEXT(C2:C12, "dd")))))

    以上、Excelでワイルドカードを使う方法でした。 この情報が皆さんの仕事に役立つことを願っています。 とにかく、読んでくださってありがとうございました。

    練習用ワークブック(ダウンロード

    Excelの計算式(.xlsxファイル)におけるワイルドカードについて

    Michael Brown は、ソフトウェア ツールを使用して複雑なプロセスを簡素化することに情熱を注ぐ熱心なテクノロジー愛好家です。テクノロジー業界で 10 年以上の経験があり、Microsoft Excel と Outlook、さらに Google Sheets と Docs のスキルを磨いてきました。 Michael のブログは、彼の知識と専門知識を他の人と共有することに特化しており、生産性と効率を向上させるためのわかりやすいヒントとチュートリアルを提供しています。経験豊富なプロフェッショナルであろうと初心者であろうと、Michael のブログでは、これらの重要なソフトウェア ツールを最大限に活用するための貴重な洞察と実践的なアドバイスを提供しています。