Googleスプレッドシートのワイルドカードを使って、あいまい検索する方法をご紹介します。条件をセル参照にする場合のワイルドカードの指定方法や、正規表現を使用した文字列の置換方法についても解説しているので、ぜひ参考にしてみてください。
SUMIF関数でワイルドカードを使用する方法
ワイルドカードは全部で 3 種類あります。すべて半角入力する点に注意しましょう。なおVLOOKUP関数やCOUNTIF関数の検索条件にも、同じように使えます。
アスタリスクの使い方
アスタリスク(*)は、任意の 0 個以上の文字を表す記号です。
例えば SUMIF(A2:A6,”*果物*”,C2:C6) なら分類から果物を含む文字列を検索し、価格を合計します。このとき、文字列中の 果物 が含まれる位置は関係ありません。
SUMIF関数の構成要素:(範囲, 条件, [合計範囲])
果物で始まる文字列なら 果物*、果物で終わる文字列なら *果物 です。アスタリスクは 0 個以上の文字なので、例のように 果物 単体でも一致判定になります。
条件に指定する文字列には、二重引用符(“*文字列*”)を付けてください。
疑問符の使い方
疑問符(?)は、任意の 1 文字を表す記号です。
例えば SUMIF(A2:A6,”???ジュース”,B2:B6) なら商品名から 3 文字で始まるジュースを検索し、価格を合計します。このように疑問符を使えば、文字数の指定が可能です。
チルダの使い方
チルダ(~)はアスタリスクや疑問符の前に置くことで、ワイルドカードの効果を打ち消します。
例えば SUMIF(A2:A6,”~**”,B2:B6) なら商品名から * で始まる文字列を検索し、価格を合計します。このようにチルダは、ワイルドカードを文字として認識させることが可能です。
セル参照でワイルドカードを使用する方法
条件をセル参照にする場合は、ワイルドカードをアンパサンド(&)で結合します。
例えば SUMIF(A2:A6,”*”&D2,B2:B6) なら 商品名からジュースで終わる文字列を検索し、価格を合計します。これは、条件に直接 *ジュース を指定した場合と同義です。
ジュースで始まるなら D2&”*”、ジュースを含むなら “*”&D2&”*” になります。
二重引用符を付けるのは、結合対象のワイルドカードおよび文字列の部分だけです。
正規表現を使用した置換方法
正規表現はワイルドカードの上位互換のようなもので、記号を使って文字列のパターンを表します。
例えば、ピリオド(.) は改行を含む任意の 1 文字です。
[Ctrl]+[H] で検索と置換を開き、検索欄に . を入力してみてください。[正規表現を使用した検索] にチェックを入れて[すべて置換]をクリックすると、全ての文字が空白に置換されます。
括弧を含む括弧内の文字列を表す正規表現は、 \(.*\) です。
アスタリスク(*)は直前の正規表現の繰り返しを表す記号なので、 .* は任意の文字列を表します。この場合、括弧に入力されている内容や文字数に関わらず (文字列) を置換可能です。
なお \ については、記号の効果を打ち消すエスケープの役割をしています。
エスケープ処理とは、正規表現で使用する記号を文字として認識させるための処理です。
数値ではない文字列を表す正規表現は、 \D です。例えば \D を検索して空欄に置換すると、範囲内の数字を除くすべての文字を削除できます。
正規表現 | 説明 | 例 | x に置換した場合 |
---|---|---|---|
. | 改行を含む任意の1文字 | b.d | abcde ⇒ axe |
[ ] | [ ] 内に指定したいずれかの文字 | [bc] | abc ⇒ axx |
[^ ] | [ ] 内に指定したいずれの文字でもない | [^bc] | abc ⇒ xbc |
\d | 数字 (== [0-9]) | \d | a1b2c3 ⇒ axbxcx |
\D | 数字ではない(== [^0-9]) | \D | a1b2c3 ⇒ x1x2x3 |
* | 直前の正規表現の0回以上の繰り返し | a.*e | abcde ⇒ x |
^ | 直後に指定した文字列から始まる | ^ab | abcde ⇒ xcde |
$ | 直前に指定した文字列で終わる | de$ | abcde ⇒ abcx |
\s | 空白 | \s | a b c ⇒ axbxc |
\S | 空白ではない | \S | a b c ⇒ x x x |