プロが教える店舗&オフィスのセキュリティ対策術

100名程度の社員名簿があります。エクセルで作成されており生年月日も分かります。

そのデータをもとに年齢構成ピラミッドを作りたいのですが、グラフではなく表形式で作成したいのです。縦方向(横でも可)に上から昭和20年度から平成5年度までの軸があり、その左右にその年に生まれた人の名前が入ります。男女別に左右に分け、同じ年で早く生まれた順にら内側から外へ名前が入っていくような表です。

分かりにくい説明ですが、よろしく手ほどきお願いします。

A 回答 (1件)

社員名簿というシート名にリストを作成します。


A列:氏名
B列:性別(男or女)
C列:生年月日
D列:年度
年度は、1945/4/2~1946/4/1生まれを1945年度とする為に、
D2=YEAR(C2)-IF(C2<DATE(YEAR(C2),4,2),1,0)
という計算式で西暦で何年度生まれかを出しておきます。


別のシートに表を作成します。
ここでは、同年度の同性を最大10名としていますので、それ以上になる場合は11名以降が表示されません。

A1~V1セルには適宜項目名などを入れておきます。
A~J列が男性、M~V列が女性、K~L列には年度が入ります。

A2=IF(LARGE(INDEX(ROW(社員名簿!$A$1:$A$200)*(社員名簿!$B$1:$B$200="男")*(社員名簿!$D$1:$D$200=$K2),),11-COLUMN(A2))=0,"",INDEX(社員名簿!$A$1:$A$200,LARGE(INDEX(ROW(社員名簿!$A$1:$A$200)*(社員名簿!$B$1:$B$200="男")*(社員名簿!$D$1:$D$200=$K2),),11-COLUMN(A2))))
A2セルをB2~J2セルにコピー

M2=IF(LARGE(INDEX(ROW(社員名簿!$A$1:$A$200)*(社員名簿!$B$1:$B$200="女")*(社員名簿!$D$1:$D$200=$K2),),COLUMN(M2)-12)=0,"",INDEX(社員名簿!$A$1:$A$200,LARGE(INDEX(ROW(社員名簿!$A$1:$A$200)*(社員名簿!$B$1:$B$200="女")*(社員名簿!$D$1:$D$200=$K2),),COLUMN(M2)-12)))
M2セルをN2~V2セルにコピー

K2=ROW()+1943
L2=TEXT(DATE(K2,1,1),"ggge年度")

2行目を50行目までコピーすれば表ができると思います。

ただ、この方法だと社員名簿のリストを生年月日で降順に並び替えておかないと、
内側から早く生まれた順になりません。
並び替えをしないでもできる方法があると思いますが、
もっと複雑になってしまうので、こういった方法にしてみました。
    • good
    • 0
この回答へのお礼

完璧です。ありがとうございました。
手作業をしなくてすみました。

お礼日時:2009/06/10 23:07

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