- ベストアンサー
【Excel】複数の条件を設定した重複セルの抽出
【Excel】複数の条件を設定した重複セルの抽出 例えば、A列にA社からD社のデータが行に複数個ずつ並び、B列にそのクライアントに問い合わせた日付が入力されている場合。 A社に問い合わせた日付は1/1、1/3、1/5。B社に問い合わせた日付が1/1、1/1、1/3、1/5、1/5となっているデータで、 B社の3~7行目の日付で重複している1/1と1/5の行のみを抽出する方法ってありますか? 作業自体はB社だけでなく、複数あるので、関数か何かで出来る方法があれば教えていただきたいです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
A1セルには会社名、B1セルには日付の文字があり、データが2行目から入力されているとします。 初めに表を選択してから「並べ替えとフィルタ」で「ユーザー設定の並べ替え」でA列を最重点に、B列を次の重点にして並べ替えをします。この状態がご質問の初めに当たる状態でしょう。 そこで作業列としてC1セルには重複行とでも入力し、C2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(OR(A2="",B2=""),"",IF(OR(AND(A2=A3,B2=B3),AND(A2=A1,B2=B1)),1,"")) その結果、重複の行には1が表示されますのでC列を重点に「フィルタ」の操作で1を選択すればよいでしょう。
その他の回答 (3)
- MackyNo1
- ベストアンサー率53% (1521/2850)
目的がA列とB列のデータが重複するものを除外したい(あるいはチェックしたい)ということなら、フィルタオプションの設定(エクセル2007はフィルタと並べ替えの「詳細設定」)を利用するのが簡単です。 A列とB列を選択して「データ」「フィルタ」「フィルタオプションの設定」で「重複するデータは無視する」にチェックを入れれば、重複のないリストが作成できます(新規シートなどにコピー貼り付け)。 重複したデータを区別したいなら、フィルタした状態で。補助列にたとえば「1」と入力しオートフィルして、「フィルタ」から「すべて表示」すれば重複データはマークがついていません。 どうしても関数でリアルタイムに表示させたいなら、きわめて複雑な配列数式を使うことになりますが、重複するデータを表示することもできます。
お礼
早速のご回答ありがとうございます! こちらも私の説明が至らなかったせいで申し訳ございませんでした。 A列とB列に表示されているものはA列に社名、B列に日付なのでA列とB列で重複するものはありません。 A列がαの場合の重複するB列のβの行を抽出しようと思いました。 でも、ご親切に迅速なご回答ありがとうございました!
- nine999
- ベストアンサー率44% (512/1140)
match関数があります。 C1 =match(A1,$B$1:$B$10,0) とすると、A1の値をB1からB10のセルで探して、何番目に見つけたか数字で表示します。 ただし、値がない場合は#N/A(答えが存在しない)と表示されます。
お礼
早速のご回答ありがとうございます! 質問の内容が分かり難くて誤解を与えてしまいもうしわけございませんでした。 今回やりたかったのは、A列とB列に表示されているものはそれぞれ社名と日付なので、A列とB列で重複しているものはないのです。。。 でも、match関数ですか! A列にあるデータをB列のどこにあるか表示する関数もあるんですね、これは知らなかったので勉強になりました。 ありがとうございました!
- web2525
- ベストアンサー率42% (1219/2850)
抽出動作の意味合いによって計算式、操作が大きく異なります 1.重複したデーターを別領域に抜き出す 2.重複したデーターであることをチェックする 2-1.重複データーすべてをチェック 2-2.重複データーの内最初に出現したデーター以外をチェック 2-2の場合は割と簡単に可能 2行目からデーターが入っているとしてC2セルに =IF(SUMPRODUCT(($A$2:A2=A3)*($B$2:B2=B3)),"レ","") と入力、そのまま下方向にコピーすれば重複行に”レ”と表示されます そのほかの動作を希望するのであれば抽出したい方法を補足してください
お礼
早速のご回答ありがとうございます! なるほど! こちらの関数も初めて知りました! これも一発で抽出&削除ができますね。 こちらの関数は、今回の事例だけでなく、これからも幅広く役立てることができそうです。 非常に助かりました。 ベストアンサーが1つしか付けられないのが残念です。。。
お礼
さっそくのご回答ありがとうございます。 私の補足が説明不足だったようで申し訳ございません。 A列とB列で重複するものを抽出するのではないのです。 A列には○○商事や△△工業などの社名が入り、B列に1/1などの日付が入ります。 A列 B列 ○○商事 1/1 ○○商事 1/2 ○○商事 1/1 △△工業 2/5 △△工業 2/6 △△工業 2/6 上記の場合で、○○商事の1/1と△△工業の2/6が重複しているので、これらを吸い出して重複している分を削除したかったんです。 でも、match関数は使ったことがなかったので、今後の参考にしたいと思います。 ありがとうございました!
補足
質問者です。 KURUMITOさん お礼の欄を他の回答者さんと間違えてしまい、もうしわけございませんでしたorz KURUMITOさんが提示してくださったやり方で見事できました! 本当にありがとうございました!