【发布时间】:2017-07-12 12:23:30
【问题描述】:
我有一个 Excel 2010 电子表格,它从 Access 数据库收集数据,我需要从中获取数据的表之一是这样设置的:
|UniqueID | PaymentID | ClaimID |
1 | 1234 | 5556 |
2 | 1234 | 5557 |
3 | 1235 | 5558 |
4 | 1236 | 5559 |
5 | 1236 | 5560 |
我需要的是根据 PaymentID 将 ClaimID 连接到同一行,因此它应该如下所示:
|UniqueID | PaymentID | ClaimID |
| 1 | 1234 | 5556, 5557 |
| 2 | 1235 | 5558
| 3 | 1236 | 5559, 5560 |
我已经尝试过使用 VBA 代码进行此操作,但它的处理时间太长了。我已经尝试过 PowerQuery,它也可以工作,但其他业务没有安装它,所以从长远来看不会工作。我最后的想法是在连接选项中使用 SQL 来操作数据,但我不确定如何。我搜索并尝试了以下功能:ConcatADO、Concatlist、Stuff 和 Group_Concat,但没有任何运气(也许我用错了?)。
其他可能有用的信息:
在这个特定的表上,大约有 40,000 行数据来自数据库。当我使用 Excel 2010 时,一些用户将使用 Excel 2007、2010、2013 和 2016。
有没有一种方法可以使用 SQL 或我可能没有想到的其他方法来实现基于 PaymentID 的 ClaimsID 行的连接?
提前致谢。
【问题讨论】:
-
不熟悉access数据库,但是在sql server中,你可以使用
FOR XML PATH和STUFF函数,链接可能会给你一些想法:stackoverflow.com/questions/31211506/… -
嗨@LONG 感谢您的链接 - 我继续查看那里可用的内容,但到目前为止没有任何效果。
-
@Gustav 这不是您发布的问题的重复,因为我希望仅在 Excel 中进行连接,但由允许数据来自 Access 的 SQL 完成脱颖而出。不幸的是,我也不能使用 VBA,因为处理时间太长。
标签: sql excel excel-2010 ms-access-2007