【发布时间】:2015-12-30 22:50:12
【问题描述】:
假设我有一个 Excel 工作簿 (.xlsx / .xlsm),其中包含以下两个工作表(为了举例而进行了简化):
表 1:
Student_Id: Name: Age: Sex: ...
1 Bobby 10 Male ...
2 Suzy 11 Female ...
3 Mike 10 Male ...
4 Sally 9 Female ...
....
表 2:
Class: Student_Id:
Math 1
Math 2
Math 4
English 3
English 4
....
现在,我想创建一个混合了两者的输出表,看起来类似于:
输出:
Class: Name: Age: Sex: ...
Math Bobby 10 Male ...
Math Suzy 11 Female ...
Math Sally 9 Female ...
English Mike 10 Male ...
English Sally 9 Female ...
....
现在,我知道使用 VLOOKUPs 和 INDEX、MATCH 函数很容易做到这一点,我已经做到了,但我的问题是 Excel 中是否存在更好的功能来实现这一点.
我正在考虑只使用 ADO 来查询两张表并将其输出,但我只是觉得必须有更好的方法/内置功能。
补充说明:
-
我的数据不需要实时 - 这意味着它不需要是会减慢 Excel 速度的公式 - 我知道我可以使用复制/选择性粘贴、值来做到这一点。
我知道 Power Query,但我尽量不使用需要我的用户安装加载项的东西(但工作簿中的宏可以)。
【问题讨论】:
-
如果您不需要Excel的公式,为什么不直接使用数据库,例如MS Access?否则你也可以试试Run SQL on an Excel table (sheet)。
-
我可以向您展示我将如何使用记录集读取所有数据,但我不知道这是否比使用 VLookups & Index、Match 函数或做一些技巧更好工作表的查询。
-
@agold,我完全同意,只是用户想要 Excel 中的数据,这是我给定的限制。
-
@MatthewD,非常感谢。我知道如何使用记录集来做到这一点,并且可能会这样做,这让我感到奇怪的是 Excel 没有使用 Data / ListObject 类库在某处内置它......我只是想知道是否有是一个 Excel 功能,我不知道它是否可以更智能地做到这一点。