Excel 関数で長くネストされた IF を避ける

Excel 関数で長くネストされた IF を避ける

2 つの異なる入力に依存する数式があります。1 つ目は 0 から 5 までの整数値で、2 つ目は配列内の値の丸められた合計です。ユーザーにこれら両方の値を入力してもらい、数式で目的の出力を決定させたいと思います。問題は、現時点で最初の変数の組み合わせが 6 つあり、それぞれによって 2 番目の変数の使用方法が変わることです。そのため、これを機能させるには非常に多くの IF ステートメントが必要になります。

正しい値を決定するテーブルを 0 から 5 までそれぞれ 1 つずつ別の場所に設定しています。質問ですが、Excel で次の操作を実行する方法はありますか?

  1. たとえば、セルに 0 から 5 が配置されているかどうかを確認しますA2

  2. その番号が含まれているシートに移動します。

  3. INDEX(...,MATCH())配列に配置された値の数と値の内容に基づいて、そのシートのテーブルから値を取得します。

テーブルを完全に避けて直接計算する方が合理的ではないかと考えていますが、大量のネストされたIFs のセットを生成せずにそれを実行する方法がわかりません。不明な点があればお知らせください。できる限り説明します。

答え1

私の理解が正しければ、異なるワークシートにあるテーブルに対してインデックス/一致操作を実行する数式を作成し、ユーザーがどのワークシートを検索するかを選択する必要があります。

CHOOSE と INDIRECT を使用して、A2 に配置された値に基づいて適切なワークシートへのパスを動的に構築するとよいようです。

たとえば、以下は、B2 にある値を使用して、適切なワークシートの A1:A3 のセルに対して Match を実行します。ここで、ワークシートは、ユーザーが A2 に入力した値 (1,2,3) に基づいています。

=MATCH(A2,(INDIRECT(CHOOSE(B2,"Sheet1","Sheet2","Sheet3") & "!" & "A1:A3")),0)

ここで CHOOSE はセル (A2) を監視するために使用され、そこに入力された値に基づいて、対応するインデックス (この場合はワークブック名​​) を持つオブジェクトを出力します。

INDIRECT を使用すると、セル パスをその場で構築できるため、SUM 関数で使用されるパスに正しいワークシート名を埋め込むことができます。

もちろん、テーブルが名前付き範囲であったり、サイズが異なる場合は、上記の例の静的な「A1:A3」を、別のセルでのユーザーの入力に基づいてパスの正しい部分を出力する別の CHOOSE にいつでも変更できます。

これがあなたがしようとしていることと完全に的外れであればお許しください。リストのステップ 3 がよくわかりません...

関連情報