[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『一つの表から別の表を自動的に作成したい』(ジャイ子@初心者)
表1から、関数を使って表2を自動作成したいと思っています。
=表1=
タイトル 氏名 123456 A 山田 ●●● △△ ● B 田中 ●● C 小林 ●●● ☆☆ ●● D 田中 ●● E 田中 ●● F 山田 ●●● G 小林 ●
=表2= 氏名 タイトル 123456 山田 A ●●● F ●●● 田中 B ●● D ●● E ●● 小林 C ●●● G ●
このとき、別の行にあるタイトルを表示させ、かつ一部不要な氏名もあるとき、どのようにして表を作成したらいいのか途方にくれています。
よい方法がありましたら、教えてください。
よろしくお願い致します。
レス付かないので、一応関数で考えました。(マクロでって言われたらパスですが...) よい方法か否かは、ご判断下さい。 表1がSheet1のA1:H17にあり、表2がSheet2のA1:H8に該当するとします。 尚、多少の追加を考え、計算式のSheet1のデータ範囲は、A1:H20の範囲として作っています。 まず、Sheet1に作業列を下記の様に設けます。 I J K L M N O 1 氏名 チェック 指定氏名 該当件数 タイトル 検索値 1 2 A 3 山田 1 山田 2 A 山田A 2 4 △△ A 5 B 6 田中 1 田中 3 B 田中B 3 7 C 8 小林 1 小林 2 C 小林C 4 9 ☆☆ C 10 D 11 D 田中D 12 E 13 E 田中E 14 F 15 F 山田F 16 G 17 G 小林G 18 19 20 I1:O1は、全て手入力します。 I列で重複しない氏名を表示します。必要な氏名にチェックを入れやすくするためです。I2セルに =IF(COUNTIF($B$2:B2,B2)=1,B2,"") として、I20までコピー。 J列には、I列に表示されている氏名の中から必要なものに【1】を手入力します。 K列で、Sheet2に表示する(必要な)氏名をまとめ直します。K2セルに =IF(COUNTA(I2:J2)=2,I2,"") として、K20までコピー。 L列では、必要な各氏名のA列での件数を出します。Sheet2での氏名表示位置を決める為に使用。L2セルに =IF(K2<>"",COUNTIF($B$2:$B$20,K2),"") として、L20までコピー。 M列で、A列のタイトルの空白部分を補った一覧を作り直します。私ならば最初からA列の表示をこの様にしておきます。M2セルに =IF(COUNTA(A2:H2),IF(A2<>"",A2,M1),"") として、M20までコピー。 N列は、Sheet2の各氏名の2番目以降のタイトルを表示させる為の検索範囲用です。N2セルに =IF(SUMPRODUCT(($I$2:$I$20<>"")*($I$2:$I$20=B2),$J$2:$J$20),B2&M2,"") として、N20までコピー。 O列は、Sheet2における氏名表示を変える為のものです。(O1セルは、【1】と手入力) O2セルに =IF(L2<>"",COUNT($L$2:L2)+1,"") として、O20までコピー。 ここまでが、Sheet1(表1)上で準備しておく作業列です。
Sheet2のA1:H1は、手入力しているものとします。 A2セルに =IF(ROW()-1>SUM(Sheet1!$L$2:$L$20),"",IF(COUNTIF(Sheet1!$B$1:$B$20,A1)<=COUNTIF($A$1:A1,A1),INDEX(Sheet1!$K$1:$K$20,SMALL(IF(Sheet1!$K$2:$K$20<>"",ROW(Sheet1!$K$2:$K$20)),VLOOKUP(A1,Sheet1!$I$1:$O$20,7,FALSE))),A1)) として、【Ctrl】と【Shift】と【Enter】キーを一緒に押して配列数式として確定します。 B2セルに =IF(A2="","",INDEX(Sheet1!$M$1:$M$20,SMALL(IF(A2=Sheet1!$B$1:$B$20,ROW(Sheet1!$B$1:$B$20)),COUNTIF($A$1:A1,A2)+1))) として、上記同様に配列数式として確定します。 C2セルは =IF($A2="","",SUBSTITUTE(INDEX(Sheet1!$C$2:$H$20,MATCH($A2&$B2,Sheet1!$N$2:$N$20,FALSE),MATCH(C$1,Sheet1!$C$1:$H$1,FALSE)),0,"")) として通常に確定し、これをH2までコピーします。 A2:H2セルを選択・コピーし、適当な範囲まで下方コピー。 A列には、重複する氏名も表示します。気に入らなければ、条件付き書式で文字色を白にして下さい。 関数で考えるとしたら、多分頭がボンバーです。 最終的に、どれぐらいのデータ量で実施されるか分りませんが、重たくなるかも??? また、表1の作り方次第では、ピボットテーブルも使えそうな気がしますが、考える気力なし。。。 (sin)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.