Google SheetsのSWITCH文は文字列を正しく比較しない?

1
2022.04.28

Google SheetsにとてもシンプルなSWITCH文があります。

=switch(
    D2,"",B2,
    D2,"A","A",
    D2,"B","B",
    "Default"
    )

D2に空白でない値を入れると、Bや他の値(1文字以上)を入れても、常にAが返ってくる。D2を空白にすると、正しくB2の値が返ってくる。まるで、空白でない文字列はすべて「A」と等しいかのように、SWITCHは比較を行うのです。しかし、ドキュメントやSWITCHの例を提供している他の多くのウェブサイトが言うようなことは、確かに起こりません。これはSheetsのバグなのでしょうか、それとも私が何か誤解しているのでしょうか?

私の実際のユースケースは3つのケースよりはるかに多いので、代わりにネストされたIFを使用するよう私に助言しないでください。

回答
1
2022.04.28

google sheetのSWITCH関数。

switch関数は以下のような構文になります。

SWITCH(expression, case1, value1, [case2, value2, ...], [default])

ですから、関数内の余分なD2を削除すれば、うまくいくはずです。

=SWITCH(
    D2,"",B2,
    "A","A",
    "B","B",
    "Default"
    )

また、数式を引きずった場合のために、第一引数の代わりに範囲を指定することもできます。