プロが教えるわが家の防犯対策術!

Excelについて教えて下さい。
3000人の氏名が入ったデータがあります。
その3000人がそれぞれ様々な資格持っていて、各人に対して資格名称が縦に入っています。
資格一つにつき一行使用しているので、同じ氏名がいくつも出てきてしまうのです。
これを、氏名は一つにして、資格名称と取得年月日を横一列に並べたいというわけです。


<例>
氏名  資格名     取得年
Aさん 秘書検定1級  2000年
Aさん 1級建築士   2005年
Bさん 社労士     2001年 
Bさん 衛生管理士   1999年
Bさん 公認会計士   2000年
Cさん 普通運転免許 2005年



氏名  資格名     取得年   資格名    取得年
Aさん 秘書検定1級  2000年  1級建築士  2005年
Bさん 社労士      2001年  衛生管理士  1999年
Cさん 普通運転免許 2005年
  

便利な関数などないでしょうか?
どなたか分かる方、ご返信お願いします!

A 回答 (1件)

本当はマクロで行うべきだと思いますが、関数とオートフィルタで実現します。

ただし質問の例にあるように氏名でソートされていることを条件とします。(されていない場合は先にソートして下さい)

D2(二つめの資格名欄)に
 =IF($A2=OFFSET($A2,INT((COLUMN()-2)/2),0),OFFSET($B2,INT((COLUMN()-2)/2),0),"")
E2(二つめの資格取得年欄)に
 =IF($A2=OFFSET($A2,INT((COLUMN()-2)/2),0),OFFSET($C2,INT((COLUMN()-2)/2),0),"")
の式をそれぞれペーストします。

D2:E2を下方向にずっとコピーします。更にD:E列をコピーし、F:G、H:I…列に貼りつけます。

すると各人が出現する最初の行には全資格が横に並びますので、あとは「データ」→「フィルタ」→「フィルタオプション」で「重複データを無視する」にチェックすると希望のリストになると思います。

あとはコピーして「値」として別シートに貼りつけるなりどうぞ
    • good
    • 0
この回答へのお礼

ありがとうございました!
とても役に立ちました。
また機会があればよろしくお願い致します。

お礼日時:2006/08/17 13:07

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