こんにちは
まず、質問に不明確な点があるので確認です。
Sheet1が検索テーブルとして、Sheet2の1行目から順番にSheet1の1行目
から順番に表示し、A列の文字が連続で現れなかった場合には次の行を
空白にする。 ということでしょうか?
また、A列の文字列は昇順か降順に並んでいるのでしょうか?
A列が昇順に並んでいて、A列に一回しか現れない文字の次の行を空白
にするという前提で話します。
まず、先頭行は無条件に
A列 =Sheet1!A1
B列 =Sheet1!B1
C列 1
と入力します。
2行目に
A列 =IF(C2=1,INDEX(Sheet1!$A:$A,SUM($C$1:$C2),1),"")
B列 =IF(C2=1,INDEX(Sheet1!$B:$B,SUM($C$1:$C2),1),"")
C列 =IF(OR($A1="",COUNTIF(Sheet1!$A:$A,$A1)>1),1,0)
と入力します。
3行目以降にA2からC2をコピーして必要な行数分貼り付けます。
とりあえず、ご希望の結果になったでしょうか?
C列は見た目が気になるようであれば隠してしまいましょう。
解説
1行目は無条件に表示でいいですよね。
2行目以降は、
まずC列で表示するか否かをチェックします。 表示なら1 非表示なら0
次に、A列とB列ではC列で表示フラグ1の場合に表示します。
0の場合は空白にします。
<C列の内容>
A列の一つ前の行の値が複数回テーブルに出現するかを調べています。
COUNTIF(Sheet1!$A:$A,$A1)>1
‥ $A1がSheet1!$A:$Aの範囲に出現する回数が1回よりも大きいか
複数、要するに2以上であれば、連続していることになるので、表示
するというフラグ1をたてます。 出現回数が1なら非表示の0をたてます。
このフラグは次の検索位置を調べるためにも使用します。
また、A列の一つ前の行が空白である場合は表示します。
=IF(OR($A1="",COUNTIF(Sheet1!$A:$A,$A1)>1),1,0)
<A列とB列の内容>
C列の結果を受けて、非表示(フラグ0)の場合は空白にします。
=IF(C2=1,表示,"")
表示は、INDEX(範囲,行番号,列番号)を使用して表示します。
範囲はA列は、Sheet1!$A:$A、B列はSheet1!$B:$Bです。
行番号は、テーブルを順番に表示していくので、検索位置を調べる
必要があります。 この検索位置をフラグから求めます。
C列の前の行までのフラグが表示した件数になりますので、その件数
と自分自身の表示回数を足せば位置が求められます。
↓SUM($C$1:$C2)先頭から現在の行までの件数
=IF(C2=1,INDEX(範囲,SUM($C$1:$C2),1),"")
列番号は、範囲を1列しか指定していないので1です。
ちなみに、D列あたりに
=IF(A1="","",IF(COUNTIF(Sheet1!A:A,A1)>1,"重複","ユニーク"))
とか入れておけば、後でオートフィルタで"重複"、"ユニーク"を
抽出できますよ。
期待しているものと違うかも知れませんが、ご参考まで
お礼
とても長い入力ありがとうございます。 何となく判ったようです。 一度試してみます。