- ベストアンサー
2つ以上の条件でエクセルで重複したデータを抽出したい
下記のようなエクセルのデーターがあったとします。 「氏名が重複していてかつ個数も重複するもの」 を抽出したいのですがどうすればよいでしょうか? いろいろ検索したところIF(SUMPRODUCT(($A$3:A3=A3)*($B$3:B3=B3))>1,"同じ人","") という風にすればよいようなのですが、この式自体がよくわかりません。IF関数の中にSUMPRODUCTを ネストするところまではわかるのですがその後の式「:A3=A3)*($B$3:B3=B3))」までがわかりません。 何を選んでこういった式になるのでしょうか??初歩的な質問で申し訳ないのですが、教えてください。 よろしくお願いします。 A列 B列 氏名 個数 加藤 1 新妻 2 加藤 1 鈴木 3 加藤 6 小島 8
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
SUMPRODUCT((A)*(B))は、(AとBには=が入った式が入りますが)、*で掛け算みたいな表現は、A条件とB条件のAND条件を考えると言うことです。日本語では「かつ」「と同時に」「両方とも」と言った意味でしょう。この質問の場合名前と個数の両方の一致したものを 重複とするので、そういう論理積を考えます。 Aはこの質問では、$A$3:A3=A3ですが,これはIFはありませんが、意味的にはIFをつけて考えたような意味で、TRUEかFALEが返る論理式です。簡単な例ではA1=”X”は、A1セルの値がXならTRUE、X以外ならFALSEが返ります。 そして2項の掛け算?(正しくは論理積をとる)で TRUE*TRUEはTRUE TRUE*FALSEはFALSE FALSE*TRUEはFALSE FALSE*FALSEはFALSE です。両者がTRUEのときのみTRUEとなります。それを質問の場合IFで聞いている。 ーー $A$3:A3=A3は$A$3は$で固定されている(固定されているからこそ)のでA3(固定)から現在行(変動)まで(A列について)A3と等しいか考えることになります。 そしてまたSUMPRODUCT関数は、各カッコの中の=の左辺に 連続した複数セルの、セル範囲が指定されます。その場合その範囲内の各セルすなわち第1セル・第2セル、第3セル・・との=比較と、その右側(次の)の()内の第1セル、第2セル・・(左の()内と同数であること)の組み合わせ全体について論理積を考えるので、組み合わせ数分だけの、TRUEかFALSEが決まり、両者(2つの()内)の論理積がTRUEになったものだけがカウントされます。 質問の例データ A列 B列 C列 氏名 個数 加藤 1 新妻 2 加藤 1 同じ人 鈴木 3 加藤 6 小島 8 ーーー C2の式は=IF(SUMPRODUCT(($A$2:A2=A2)*($B$2:B2=B2))>1, "同じ人","") C7まで式を複写する。 ==== >数式は直接入力するのでしょうか・ 勉強しているときは、ウイザードより、手打ちで入力を勧めます。 絶対番地化など余分な知識が要るので、習得ポイントを1本化して 集中しましょう。意味がわかってウイザードに慣れればウイザードを使えばよい。 == ウイザードに配列と言う表現がありますが、セル範囲と言った意味と思いますが、少し違った意味で、関数式において、配列や配列数式があり、配列数式はSUMPRODUCT関数と双対性的のようです。 似たようなやり方で 氏名 個数 加藤 1 同じ人 新妻 2 加藤 1 同じ人 鈴木 3 加藤 6 小島 8 ーー これはD2:D7を範囲指定して置いて =IF(($A$2:A2=A2:A7)*($B$2:B2=B2:B7),"同じ人","") と入れてSHIFT+CTRL+ENTERの三つのキーを同時押ししたものです。配列数式。 少し質問の例の回答と違ってます(両方の行に「同じ人」が出た)が。
お礼
ありがとうございます。ふむふむエクセルは奥が深いですね・・・難しいですががんばります
- cetus07
- ベストアンサー率46% (117/254)
こんにちは! A B 1 2 氏名 個数 3 加藤 1 4 新妻 2 5 加藤 1 6 鈴木 3 7 加藤 6 8 小島 8 というようになっているということですよね? まず、($A$3:A3=A3)の意味を考えてみます。 A3(加藤)~A3(加藤)までの中からA3(加藤)を抽出。 ($A$3:A4=A4)の意味は A3(加藤)~A4(新妻)までの中からA4(新妻)を抽出。 ($A$3:A5=A5)の意味は A3(加藤)~A5(加藤)までの中からA5(加藤)を抽出。 というように考えてみてください。 $A$3と$をつけてある理由は、ドラッグしてコピーをするためです。 (Aの前の$は不要な気もしますが・・・) ($B$3:B3=B3)についても同様に考えられますよね?
お礼
回答ありがとございます。意味は理解できたのですが、 その数式は直接入力するのでしょうか・SUMPRODUCTのウィザード画面(?)の配列1のところで$A$3:A3まではできるのですが、その後の=A3)*($B$3:B3=B3 まではどうやってやればいいんでしょうか?配列1のところにそのまま=A3って入力するのでしょうか・調べてみたのですがよくわからんくて・・・直接入力するとエラーになっていまいます。
お礼
おお!!こんなやり方があるのですね。これはわかりやすいですね。 この方法でもやってみたいと思います。ありがとうございました