【发布时间】:2018-01-06 00:39:31
【问题描述】:
问题
我正在尝试使用 Excel 做一些可能非常简单的事情,但我找不到如何去做。
我有几个工作表,每个工作表都包含一个表格。举个例子,这是我的两个工作表:
第一个工作表。请注意,线条是绿色的。 一些数据。没有's',对不起:-)
我想:
- 将这些表合并到另一个工作表中
- 保留样式格式(线条颜色等)
- 当我更新一个表时,合并的表也应该更新(可能是一个宏)
这是一个可能的输出:
请注意,相同的标题已正确合并。
我可以用 Excel 做到这一点吗?我知道我可以进行查询 (UNION ALL),但这样做不会保留样式格式。
编辑 1
我尝试使用 microsoft 查询来构建表。这是我的查询:
SELECT * FROM `C:\Users\cflodrops\Downloads\comptes.xlsx`.`Purchases$` `Purchases$`
UNION ALL
SELECT * FROM `C:\Users\cflodrops\Downloads\comptes.xlsx`.`Sales$` `Sales$`
UNION ALL
SELECT * FROM `C:\Users\cflodrops\Downloads\comptes.xlsx`.`Trades$` `Trades$`
UNION ALL
SELECT * FROM `C:\Users\cflodrops\Downloads\comptes.xlsx`.`Transfers$` `Transfers$`
这个请求效果很好,结果如下:
但我仍然有问题:
- 样式格式不正确(背景颜色和数字格式)
- 数组之间的数据不同步。这不是问题,只要我点击一个按钮,我就可以创建一个宏来执行请求。
【问题讨论】:
-
我不确定这是合并还是附加?您有不同的列,因此不确定 UNION ALL 在不向每个表中添加相同列名的情况下如何工作。我认为如果这是一个追加操作并且有匹配的标题和行数,你可以有一个帮助列来标识原始行来自哪个表,然后使用应用原始源格式的 IF 语句将条件格式应用于合并表取决于辅助列值?
-
如果是合并,我想您可能会考虑使用标题来识别列来自哪个表,并使用它来应用正确的格式。然后我不确定的是如何在没有 VBA 的情况下做到这一点。此外,还需要确定 JOIN 类型。不确定,是否可以覆盖 powerquery 表合并的条件格式。
-
你的问题太宽泛了。您需要澄清表之间的关系,更重要的是一些代码可以展示您自己解决问题所付出的努力。您应该先担心数据,然后再处理格式。
-
你为什么不录制一个宏在Total之后将“Destination”列添加到Worksheet1中,然后在Amount之后将“Price”列添加到Worksheet2中。然后继续宏,将源格式从 Worksheet1 和 Worksheet2 复制并粘贴到 NEW Worksheet3。并且每次运行第一个宏之前还记录一个宏来清除Worksheet3中的所有数据。还有另一个宏,用于在最后的第一个宏之后(在填充工作表 3 之后)从 Worksheet1 和 2 中删除“Destination”和“Price”列。
-
一方面,如果你尝试了一些东西会很好,这样其他人可以跟进。另一方面,合并操作似乎定义不明确。您应该为行/列中重合/不重合值的各种可能组合指定要获得的结果。