たとえば、2 番目の列にリスト データの検証を適用するには、次のようにします。
車両 | モデル |
---|---|
車 | |
自転車 | |
車 |
次のような数式を実行したいのですが、エラーが発生します:
=IF($A:$A=“car”, CarTable, BikeTable)
エラーメッセージは次のとおりです:
「ソースは現在エラーと評価されます。」
続行をクリックすると、ドロップダウン ボタンが表示されますが、何も表示されません。
A2:A4
の代わりに を記述すれば動作A:A
しますが、列内のすべてのセルにデータ検証が適用されるように、実際の列に適用する必要があります (新しい項目が最終的に入力された場合)。
これをどうすればいいでしょうか?
答え1
A
列のセル値に基づいて列をフォーマットする場合はA
、次の条件を使用できます。
=A2="car"
そしてそれを応用するA:A
列の値に基づいて複数の列をフォーマットする場合はA
、絶対参照を使用する必要があります。
=$A2="car"
そしてそれを希望の範囲に適用します(例A:C
:)
答え2
間違いなく問題となるのは、参照範囲が間違っているように見えることです。それは次の部分です: $A:$A
。列全体を評価して、 と等しいかどうかを判断しようとしています"car"
。
$A2
(範囲内の最初のセルが であると仮定B2
)または、Excel のバージョンに応じて のいずれかを使用してみてください@$A:$A
。これらは両方とも単一のセルを返します。最初のケース($A2
)は、範囲内の各セルで参照される行を検証によって更新しますが、 のおかげで列は絶対値のままになります。2$
つ目(@$A:$A
)は、評価しているセルと同じ行にある列 のセルを返すという点で基本的に同じです。この場合、列 のデータは列 のデータと同じ行にあるA
ため、これら 2 つは同じように機能します。B
A
CarTable
またはが複数の列である可能性もあるため、問題が発生している可能性がありますBikeTable
。その場合は、名前付き範囲を 1 つの列になるように調整します。
実際のテーブルである可能性もありますCarTable
。その場合は、全体を囲む列の名前をINDIRECT()
次のように追加できます。
Indirect("CarTable[Model]")