1

これをもう一度試してみましょう。ウェブを検索していて、何も見つからないようです。私がやろうとしているのは、別のセルの値に基づいて条件付きの名前付き範囲リストの束をExcelに持っていることです。データ検証をセットアップし、すべての IF ステートメントをソース テキスト ボックスに配置すると、文字制限に達している問題。2つの条件を設定するだけでうまくいくようですが、うまくいきません。これは、有効なサブアイテムを表示したい B 列の値に基づいた私のデータ例です。前述したように、列 B にある可能性のある値は 20 ほどあります。

          B     C
      1 ENG     dropdown of all engineering sub-categories
      2 PRO     dropdown of all production sub-categories
      3 PER     ...
      4 PAY
      5 ENG     dropdown of all engineering sub-categories  
      6 ENG     dropdown of all engineering sub-categories

列C1にデータ検証リストを設定しようとすると、次のように入力します...

=IF($E$5="CAR", CA,
IF($E$5="DCC", DCC,
IF($E$5="ENG", ENG,
IF$E$5="ENV", ENV,
IF$E$5="FBI", BI,
IF$E$5="FGL", GL, 
IF$E$5="FAP", AP, 
IF$E$5="FRE", AR, 
IF$E$5="FTX", Tax, 
IF$E$5="ORM", OAR, 
IF$E$5="PAY", PAY, 
IF$E$5="PIR", PER, 
IF$E$5="PRO", PRO, 
IF$E$5="PUR", PUR, 
IF$E$5="RSK", RM, 
IF$E$5="SLM", Sales,
IF$E$5="WFS", WAR)))))))))))))))))

IF 条件のおそらく半分しか入力できません。VLOOKUP を試してみましたが、列 C に入れることができる値は 1 つだけで、それをドロップダウンにしたいのです。どんな助けでも大歓迎です。

4

1 に答える 1

3

VLOOKUPとを組み合わせることで、はるかに短い式でこれを行うことができますINDIRECT

列Bの潜在的な名前と、2つの列のどこかに対応する範囲名のリストがありますか(列XとYなど)。

Col X Col Y
CAR CA
DCC DCC
ENG ENG
ENVENV
FBI BI
..。

次に、データ検証のリストのソースとして次の式を使用します。

= INDIRECT(VLOOKUP($ E $ 5、$ X:$ Y、2,0))

実際、このアプローチを使用すると、手動の範囲名に名前を付けて維持する手間を省くことができます。代わりに、名前付き範囲の名前を実際のアドレスに置き換えるだけです。これは、少し運が良ければ、自動的に導出できます。これはデータ構造によって異なりますが、関数、、、およびが役立つ可能性ADDRESSがあります。COUNTAOFFSETINDEXMATCH

たとえば、リストが最初の行のリストの名前と各ヘッダーの下にリストされている要素を使用して別のワークシートに保存される場合、このサンプルファイルはサンプルの数式を提供します。さらに一歩進んで、条件付き強調表示を使用して、無効なエントリをマークします。たとえば、選択後にタイプが変更されたためです。

ここに画像の説明を入力してください

于 2013-02-24T21:43:00.323 に答える