痔になりやすい生活習慣とは?

お世話になります。
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列の順番はどうでもいいです。

どうすればできるでしょうか?ご教示ください。よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (5件)

imogasi方式利用


既回答に比べ、式の意味が少し判りやすいかな。ただし作業列を使う。
例データ
Sheet2で
第1行は(D1がは)数字がないこと)
A列   B列      D列(作業列)
121
24
362
28
3
4
53
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),"",上記の式)
    • good
    • 0

数値ですので、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()))
    • good
    • 0

◆式が長くなりますが、また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())))
    • good
    • 0

  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]をクリック
    • good
    • 0

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()))


配列数式です
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード


人気Q&Aランキング