Excel データ検証式

Excel データ検証式

入力列のあるテーブルがあり、許容される入力値を持つ 2 つのテーブルを設定しました。正しいテーブルは、各行の末尾のセルの値によって異なります。どのテーブルが許可されるかを判断するために、データ検証式 ( など=if cellatendof row>0, table1, table2) を設定しました。データ検証を下にドラッグしようとしましたが、チェックするセルの相対参照が使用されませんでした。そのため、列の各セルに手動で移動し、データ検証式を更新して、その特定の行のセルをチェックしました ( =if cellatendofrow1>0... then next =if cellatendofrow2>0... など)。

これは機能しますが、データ検証式をオフにしない限り、行を追加または削除したり、データを並べ替えたりすることはできません。セルの新しい場所を指すのではなく、ハードコードされた元の行を指します。そのため、行が追加されると、行 1 は行 2 に移動しますが、cellatendofrow1ハードコードされているため、数式は引き続き行を参照します。残りのすべての行も同様に参照され、結果は無効になる可能性があります。

参照を静的ではなく相対的にして、行の残りの部分とともに移動する方法はありますか?

申し訳ありませんが、私は VB を知りませんが、それが問題を解決するかどうか試してみることができます。

答え1

テーブル フラグがColumnC(常に!) に設定されている場合は、次に示す数式が機能するようです (名前付き範囲を使用)。

SU479043

関連情報