質問: excelで表を作り変える方法を教えてください 画像のように左側のようになっている表を、 右側のように作り変えたいのですが。。。 ・タイトルが表上にしか入っていない ・同一列に同じ名前が複数入っている のでmatchも使えずこまっています。 ちなみに表だけで100個以上あるので、 表の横にタイトルを入力していくだけでも一苦労です。。。 何かいい方法をご存じの方、いらっしゃいませんでしょうか?
回答: マクロはいけますか^^; ざっくり適当ですいませんが sub test() dim i as long dim tagrow as long, tagcol as long, tagname as range dim lastrow as long range("h1").select lastrow = cells(rows.count, 2).end(xlup).row range(columns("h"), selection.end(xltoright)).delete range("h2").value = "名前" tagcol = 8 for i = 2 to lastrow if range("b" & i).value <> "名前" then if range("b" & i).value like "■*" then tagcol = tagcol + 1 cells(2, tagcol).value = range("b" & i).value else set tagname = columns("h").find(what:=range("b" & i).value, lookat:=xlwhole) if tagname is nothing then with cells(rows.count, 8).end(xlup).offset(1, 0) .value = range("b" & i).value tagrow = .row end with else tagrow = tagname.row end if cells(tagrow, tagcol).value = range("d" & i).value end if end if next end sub 質問文で添付された図のように、 ・各表が縦にズラッと並んでいること ・「名前」はb列に有ること ・各表のタイトルの頭に「■」がついていること、 ・「ポイント?%?」がd列に有ること ・同一表の中に「名前」の重複が無いこと が条件で、h列以降(右)に集計表が出来ます。 かなりザックリで、精査も洗練もしておりませんので、 お望みどおりにはいかないかもしれませんが^^;