- 締切済み
A列のデータの重複を取り除いてC列に表示。ただし、B列に存在するデータはC列に表示させない
お世話になります。 Excel2000を使っています。 A列のデータがA1,A2,...の順に 1 2 3 2 3 4 B列のデータがB1,B2,...の順に 2 4 6 8 だとします。 まず、A列のうち重複するデータは1つとみなして 1 2 3 4 とし(順番はどうでもいいです)、 さらにB列に含まれる2,4,6,8を取り除いた 1 3 をC列に表示させたいです。C列の順番はどうでもいいです。 どうすればできるでしょうか?ご教示ください。よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17070)
imogasi方式利用 既回答に比べ、式の意味が少し判りやすいかな。ただし作業列を使う。 例データ Sheet2で 第1行は(D1がは)数字がないこと) A列 B列 D列(作業列) 1 2 1 2 4 3 6 2 2 8 3 4 5 3 D2は =IF(AND(COUNTIF($A$2:A2,A2)=1,ISERROR(MATCH(A2,$B$2:$B$11,0))),MAX($D$1:D1)+1,"") 意味は (A) A列で上行から見て初出か (B) B2:B11にA列での、考えているデータが見つかるか=>見つからない場合を採って 両条件(A),(B)を満たせば、D列で上行からの連番を振っている。 D列で下方向に式を複写 ーー Sheet3に行って A1に=INDEX(Sheet2!$A$1:$A$11,MATCH(ROW(),Sheet2!$D$1:$D$11,0),1) と入れてA3まで式を複写。もっと下まで複写するなら、 =IF(ROW()>MAX(Sheet2!$D$1:$D$11),"",上記の式)
- sige1701
- ベストアンサー率28% (74/260)
数値ですので、INDEX関数は必要なかったかな C1=SMALL(IF((MATCH($A$1:$A$6,$A$1:$A$6,0)=ROW($A$1:$A$6))*(COUNTIF($B$1:$B$4,$A$1:$A$6)=0),$A$1:$A$6),ROW()) 配列数式です No3さんの回答を利用すると C1=IF(ROW(A1)>SUMPRODUCT((MATCH($A$1:$A$6,$A$1:$A$6,0)=ROW($A$1:$A$6))*(COUNTIF($B$1:$B$4,$A$1:$A$6)=0)),"",LARGE(INDEX((MATCH($A$1:$A$6,$A$1:$A$6,0)=ROW($A$1:$A$6))*(COUNTIF($B$1:$B$4,$A$1:$A$6)=0)*$A$1:$A$6,),ROW()))
- maron--5
- ベストアンサー率36% (321/877)
◆式が長くなりますが、またC列の順番が「3,1」と表示されますが ★すこし、強引ですので、参考程度に C1=IF(ROW(A1)>SUMPRODUCT((MATCH($A$1:$A$6,$A$1:$A$6,0)=ROW($A$1:$A$6))*(COUNTIF($B$1:$B$4,$A$1:$A$6)=0)),"",INDEX(A:A,LARGE(INDEX((MATCH($A$1:$A$6,$A$1:$A$6,0)=ROW($A$1:$A$6))*(COUNTIF($B$1:$B$4,$A$1:$A$6)=0)*ROW($A$1:$A$6),),ROW())))
A B C D E F G H 1 data data data 2 1 2 1 TRUE TRUE TRUE TRUE 3 2 4 3 4 3 6 5 2 8 6 3 7 4 8 9 1.セル E2 に式 =$A2<>OFFSET($B$1,COLUMN(A$1),) を入力して、此れをB列のデータ 個数分(上の例では4個)になるように右方に(セル H2 まで)ドラッグ&ペースト 2.範囲 A1:A100 を選択 3.[データ]→[フィルタ]→[フィルタオプションの設定]を実行 4.“指定した範囲”に目玉入れ 5.[リスト範囲]ボックス内が $A$1:$A$100 と表示されていることを確認 6.[検索条件範囲]ボックス内にマウスカーソルを置いて、範囲 E1:H2 を撫で撫で (→表示は $E$1:$H$2 となる) 7.[抽出範囲]ボックス内にマウスカーソルを置いて、セル C1 をチョーン (→表示は $C$1 となる) 最後に、“重複するレコードは無視する”にチェックを入れて[OK]をクリック
- sige1701
- ベストアンサー率28% (74/260)
C1=INDEX(A:A,SMALL(IF((MATCH($A$1:$A$6,$A$1:$A$6,0)=ROW($A$1:$A$6))*(COUNTIF($B$1:$B$4,$A$1:$A$6)=0),ROW($A$1:$A$6)),ROW())) 配列数式です