2

これは、ネストされたIFステートメントを含むExcelの数式です。

=IF((B2="East"),4,IF((B2="West"),3,IF((B2="North"),2,IF((B2="South"),1,""))))

基本的にこれを達成するには:

If cell B2 = "East"
   return "4"

ElseIf cell B2 = "West"
   return "3"

ElseIf cell B2 = "North"
   return "2"

ElseIf cell B2 = "South"
   return "1"

Else
   return ""

Excelの数式をこのような「読みやすい」方法で記述し、公式の構文に変換することはできますか?Excelの数式を書くのに役立つツールはありますか?

これは「スーパーユーザー」の質問かもしれません...しかし、プログラマーだけが答えを知っているかもしれません!

4

5 に答える 5

3

デイリードーズオブエクセルで言及された、ロブヴァンゲルダーによるエクセルフォーミュラフォーマッターアドイン。

Excelの数式バーは改行と空白を無視するため、Alt + Enterとスペースバーを使用して、数式を好きなようにフォーマットできます。私はそれを試しましたが、すぐにやめました。特に編集する必要がある場合は、スペースキーが多すぎます。

于 2009-10-12T15:37:07.467 に答える
1

1つのオプションは、VBAを使用してユーザー定義関数を作成することです。

新しいモジュールをワークブックに追加してから、次のようなVBを挿入します。

Function DirectionAsInt(Direction)
    Select Case (Direction):
        Case "East":
            DirectionAsInt = 4
        Case "West":
            DirectionAsInt = 3
        Case "North":
            DirectionAsInt = 2
        Case "South":
            DirectionAsInt = 1
    End Select
End Function

次に、セルに次のように配置できます。

=DirectionAsInt(B2)
于 2009-10-12T14:58:49.900 に答える
1

Excelの数式を書くのに役立つツールはありますか?

ないと思います、怖いです。

与えられた特定の例では、私は次のことをする傾向があります:

  1. 新しい名前を作成し、CompassPointsのような名前を呼び出して、その値を次のように設定します。={"South";"North";"West";"East"}
  2. これで、数式は次のようになります。=MATCH(CompassPoints, B2, 0)
于 2009-10-12T15:37:52.863 に答える
1

ルックアップテーブルがないと仮定すると、配列とインデックスの一致を行うことができます。

インデックス関数では、必要な値を使用して配列を作成します。次に、関数の次の引数として特定の行を入力する代わりに、一致関数を追加します。

Match関数では、検索する値(この場合はB2で値を検索します)を指定してから、検索する配列を指定します。次に、ゼロ引数を使用して、正確な値を使用するようにmatchステートメントに指示します。マッチ。

2つの配列が同じ順序である限り、2番目の配列で見つかった値と同じ場所にある最初の配列から値を取得します。

=INDEX({2,1,4,3},MATCH(B2,{"North","South","East","West"},0))

于 2020-11-03T20:12:33.670 に答える
0

お気に入りのテキストエディタを使用して置換する前にこれを行ったとき。優れたソリューションではありませんが、機能します。さらに、これをvb関数にすることができますが、これはもう少し読みやすくなっています。doignの欠点は、実行時間が長くなり、マクロを有効にする必要があることです。

たとえば、別のワークシートまたはいくつかの非表示のセルにルックアップテーブルを作成することもできます。

于 2009-10-12T14:26:11.917 に答える