【お題】王手、そして

シート1

  A     B   
1 番号   担当者
2 1000 加藤
3 2000 山田
4 6000 佐藤
5 1000 佐藤
6 3000 吉田
7 2000 鈴木
8 1000 佐藤
9 6000 佐藤

シート1のデータを元にシート2に下記のようになるようにしたいです。

シート2

A B   C
1 1000 加藤 佐藤
2 2000 山田  鈴木
3 3000 吉田
4 4000
5 5000
6 6000 佐藤


とピックアップを関数を使ってする方法を教えて下さい。よろしくお願い致します。

A 回答 (4件)

こんにちは!



VBAなら一気にできそうですが、関数での方法をご希望だというコトですので
一例です。

↓の画像のようにSheet1に作業用の列を設けます。
作業列C2セルに
=IF(COUNTIFS(A$2:A2,A2,B$2:B2,B2)=1,1,"")

という数式を入れこれ以上データはない!という位まで下へコピーしておきます。

Sheet2のB2セルに
=IFERROR(INDEX(Sheet1!$B$1:$B$1000,SMALL(IF((Sheet1!$A$1:$A$1000=$A2)*(Sheet1!$C$1:$C$1000=1),ROW($A$1:$A$1000)),COLUMN(A1))),"")

配列数式なので、Ctrl+Shift+Enterで確定!
B2セルのフィルハンドルで列・行方向にコピーすると
画像のような感じになります。

※ 作業列が目障りであれば遠く離れた列にするか
非表示にしておいてください。m(_ _)m
「関数を使って担当者をピックアップさせる方」の回答画像2
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
出来ました!!ありがとうございます(ToT)
とても助かります。

お礼日時:2017/05/09 12:28

添付図参照


Sheet1 の左端図において、
1.列A、Bを選択
2.[データ]→[データツール <重複の削除>]→[OK]→[OK]

Sheet2 において、
次式を入力したセル B2 を下方および右方にズズーッとオートフィルするだけ
=IFERROR(INDEX(Sheet1!$B:$B,SMALL(IF(Sheet1!$A$2:$A$7=$A2,ROW($A$2:$A$7),""),COLUMN(A1))),"")
【お断り】上式は必ず配列数式として入力のこと
「関数を使って担当者をピックアップさせる方」の回答画像4
    • good
    • 0
この回答へのお礼

ありがとうございます。
補足ですが、
データがどんどん増え更新されていくため、
常に番号に対して何人の担当者がいるのか
最新情報を知りたかったんです。なので重複削除を全番号(かなりの数あります)都度やるのが難しいです。

お礼日時:2017/05/09 12:12

やりたいことは理解できるのですが、


それって「別のシートに表示用の表を作成しないとあとあと【すごーく】面倒になる」典型的な例ですよね。

「番号」で並べ替えたり、オートフィルタで絞り込み表示させるという使い方はできないのですか?
「関数を使って担当者をピックアップさせる方」の回答画像3
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
担当者が各番号に何人いるかを、どんどん増えていく元データから最新の担当者と担当者の数を常に関数で検索したいと思っております。説明が足りなくて申し訳ありません。各番号に担当者の数と担当者名を把握して、経費 割る人数 で各担当者に給料の配賦をおこないたいのです。

お礼日時:2017/05/09 12:26

原則 vlookup でできると思いますが、難しい点は、


・同じ番号でも複数人いる。
・同じ番号で2回目に出てきた同じ担当者は無視する。
という条件があることです。

ということを考慮し、わたしなら、以下のようにすると思います。
※ただし、シート2は、1行目に1番目、2番目、というように、B1に「1」、C1に「2」と
 入れさせていただきます。

<シート1>
C2=A2&B2
D2=COUNTIF(C$2:C2,C2)
E2=IF(D2=1,A2,"")
F2=COUNTIF(E$2:E2,E2)
G2=E2&"_"&F2
H2=B2
として、3行目以下はそれぞれコピー

<シート2>
※上で記載したように、B1に「1」、C1に「2」と記入します。
 (3個以上あるなら、同じように続けていく)
B2=IF(ISERROR(VLOOKUP($A2&"_"&B$1,シート1!$G:$H,2,FALSE)),"",VLOOKUP($A2&"_"&B$1,シート1!$G:$H,2,FALSE))
として、3行目以下、C列も含めコピー

これでできると思います。
どうしても1行目に1や2を入れたくないなら、
B2の式の中の「&"_"&B$1」を「&"_1"」としますが、そうするとC列はコピーできず、同じような箇所を「&"_2"」としなければ
いけません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。まずは、カウントをするのですね。やってみたら出来ました。
ありがとうございます。助かりました。
列を非表示にして使ってみます。

お礼日時:2017/05/09 12:29

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


おすすめ情報