0

私は次のような式を持っています:

=(IF(ISBLANK(B1),1, (IF($B1="Banana", 2.23, IF($B1="Cherry",3.5))) )*C1*A1)

ここで、セルB1の値は、データ検証ドロップダウンリストから取得されています。これは、上記の例とは異なり、多くのIFおよびOR演算子を使用して非常に長くなっています。私がそれ自体の公式ですべてのバナンとサクランボの関係を維持することを宣言することはすぐに不可能になりそうです。リストと数式の両方をほぼ同じ情報で更新することのポイントは何ですか-ユーザーにドロップダウンを提供するためだけに:/

1つのオプションは、ドロップダウンリストに乗数の値を入力し、それを使用VALUE(RIGHT(B1,LEN(B1)-FIND("x",B1)) して引き出すことです。ただし、この場合、乗数は非常に長い小数であり、「バナナ0.000000d325001」のようにエンドユーザーを混乱させる可能性があります。

2つの可能性があります。

1.ある種の前処理を使用して、ドロップダウンメニューで乗数がユーザーに表示されないようにする方法を見つけます。

  1. バナナとチェリーをある種の配列で関連付ける方法を見つけます。キー:ドロップダウンメニューに表示されない値の関係。

これがどのように達成されるかを誰かが知っていますか?それは実行可能ですか、それとも単に傷ついた世界ですか?

皆さんの助けに感謝します。

4

2 に答える 2

1

基本的に、果物/価格情報を含む1つのテーブルが必要なだけで、ルックアップと検証はそのテーブルに従います。

VLOOKUPの数式とデータを示すExcelスプレッドシートのスクリーンキャプチャ

2番目のコメントが表示されたので、問題は少し複雑です。名前付き範囲を使用します。を使用する代わりに、を=VLOOKUP(B1,G$1:H$3,2,FALSE)使用して=VLOOKUP(B1,FruitTable,2,FALSE)ください。

FruitTable名前付き範囲です。を選択し、数式バーの左側にあるボックスにG1:H3入力すると、名前付き範囲を作成できFruitTableます(上の図では、これは「C1」が入ったボックスです。そのボックスをクリックすると、入力できます。名前)。

G1:G3この「名前付き範囲」手法を検証メニューに使用することもできます。ただし、選択して、などの別の名前を付ける場合を除きますFruitList。次に、検証を設定するときに=FruitList、ソースに使用します。

これで、リストに新しいアイテムを追加するときに、名前の範囲を調整するだけで済みます(数式/名前マネージャーを使用)。

于 2012-04-26T22:18:22.730 に答える
0
=(IF(ISBLANK(B1), 1, VLOOKUP(B1,YOUR_NAMED_RANGE,2,FALSE)*C1*A1)

YOUR_NAMED_RANGEは、Col1にバナナ、チェリーなど、Col2に乗数を含む2列の名前付き範囲です。

于 2012-04-26T22:17:06.290 に答える