IT・デジタル

【Excel】SWITCH関数でエラーがでる?その原因と対処法について

Microsoft ExcelでSWITCH関数を使用してもうまく動作しない、計算式は間違っていないはずなのに「#NAME?」エラーが表示されてしまうのはなぜでしょう?

当記事では、SWITCH関数を使用した時にエラーが発生する原因や、その対処法、解決方法について説明しています。

SWITCH関数が使えない原因とは?

SWITCH関数でエラーが発生する

SWITCH関数が使えない原因は

  • 計算式が間違っている
  • 関数名が間違っている
  • 関数が対応していないバージョンのExcelである

以上のことが考えられます。

特に「#NAME?」エラーが表示される場合は、関数名が間違っているかSWITCH関数が使えないバージョンのExcelである可能性が高いです。

一部の関数は古いバージョンのExcelでは使用することができず、SWITCH関数の使えるバージョンを簡単にまとめると、次の表のようになります。

2010201320162019以降
買い切り
×
×
×
Microsoft 365

もし、SWITC関数が使えないという場合は、一度お使いのExcelのバージョンを確認してみてください。

「#NAME?」以外のその他のエラー、例えば「#DIV/0!」や「#VALUE!」と表示される場合、計算式や参照先のセルを間違えているか、参照先のセルに対象外となる情報が含まれている可能性がありますので、一度計算式そのものを見直してみてください。

では、SWITCH関数を2016以前のExcelでも使用するには、どのようにすればいいでしょう?

次は、SWITHC関数の修正方法について説明していきます。

SWITCH関数をIF関数に置き換える

SWITCH関数は、条件に一致した場合に特定の結果を表示するという関数ですので、IF関数に置き換えることが可能です。

IF関数への置き換え方は、ざっと説明するとこの通りです。

  1. 文頭の =SWITCH を =IF に変更
  2. 1つ目のカンマを = に置き換える
  3. 置き換えた = の部分から、文頭の IF までコピーする
  4. 数えて偶数個のカンマごとに、コピーした式をペーストする(最後を除く)
  5. 追加した IF の数だけ文末に ) を追加

では例として、

SWITCH関数でエラーが発生する
=SWITCH(WEEKDAY(A2),1,”月曜日”,2,”火曜日”,3,”水曜日”,”一致なし”)

こちらのSWITCH関数の修正を、一つずつ区切って説明していきます。

文頭の =SWITCH を =IF に変更

【修正前】
=SWITCH(WEEKDAY(A2),1,”月曜日”,2,”火曜日”,3,”水曜日”,”一致なし”)

【修正後】
=IF(WEEKDAY(A2),1,”月曜日”,2,”火曜日”,3,”水曜日”,”一致なし”)

1つ目のカンマを = に置き換える

【修正前】
=IF(WEEKDAY(A2),1,”月曜日”,2,”火曜日”,3,”水曜日”,”一致なし”)

【修正後】
=IF(WEEKDAY(A2)=1,”月曜日”,2,”火曜日”,3,”水曜日”,”一致なし”)

※1つ目のカンマ=1つ目の条件を区切るカンマのことです。

置き換えた = の部分から、文頭の IF までコピーする

【コピーする】
=IF(WEEKDAY(A2)=1,”月曜日”,2,”火曜日”,3,”水曜日”,”一致なし”)

数えて偶数個のカンマごとに、コピーした式をペーストする

【修正前】
=IF(WEEKDAY(A2)=1,”月曜日”,2,”火曜日”,3,”水曜日”,”一致なし”)

【修正後】
=IF(WEEKDAY(A2)=1,”月曜日”,IF(WEEKDAY(A2)=2,”火曜日”,3,”水曜日”,”一致なし”)

最後の”一致なし”の部分を除き、同様にペーストしていきます。

【修正前】
=IF(WEEKDAY(A2)=1,”月曜日”,2,”火曜日”,3,”水曜日”,”一致なし”)

【修正後】
=IF(WEEKDAY(A2)=1,”月曜日”,IF(WEEKDAY(A2)=2,”火曜日”,IF(WEEKDAY(A2)=3,”水曜日”,”一致なし”)

追加した IF の数だけ文末に ) を追加

【修正前】
=IF(WEEKDAY(A2)=1,”月曜日”,IF(WEEKDAY(A2)=2,”火曜日”,IF(WEEKDAY(A2)=3,”水曜日”,”一致なし”)

【修正後】
=IF(WEEKDAY(A2)=1,”月曜日”,IF(WEEKDAY(A2)=2,”火曜日”,IF(WEEKDAY(A2)=3,”水曜日”,”一致なし”)))

これで修正完了です。

IF関数でSWITCH関数と同じ動作をすることが確認できます。

【修正前】
=SWITCH(WEEKDAY(A2),1,”月曜日”,2,”火曜日”,3,”水曜日”,”一致なし”)

【修正後】
=IF(WEEKDAY(A2)=1,”月曜日”,IF(WEEKDAY(A2)=2,”火曜日”,IF(WEEKDAY(A2)=3,”水曜日”,”一致なし”)))

おわりに

SWITCH関数はIFS関数などと同様に、2016年以降に追加された関数です。

基本的に「#NAME?」エラーはExcelで使用できない関数や、関数の名前を間違って入力したときに表示されるエラーです。

SWITCH関数以外でも「#NAME?」エラーが表示された場合は、関数名の確認のほか、お使いのExcelのバージョンに対応している関数なのかも調べてみましょう。

ABOUT ME
KW
ただのガジェット好き。iPhone・iPad・Androidを中心に、何か困った際の手助けになれるような情報を発信しています。