• ベストアンサー

Excel検索等関数

Excelのデータで同じ列の中に番号が重複している値を探し出しなおかつ任意の行数に出す関数はありますか? Sheet1   |Sheet2   A  B |   A  B        1 あ 10 | 1 あ  10 2 あ 11 | 2 あ  11 3 い 21 | 3 い  21 4 う 22 | 4      ←A4:b4は、「い」が2行ないので空白        | 5 う  22        | 6      ←A6:b6も、「う」2行ないので空白 このように、縦の重複したセルを検索して、指定行数内の場合は、空白となる関数式があればお教えください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

こんにちは まず、質問に不明確な点があるので確認です。 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,"重複","ユニーク")) とか入れておけば、後でオートフィルタで"重複"、"ユニーク"を 抽出できますよ。 期待しているものと違うかも知れませんが、ご参考まで

yama_umi
質問者

お礼

とても長い入力ありがとうございます。 何となく判ったようです。 一度試してみます。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.3

質問の文章をよく読みなおし、はっきりさせること。 回答者は出るかもしれないが、それだからといって、質問分が明確であることにはならない。 >同じ列の中に番号が重複している こう書けば1シートの中のA列などの重複行を思う。例では2シート出ているが。 >番号が重複している 番号は、A列+B列で考える番号か。 >関数はありますか? この質問コーナーの質問で、1つの関数だけで解決する課題は余りない。関数の組み合わせも視野に入れて考えること。 >任意の行数に出・・ 対応する行に出ないということか。 >A4:b4は、「い」が2行ないので空白 Sheet2の中でですか。 >重複している値を探し出・・と逆ではない?

yama_umi
質問者

お礼

早速のご指導ありがとございます。 表現の方法が自己中ですいませんでした。 今後もよろしくお願いします。

yama_umi
質問者

補足

goo初心者で明確な質問の書き方が判らなくてすいませんでした。 このような補足ではどうでしょうか Sheet1に次の文字が入力されているとします。      列 A B         行 1   あ 10 2   あ 11 3   い 21 4   う 22  sheet1の状況: >A列で重複している文字(あ)と重複しない文字(い、う)が有りB列にそれぞれ数値が入力されています。 >sheet1はソート等は実施しない。 次のようにSheet2に表示させる組み合わせはどのようなものがありますか。  列 A B         行 1  あ 10 2  あ 11 3  い 21 4   5  う 22  6             Sheet2の表示内容 >sheet1のA列で重複している文字の行は、Sheet2では2行で表示させる。 >sheet1のA列で重複しない文字の行は、Sheet2では1行目は表示、2行目は空白となる。 >Sheet2への表示順は、sheet1のA列の行(「あ」の次「い」次は「う」)順に表示させる。 判りにくいかもしれませんが、よろしくお願いします。

すると、全ての回答が全文表示されます。
noname#204879
noname#204879
回答No.1

》 同じ列の中に番号が重複している値を探し出し… 「A列の中に文字列が重複している値を探し出し…」ではないのですか? 重複している文字列は必ず連続しているのですか?

すると、全ての回答が全文表示されます。

関連するQ&A