列のデータ検証式を実行するにはどうすればいいですか?

列のデータ検証式を実行するにはどうすればいいですか?

たとえば、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 つは同じように機能します。BA


CarTableまたはが複数の列である可能性もあるため、問題が発生している可能性がありますBikeTable。その場合は、名前付き範囲を 1 つの列になるように調整します。


実際のテーブルである可能性もありますCarTable。その場合は、全体を囲む列の名前をINDIRECT()次のように追加できます。

Indirect("CarTable[Model]")

関連情報