Excel で特定の範囲内にデータの組み合わせが存在するかどうかをチェックする

Excel で特定の範囲内にデータの組み合わせが存在するかどうかをチェックする

質問1337631を参照 あるデータセットの特定の範囲の値が別のデータセットに存在するかどうかを確認する

このソリューションはうまく機能しますが、同じ範囲内でチェックしたい場合はどうでしょうか? これを 2 つの目的で使用します: 1) データ入力時に、特定の組み合わせがすでに入力されていることを警告する (他のデータが異なるため、正当な理由がある可能性があります) 2) すべての重複レコードをマークする

この数式を最初の目的 (入力) に使用するには、現在のエントリより上の範囲をチェックします。これでうまくいきますが、目的 2 は使用できません...

これらを組み合わせて機能させるための提案はありますか? 現在の行を除くすべてを連結すると機能するはずです... しかし、それは数式の複雑な変更になるのでしょうか?

答え1

サンプル データに 3 つの列があり、セル C3:F7 にあるとします。

次に、F3 に次の数式を入力し、数式バー内から CTRL + SHIFT + ENTER を押して配列数式を作成します。数式は自動的に中括弧で囲まれ、配列数式であることを示します。

次に、目的の行までドラッグします。同じテーブル内の行の一意または重複ステータスがそれに応じて示されます。

=IF(SUM(IF(C3&D3&E3=$C$3:$C$7&$D$3:$D$7&$E$3:$E$7,1,0))>1,"Duplicate","Unique")

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

答え2

素晴らしい代替式ですが、拡張リストに適用できるようにするために式を次の「オープンエンド範囲」に拡張すると、CPU が最大 90% 使用され、シートが使用できなくなります...

=IF(ISTEXT(D7);IF(SUM(IF(B7&C7&D7=$B:$B&$C:$C&$D:$D;1;0))>1;"重複";"一意");"")

これを利用できるようにする解決策はありますか? 行数を 8 ~ 1000 に制限したところ、機能するようになりましたが、もちろんシートの成長を追跡する必要があります。

関連情報