如何用Excel动态数组函数/Power Query按lookup列合并并展开两表
Excel双表合并展开需求(规避VBA,优先动态数组/Power Query)
需求概述
我有两个带Lookup列的Excel表格,需要合并为新表并展开所有Lookup对应的数值。若用Python实现,逻辑伪代码如下:
for unique day in Tbl1 row1 = day row2 = "" for event in Tbl1 day v = event's lookup value in Tbl2 row1 += event + (len(v) - 1) blank columns row2 += v print(row1) print(row2)
我希望避免使用VBA,优先采用Excel新的动态数组函数,必要时可使用Power Query,但目前用Power Query无法实现所需的重复展开效果。
数据特点
- Tbl1:每日事件数量、事件值、Lookup值均可变;事件每日唯一,顺序必须保留;最多包含3天的数据。
- Tbl2:基本静态,可能包含Tbl1未用到的条目;每行最少3个、最多8个值。
期望输出(Tbl3)
每日对应两行:第一行放置事件名(尽量不重复),第二行展开Lookup对应的所有值,每日列数可不同。具体示例如下:
Tbl1(源表1)
| day | event | lookup |
|---|---|---|
| 1 | Re | eoni2 |
| 1 | Gr | eoni1 |
| 1 | We | eoni1 |
| 2 | Tn | eoneonii2 |
| 2 | Ga | eon1 |
| 2 | Gr | eoni1 |
Tbl2(源表2)
| lookup | c1 | c2 | c3 | c4 | c5 | c6 | c7 | c8 |
|---|---|---|---|---|---|---|---|---|
| eeononii | E | E | O | N | O | N | I | I |
| eon1 | E | O | N | |||||
| eoneonii2 | E | O | N | E | O | N | I | I |
| eoni1 | E | O | N | I | ||||
| eoni2 | E | E | O | O | N | N | I | I |
Tbl3(期望输出表)
| day | e1 | e2 | e3 | e4 | e5 | e6 | e7 | e8 | e9 | e10 | e11 | e12 | e13 | e14 | e15 | e16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Re | Gr | We | |||||||||||||
| E | E | O | O | N | N | I | I | E | O | N | I | E | O | N | I | |
| 2 | Tn | Ga | Gr | |||||||||||||
| E | O | N | E | O | N | I | I | E | O | N | E | O | N | I |
内容的提问来源于stack exchange,提问作者Torfey
相关产品推荐
相关产品推荐

