• ベストアンサー

年齢構成の表を作りたい

100名程度の社員名簿があります。エクセルで作成されており生年月日も分かります。 そのデータをもとに年齢構成ピラミッドを作りたいのですが、グラフではなく表形式で作成したいのです。縦方向(横でも可)に上から昭和20年度から平成5年度までの軸があり、その左右にその年に生まれた人の名前が入ります。男女別に左右に分け、同じ年で早く生まれた順にら内側から外へ名前が入っていくような表です。 分かりにくい説明ですが、よろしく手ほどきお願いします。

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

  • ベストアンサー
回答No.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行目までコピーすれば表ができると思います。 ただ、この方法だと社員名簿のリストを生年月日で降順に並び替えておかないと、 内側から早く生まれた順になりません。 並び替えをしないでもできる方法があると思いますが、 もっと複雑になってしまうので、こういった方法にしてみました。

11b87trip
質問者

お礼

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

関連するQ&A