let
MltExp = (Param as binary) => let
Src = Excel.Workbook(Param, null, true),
Sht = Src{0}[Data],
Prm = Table.PromoteHeaders(Sht, [PromoteAllScalars=true]),
Unp = Table.UnpivotOtherColumns(Prm, List.FirstN(Table.ColumnNames(Prm),2), "属性", "値")
in
Unp,
ソース = Folder.Files("E:\office\Excel\ExcelVBA\11"),
Flt = Table.SelectRows(ソース, each [Attributes]?[Hidden]? <> true),
Add = Table.AddColumn(Flt, "カスタム", each MltExp([Content])),
Del = Table.SelectColumns(Add, {"カスタム"}),
Exp = Table.ExpandTableColumn(Del, "カスタム", Table.ColumnNames(Del[カスタム]{0})),
Piv = Table.Pivot(Exp, List.Distinct(Exp[属性]), "属性", "値")
in
Piv
もしも2つのブックの列名がすべて同じなら、クロス表のピボット解除は不要。
A B C D E
1 クラス 名前 国語 英語 社会
2 1 あ 5 8
3 1 い 2
4 1 う 6
5 1 え 7
6 1 お 3 4
A B C D E
1 クラス 名前 国語 英語 社会
2 2 か 9 10 7
3 2 き 4 2
4 2 く 3
5 2 け 0 5
↓ 直接統合
A B C D E
1 クラス 名前 国語 英語 社会
2 1 あ 5 8
3 1 い 2
4 1 う 6
5 1 え 7
6 1 お 3 4
7 2 か 9 10 7
8 2 き 4 2
9 2 く 3
10 2 け 0 5
let
MltExp = (Param as binary) => let
Src = Excel.Workbook(Param, null, true),
Sht = Src{0}[Data],
Prm = Table.PromoteHeaders(Sht, [PromoteAllScalars=true])
in
Prm,
ソース = Folder.Files("E:\office\Excel\ExcelVBA\11"),
Flt = Table.SelectRows(ソース, each [Attributes]?[Hidden]? <> true),
Add = Table.AddColumn(Flt, "カスタム", each MltExp([Content])),
Del = Table.SelectColumns(Add, {"カスタム"}),
Exp = Table.ExpandTableColumn(Del, "カスタム", Table.ColumnNames(Del[カスタム]{0}))
in
Exp