2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Google スプレッドシート】スプレッドシートでワイルドカードを活用しよう

Last updated at Posted at 2025-12-14

記事の概要

Qiita社内のビジネス職メンバーにワイルドカード使いが少なくて寂しいので、布教活動です。
ワイルドカードを関数と組み合わせることで、Excelやスプレッドシートを使う業務がちょっと楽になるかもしれません。

Excelやスプレッドシートにおけるワイルドカードとは?

メジャーリーグでは、各地区優勝チームを除いたチームの中から勝率上位3チームに与えられるポストシーズン出場枠。
トランプをはじめとするカードゲームでは、ジョーカーのように何にでも代用できる特別なカード。

…など、様々な意味がありますが、Excelやスプレッドシートでは、特定の文字や文字列の代わりに記号を用いて、部分一致検索やあいまい検索を可能にします。

スプレッドシートで使えるワイルドカード

スプレッドシートで使えるワイルドカードは下記3つです。

  • *(アスタリスク)
    • 任意の文字列を指定する際に使用します。
  • ?(クエスチョンマーク)
    • 任意の1文字を指定する際に使用します。
  • ~(チルダ)
    • 検索したい条件に*?が含まれており、それらの記号をワイルドカードとして扱いたくない(エスケープしたい)ときに使用します。

?は使わずにすべて*で事足りるのでは?とも思うかもしれませんが、?は1文字しか指定できない = 検索や集計をする文字数が厳密に固定されるということなので、ノイズや表記ゆれを探し当てることができるなどのメリットもあります。

ワイルドカードを使用できるスプレッドシート関数の例

  • 特定の条件を満たすデータの集計をする関数
    • COUNTIF , COUNTIFS
    • SUMIF , SUMIFS
    • AVERAGEIF , AVERAGEIFS
  • 検索 / 参照
    • XLOOKUP
      • 引数の一致モードを省略すると問答無用で 「完全一致」 になるので、一致モードは2と指定してワイルドカードを使ってください。
    • VLOOKUP
    • HLOOKUP
    • MATCH

IFFILTER など、単体ではワイルドカードを使うことができない関数もあるので、それらの関数を使いたい場合は、上記の関数を組み合わせることでワイルドカード使用できるようになります。特に COUNTIF は使い勝手が良いと思います。

無理やりワイルドカードを使うより REGEXMATCH を使ったほうが楽な場合もありますが、正規表現の話になってしまうので、この記事では割愛します。

使用例

*(アスタリスク)の使用例

部分一致

image.png

例えば、A-001 を含む番号が りんご だった場合、 =COUNTIF(A:A,"*A-001*") で、りんごの種類がいくつあるのか、

image.png

=SUMIF(A:A,"*A-001*",C:C) で、在庫の合計を求めることができます。

前方一致

image.png

A-001 からはじまる番号が りんご だった場合、 =COUNTIF(A:A,"A-001*") で、りんごの種類がいくつあるのか、

image.png

=SUMIF(A:A,"A-001*",C:C) で、在庫の合計を求めることができます。

後方一致

image.png

例えば、番号の末尾が -001 で終わる商品をカウントしたい場合は、 =COUNTIF(A:A,"*-001")

image.png

在庫の合計は、=SUMIF(A:A,"*-001",C:C) で求めることができます。

?(クエスチョンマーク)の使用例

image.png

A-001 から始まる番号が りんご だった場合、 =COUNTIF(A:A,"A-001-???") で、りんごの種類がいくつあるのか、

image.png

=SUMIF(A:A,"A-001-???",C:C) で、在庫の合計を求めることができます。

image.png

また、検索や集計をする文字数が厳密に固定できるため、このように4文字を指定すると、A-002 ではじまる番号がほかに2つあっても、末尾が4文字のもの以外カウントしない。という使い方もできます。

~(チルダ)の使用例

image.png

A* から始まるものを数えたい場合は、 =COUNTIF(A:A,"*A~**")

image.png

A*-001 を含むものを数えたい場合は、=COUNTIF(A:A,"*A~*~-001*") のように、検索したい条件に *? が含まれている場合は ~ でエスケープすることができます。

文字列ではなくセルを指定する場合

image.png

*を用いた部分一致の場合は、 =COUNTIF(A:A,"*"&F3&"*")
前方一致なら =COUNTIF(A:A,F3&"*") 、 後方一致なら=COUNTIF(A:A,"*"&F3) と、& を使用して指定したいセルと*をつなぎます。

image.png

? の場合は、 =COUNTIF(A:A,F3&"-???") になります。

急に&が出てきましたが、難しく考えることはないです。イメージはこれです。

image.png

とくに * は掛け算や正規表現でも用いる記号なので分かりにくくなるところだと思いますが、 ワイルドカードの *? は、 検索パターンを指定するための特殊な文字 という扱われ方をするので、 "Advent Calendar" のように " で囲って & でつなぎましょう。

日付

日付はデフォルトだと文字列ではなくシリアル値なため、そのままだとワイルドカードを使えません。
もしワイルドカードを使いたい場合は、=TEXT(2025/12/25,"yyyy年mm月") , =TEXT(2025/12/25,"yyyy/mm") , =TEXT(2025/12/25,"yyyy-mm")のように TEXT関数で文字列にするとよいです。

image.png

例えば、文字列に変換するために1列増やして、 =TEXT(A3,"yyyy年mm月") でワンクッション置いて

image.png

=SUMIF(B:B,"*"&G2&"*",C:C)とすれば、A列が2025年9月のものだけ計算できます。

image.png

※このとき、G2の値も文字列である必要があるので、「表示形式の詳細設定」を「書式なしテキスト」にしています。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?