こんばんは!
参考になるかどうか判りませんが・・・
かなり強引な方法になります。
そして制約も多いです。
↓の画像で説明させていただくと
Sheet1の氏名の列は最大9列までで、行方向は100行目までのデータとしての方法です。
Sheet1に作業用の列(表)を設けています。
まず、Sheet1のK2セルに
=IF(COUNTIF($A$2:A2,A2)=1,ROW(A1),"")
としてオートフィルで下へコピーします。
(これは都道府県の重複しているものをSheet2に重複なしに表示するためです)
続いて、Sheet1のL2セルに
=IF(B2="","",MATCH($A2,Sheet2!$A$2:$A$50,0)*1000+ROW(A1)*10+COLUMN(A1))
Sheet2のA列にまだデータが表示されていない段階ではエラーになると思いますが、無視して数式を入れコピーしてみてください。
(Sheet2のA列に数式を入れオートフィルでコピーした後ならエラー表示にならないと思います。)
という数式を入れ、列方向は9列分・行方向は100行目までオートフィルでコピーします。
この数値を元にSheet2に表示させます。
Sheet2のA2セルに
=IF(COUNT(Sheet1!$K$2:$K$100)<ROW(A1),"",INDEX(Sheet1!$A$2:$A$100,SMALL(Sheet1!$K$2:$K$100,ROW(A1))))
という数式を入れオートフィルで下へコピーします。
そして、B2セルには
=IF(SUMPRODUCT((Sheet1!$L$2:$T$100>=ROW(A1)*1000)*(Sheet1!$L$2:$T$100<ROW(A2)*1000))<COLUMN(A1),"",INDEX(Sheet1!$B$2:$J$100,MOD(INT(SMALL(Sheet1!$L$2:$T$100,COLUMN(A1)+COUNTIF($B$1:$J$1:B1:J1,"?*"))/10),10),MOD(SMALL(Sheet1!$L$2:$T$100,COLUMN(A1)+COUNTIF($B$1:$J$1:B1:J1,"?*")),10)))
という長い数式を入れ、列方向と行方向へオートフィルでコピーすると
画像のような感じになります。
以上、長々と書きましたが
お役に立てば良いのですが・・・
かなり強引な方法ですので、
他に良い方法があれば読み流してくださいね。m(__)m
お礼
どうもありがとうございます。 このやり方でできました。 画像つきで解説していただきとてもわかりやすかったです。