条件
SWITCH関数の使い方・読み方
読み方:SWITCH は「スイッチ」と読みます。(一般的な読み方です。公式に読み仮名の定めはありません)
SWITCHは、1つの値を複数のパターンと突き合わせて、一致したものに対応する値を返す関数です。
このページの中身(23項目)
この記事の書式と対応環境の出どころ(2026-08-26 確認)
- Google スプレッドシート ヘルプ:公式の書式は
SWITCH(式, ケース1, 値1, [既定値またはケース2, 値2], …)
https://support.google.com/docs/answer/7013690 - Microsoft サポート:SWITCH 関数(2019 以降で使えます)
https://support.microsoft.com/ja-jp/excel/functions/switch-function
関数の仕様は追加・変更されることがあります。書式が合わないときは、上の公式ページで最新をご確認ください。
「東京なら首都圏、大阪なら関西、…」のような値の言い換えに特化しています。IF のネストや IFS でも書けますが、同じセルを何度も書かずに済むぶん短くなります。

書式
=SWITCH(対象, パターン1, 値1, パターン2, 値2, ..., [既定値])
| 引数 | 内容 |
|---|---|
| 対象 | 判定したい値・セル |
| パターン/値 | ペアで並べる。いくつでも増やせる |
| 既定値 | どれにも一致しなかったときの値。最後に単独で置く |
基本の使い方
=SWITCH(A2, "東京", "首都圏", "大阪", "関西", "福岡", "九州", "その他")
A2が「大阪」なら「関西」、リストに無い値なら「その他」が返ります。
最後の "その他" はペアになっていない単独の引数です。引数の数が偶数なら既定値あり、奇数なら既定値なし、と考えると分かりやすくなります。

IFSとの違い
同じ処理を並べます。
IFS
=IFS(A2="東京","首都圏", A2="大阪","関西", A2="福岡","九州", TRUE,"その他")
SWITCH
=SWITCH(A2, "東京","首都圏", "大阪","関西", "福岡","九州", "その他")
SWITCHは A2= の繰り返しが消えます。項目が20個あれば、この差は大きくなります。
使い分けの基準はシンプルです。
SWITCHは完全一致しか判定できません。「80点以上なら」のような範囲判定はIFSの領分です。
既定値を省略するとどうなるか
既定値を書かずに一致するものが無いと、#N/A が返ります。
=SWITCH(A2, "東京","首都圏", "大阪","関西")
A2が「札幌」なら #N/A です。これを意図的に使う場合もありますが、通常は既定値を書いておくほうが安全です。想定外の値が入ったことに気づけないよりは、「その他」として扱うか、明示的に「要確認」と出すほうが運用しやすくなります。
=SWITCH(A2, "東京","首都圏", "大阪","関西", "要確認")
実用例
コードを名称に変換する
=SWITCH(A2, 1,"未処理", 2,"処理中", 3,"完了", 9,"キャンセル", "不明")
数値コードでも文字列でも同じように書けます。
曜日番号を曜日名にする
=SWITCH(WEEKDAY(A2), 1,"日", 2,"月", 3,"火", 4,"水", 5,"木", 6,"金", 7,"土")
WEEKDAY は1(日曜)〜7(土曜)を返すので、そのまま振り分けられます。
複数の値を同じ結果にまとめる
同じ結果になるパターンは、素直に繰り返して書きます。
=SWITCH(A2, "東京","首都圏", "神奈川","首都圏", "千葉","首都圏", "埼玉","首都圏", "その他")
繰り返しが多くなるなら、別シートに対応表を作って XLOOKUP で引くほうが保守しやすくなります。
=XLOOKUP(A2, 対応表!A:A, 対応表!B:B, "その他")
分類が10を超えたら表に移す、というのが実務的な目安です。数式を触らずに分類を追加できます。
注意点
完全一致のみです
大文字小文字は区別されませんが、前後のスペースは区別されます。"東京 " は "東京" と一致しません。外部から取り込んだデータでは TRIM を挟むと安全です。
=SWITCH(TRIM(A2), "東京","首都圏", "その他")
数値と文字列は別物です
1 と "1" は一致しません。
パターンに範囲や条件式は書けません
">80" のような書き方は文字列として扱われ、一致しません。範囲判定は IFS を使ってください。
TRUEを使った裏技
対象に TRUE を置くと、パターンの側に条件式を書けます。
=SWITCH(TRUE, A2>=90,"A", A2>=80,"B", A2>=70,"C", "D")
「条件式の結果が TRUE と一致するもの」を上から探す、という理屈です。動きますが、読み手が意図を掴みにくいので、素直に IFS を使うほうが親切です。
完全一致の振り分けに特化している
SWITCHは、ひとつの値を複数の候補と照合して、一致したものに対応する結果を返します。判定が完全一致に限られるという制約がありますが、その代わり書き方が非常に簡潔になります。
IFSと比べると違いがはっきりします。IFSは条件式を並べるので、大小の比較も範囲の判定も書けます。柔軟ですが、同じ値を何度も書くことになります。判定対象がA1なら、条件のたびにA1を書く必要があります。条件が五つあれば五回書きます。
SWITCHは判定対象を最初に一度だけ書き、その後は候補の値と結果を交互に並べるだけです。同じ値を繰り返さないので、数式が短くなり、判定対象を変更するときも一か所を直すだけで済みます。
したがって、区分コードを名称に変換する、記号を日本語に置き換える、選択肢に応じて固定の値を返す、といった用途はSWITCHが適しています。逆に、金額の大小で区分を決めるような判定にはIFSを使ってください。→ IFS関数の使い方
既定値を書くかどうかの判断
SWITCHは、引数の数によって最後の値の扱いが変わります。候補と結果のペアが揃った後に値を一つだけ書くと、それがどれにも一致しなかった場合の既定値になります。書かなければ、一致しなかったときにエラーが返ります。
既定値を書くべきかどうかは、想定外の値が入る可能性で決まります。
入力規則でプルダウンにしていて、決まった選択肢しか入らないなら、既定値を書かずにエラーを出すほうが安全です。想定外の値が入ったことに気づけます。エラーが出れば、入力規則が外れているか、データの取り込み方に問題があると分かります。
一方、手入力や外部からの取り込みで、想定外の値が入りうるなら、既定値を書いてください。「その他」や「未分類」といった値を返すようにしておけば、数式が壊れず、かつ想定外があることも分かります。空欄にしてしまうと気づけないので、何らかの文字を返すほうが親切です。
既定値をゼロにするか空文字にするかは、後続の計算で決めてください。集計に使うならゼロ、表示だけなら空文字が扱いやすくなります。
真を使った条件分岐
SWITCHは完全一致しかできませんが、判定対象に真を指定するという書き方をすると、条件式による分岐が可能になります。
仕組みは単純です。判定対象を真とし、候補の位置に条件式を書きます。条件式は真か偽を返すので、真になった最初の条件が一致し、その結果が返ります。実質的にIFSと同じ動きになります。
この書き方を知っていると、SWITCHひとつで完全一致と条件分岐の両方に対応できます。ただし、読み手にとっては意図が分かりにくくなります。判定対象の位置に真が書かれていると、何をしているのか一目では分かりません。
自分だけが触るファイルなら問題ありませんが、共有するファイルでは素直にIFSを使うほうが親切です。書けることと、書くべきことは別です。
なお、この書き方でも上から順に評価される点は同じです。範囲で判定する場合は、条件の順序に注意してください。
対応表に置き換える判断
候補が増えてきたら、数式ではなく対応表を使う段階です。判断の目安は、候補が五つを超えたあたりです。
対応表の利点は三つあります。第一に、変換の内容が一覧で見えることです。数式の中に埋もれていると、今どういう対応になっているのかを確認するのに数式を読み解く必要があります。第二に、追加や変更が行の編集だけで済むことです。数式を触らないので、壊す危険がありません。第三に、対応表そのものを他の用途にも使えることです。
対応表を作ったら、検索関数で引きます。完全一致で検索すれば、SWITCHと同じ結果になります。見つからない場合の処理も、検索関数の機能で書けます。
欠点は、表を置く場所が必要になることです。別シートに置いて非表示にする運用が一般的ですが、シートが増えるのを嫌う場合もあります。
判断の基準としては、候補が固定で数個ならSWITCH、増減する可能性があるか数が多いなら対応表、と考えておけば大きく外れません。
変換処理をどこに置くか
コードを名称に変換する処理は、置く場所によって保守のしやすさが変わります。
数式の中に埋め込む方法は、手軽ですが、変換の内容が見えません。同じ変換を複数の場所で使っている場合、すべてを直し回ることになります。
対応表を作って検索で引く方法は、変換の内容が一覧で見えます。追加や変更が行の編集だけで済み、複数の場所から同じ表を参照できます。
作業列で一度だけ変換する方法もあります。元データの横に名称の列を作り、以降はその列を参照します。変換の処理が一箇所に集まるので、確認も修正も楽になります。
判断の目安は、変換の種類数と使う箇所の数です。種類が少なく一箇所でしか使わないなら数式に埋め込む。種類が多いか複数箇所で使うなら対応表。この基準で決めてください。
もうひとつ、変換の内容が業務のルールである場合は、必ず表に外出ししてください。ルールが変わったときに、数式を触らずに対応できます。誰がいつルールを変えたかも、表の履歴で追えます。
表示と保存を分ける
コードで保存し、名称で表示する。この分離は、データ設計の基本です。
保存するのはコードです。短く、一意で、変わりません。集計も検索も、コードで行えば表記ゆれの影響を受けません。
表示するのは名称です。人が読むためのものなので、分かりやすさを優先します。名称が変わっても、コードが同じなら過去のデータとの整合性が保たれます。
この分離ができていないと、名称が変わったときに過去のデータをすべて書き換えることになります。「営業一課」が「第一営業部」に変わっただけで、集計が分断されます。
コードで保存していれば、対応表の名称を書き換えるだけで済みます。過去のデータはそのまま、表示だけが新しい名称に変わります。
入力する側にとっては、コードを覚えるのは負担です。ここでプルダウンを使います。表示は名称、保存はコード、という形にできれば理想ですが、標準の機能では難しいことが多いものです。現実的には、名称で選ばせて、隣の列に検索でコードを出す形になります。
この設計は最初は面倒に感じますが、運用が長くなるほど効いてきます。
「条件」の関数を全体から見る
条件に含まれる関数を、全体から見ておきます。同じカテゴリの関数は、つまずく場所も似ています。この記事のほかに14本あります。
このカテゴリで共通するつまずき
文字列は引用符で囲む必要があります。囲み忘れが最も多い間違いです。1つで理解した内容は、同じカテゴリの他の関数にもそのまま使えます。
どれを使うかの決め方
分岐が3つを超えたら、数式ではなく対応表を引く形にしてください。関数の一覧を眺めて選ぼうとすると、どれも当てはまるように見えて決まりません。
迷ったときは
→ 全関数の一覧 に目的別の索引があります。
数式を書く前の手順
手順を分けると、どこで詰まっているかが分かります。
1. 出したい結果を一文で書く
「何を、どの条件で、どんな形で出したいか」。この一文が書ければ、関数はほぼ決まります。書けないなら、まだ要件が固まっていません。
2. 元データの型を確認する
文字列は引用符で囲む必要があります。囲み忘れが最も多い間違いです。=ISNUMBER(A2) で数値かどうかを確認できます。見た目が同じでも、数値と文字列は別物です。
3. 空欄と0の扱いを決める
未入力なのか、実績が0なのか。表の意味が変わります。どちらとして扱うかを決めてから書いてください。
4. 条件の数を数える
分岐が3つを超えたら、数式ではなく対応表を引く形にしてください。将来条件が増える可能性があるなら、最初から複数条件に対応する形にしてください。
5. 共有先の環境を確認する
新しい関数は、古い環境で開くとエラーになります。社外に渡すファイルでは、この一点で選択肢が変わります。
6. 1行だけ書いて確認する
全行にコピーする前に、1行分の結果が正しいかを見てください。間違ったまま広げると、直す手間が増えます。
どの関数でも共通する確認
以下は、どの関数を使っていても同じです。
参照を固定したか
下方向にコピーする数式では、動いてはいけない参照を固定します。上の数行だけ見て判断しないでください。ずれは下のほうで表面化します。
範囲の行数が揃っているか
複数の範囲を渡す関数では、行数がずれると結果が狂います。エラーにならず値が返るため、気づきにくい種類の間違いです。
型が揃っているか
=ISNUMBER(A2)
数値として入っているかを判定します。システムから書き出したデータでは、これが原因のことが多くあります。
前後に空白が入っていないか
=LEN(A2)&" / "&LEN(TRIM(A2))
数が違えば、余分な空白が入っています。見た目では判別できません。
別の方法で検算したか
同じ数字を別の関数でも出して、突き合わせてください。1つの結果だけを見ても、正しいかどうかは判断できません。
最終行まで確認したか
一番下までスクロールして、結果を見てください。途中から値が変わっていないかを確認します。
引き継ぐときに残すこと
数式は動いていても、意図は残りません。渡す前に、次の点をシート内にメモしてください。3分で終わります。
何を出している数式か
一行で構いません。読めば分かると思っても、数か月後の自分には分かりません。
どの表を参照しているか
参照先のシート名と、更新の担当。別ファイルなら、その場所も書いてください。
該当しないときの扱い
空欄にしているのか、文言を出しているのか、エラーのまま残しているのか。書いていないと、受け取った側は空欄をデータなしと読みます。
触ってはいけない場所
列を挿入すると壊れる数式がある場合、必ず書き残してください。この一行があるだけで、引き継ぎ後の事故が大きく減ります。
使った関数の対応環境
新しい関数を使っている場合、古い環境では開けません。共有の範囲が広がる可能性があるなら、明記してください。
確定した期間は値にする
締めた月の集計は、値貼り付けにしてください。参照元を消しても壊れなくなり、ファイルも軽くなります。
このサイトの収録状況
全201本を、次のカテゴリに分けて収録しています。
| カテゴリ | 記事数 |
|---|---|
| 目的別 | 51本 |
| 集計 | 47本 |
| 文字列 | 31本 |
| 日付 | 19本 |
| 検索・参照 | 15本 |
| 条件 | 15本 ←この記事 |
| 機能 | 12本 |
| 配列・抽出 | 10本 |
| 関数一覧 | 1本 |
探し方の順番
関数名が分かっているなら検索窓から。やりたいことだけ決まっているなら「目的別」から。近い関数を比べたいなら、同じカテゴリの一覧から入ってください。
記事の構成
どの記事も、書式・実例・つまずきやすいところ・似た関数との使い分けを同じ順番で並べています。1本読めば、他の記事も同じ場所を探せます。
よくある質問
Q. 大小の比較はできますか
そのままではできません。判定対象に真を指定して条件式を書く方法があります。ただし読みにくくなるので、IFSを使うほうが素直です。
Q. 部分一致で判定できますか
できません。完全一致のみです。部分一致が必要なら、検索の関数と組み合わせるか、IFSで条件式を書いてください。
Q. 大文字と小文字は区別されますか
区別されません。区別したい場合は、厳密に比較する関数を条件式として使う必要があります。
Q. 一致しないとエラーになります
既定値を指定していません。最後に値を一つ書けば、一致しなかったときの結果になります。
Q. 候補はいくつまで書けますか
実用上、困らない数を指定できます。ただし多いと読めなくなるので、五つを超えたら対応表を検討してください。
Q. 結果に数式を返せますか
返せます。文字列だけでなく、計算式や他のセルの参照も返せます。
Q. 空白を候補にできますか
空文字を候補として指定できます。ただし、空セルと空文字は別物である点に注意してください。
Q. IFSとどちらを使うべきですか
完全一致で振り分けるならSWITCH、大小や範囲で判定するならIFSです。同じ値を何度も書くかどうかが目安になります。
まとめ
- 書式は
=SWITCH(対象, パターン1, 値1, ..., 既定値) - 値の一致による振り分けに特化
- 比較演算子を含む判定は IFS
- 既定値は最後に単独で置く。省略すると
#N/A - 分類が10を超えたら表+XLOOKUP
関連する関数
SWITCH でつまずきやすいところ
範囲や比較を書けない
SWITCH は値が一致するかだけを見ます。 「100以上なら」のような比較は書けません。 比較で振り分けるなら IFS を使ってください。
どうしても SWITCH で書くなら、判定を TRUE との比較にします。
=SWITCH(TRUE,A2>=100,"A",A2>=50,"B","C")
読みにくくなるので、素直に IFS のほうが引き継ぎやすくなります。
既定値を書き忘れる
最後の引数は「どれにも当てはまらないとき」の値です。
省略すると、当てはまらなかったときに #N/A が返ります。
入力途中の空欄がある表では、これが並びます。
#N/Aエラーの直し方で扱っている状況と同じです。
一致しているはずなのに当たらない
SWITCH の比較は文字として厳密です。
末尾の空白、全角と半角、数値と文字列の違いで外れます。
=SWITCH(TRIM(A2),…) のように整えてから渡すか、
入力欄をプルダウンにして手入力をやめるのが確実です。
IFS・IF・SWITCH の使い分け
いちばん下が要点です。分類が増えるたびに数式を直すのは続きません。 対応表をシートに置いて引く形にしておけば、表を足すだけで済みます。