web-dev-qa-db-ja.com

あるデータセットの特定の範囲の値が別のデータセットに存在するかどうかを確認します

1と2の2つのデータセットがあり、それぞれに値を持つ多数の列が含まれています。私の最終目標は、データセット2とは異なり、データセット2では見つからないデータセット1のすべての行を見つけることです。

データセット1(例):

Name        Species Age
Donald       Dog    3
Petronella   Dog    5

データセット2(例):

Name        Species Age
Donald       Dog    3
Anna         Dog    5

上記の例では、ペトロネラに関するセル値の組み合わせが最初のデータセットに固有であり、2番目のデータセットでは見つからないことを確認したいと思います。この場合、ドナルドとアンナはあまり関心がありません。

おそらく簡単なオプションは、データの範囲が2番目のデータセットに存在するかどうかに応じて、値が1または0の4番目の列を追加することです。

ある範囲を別の範囲と直接比較する方法を知っていますが、この比較を拡張してデータセット1のすべての行を含めるにはどうすればよいですか?データセット1の値の範囲がデータセット2にあるかどうかを判断するときは、行の順序を考慮しないでください。

1
Linebeck

配列数式でMATCHとCONCATENATEを使用して、Dataset1の一意の値のリストを知ることができます。 MATCHが使用されているため、比較では大文字と小文字は区別されません。

サンプルDataset1はセルB4:D7にあり、dataset2はG4:I7にあります。 E4に次の数式を入力し、数式バー内からCTRL + SHIFT + ENTERを押して配列数式を作成します。数式は中括弧で囲まれ、任意の配列数式であることを示します。

=IF(ISERROR(MATCH((B4&C4&D4),CONCATENATE($G$4:$G$7,$H$4:$H$7,$I$4:$I$7),0)),"Unique","Duplicate")

以下のスクリーンショットを参照してください。これはMATCHの基本的な使用法ですが、引数は配列内の行の連結リストです。

enter image description here

0
patkim

関数を追加するだけです

=COUNTIF(range,criteria)

その4番目の列に。


あなたの場合、範囲は次のセルを含みます

Donald
Anna

基準は、評価されるセルになります。

一致する場合は1、それ以外の場合は0が出力されます。

0
Super User User