这是我的模拟数据。有两个工作表:
和
A 列是 TEXTJOIN 函数。除年份外,其余部分均手动填写。我想使用第二张工作表上的 FILTER 函数获取年份。因此,该函数在 Sheet 2 的 A 列中查找 Sheet 1 的 A 列中的代码,并返回该代码可用的所有年份。在我的数据中,年份数变化很大,这就是为什么我必须竭尽全力实现此过程的自动化。
为了防止溢出错误,我已经有一个简单的宏,它从标记为“MACRO”的辅助列复制了 FILTER 函数的一个版本。这个宏运行良好,它给了我所有的日期。但是,我想自动填充剩余的信息。
示范:
当我运行第一个宏时,我得到了这个结果
我想要一个后续宏来给我这个结果:
这样我就可以简单地再次运行第一个宏并继续。由于 FILTER 函数溢出的单元格实际上不是以常规方式填充的,所以我认为这个问题比原本要复杂一些。我认为在两个宏之间需要有一个步骤,我自己自动填充其中一列,以便所有其他列都知道要填充到多远。
有人能帮我找出能给我想要的结果的后续宏吗?我尝试双击自动填充按钮,但结果仍然很乱。另请注意:每个列在自动填充时都需要准确复制,但 MACRO 列(带有 FILTER 函数)和 CODE 列(带有 TEXTJOIN 函数)除外,这两个列都需要有相对引用。在我的实际数据集中,我想要自动填充的一些列会认为存在某种模式,并会更改需要保持静态的重要数字。
最后,我还希望最后一个宏迭代最后一行的 NUMBER 列。在我的示例中,我将其向上迭代,但在实际电子表格中,我希望类似列向下迭代。
答案1
听起来,使用 PowerQuery 将代码上的第一张表与第二张表合并会更容易。
假设我从这里开始:
我想利用补充数据中的额外信息来“增强”我的数据。
首先,我通过选择数据范围内的任意单元格并使用数据>获取和转换数据>从表/范围在两个表上创建查询。
完成此操作后,我有两个疑问:
我选择第一个,然后从 Power Query 编辑器功能区中使用“主页”>“合并”>“合并查询”>“将查询合并为新查询”:
我像这样配置对话框,确保选择每个表中的代码列并将连接类型设置为“左外”(这确保我的数据始终显示在结果中,无论该特许经营是否有补充数据。
当我单击“确定”时,我看到以下内容:
我单击名为“Table3”的新列顶部的双箭头并按如下方式配置它:
这扩展了连接的数据,因此我现在拥有以下内容:
现在我可以单击“主页”>“关闭并加载”将结果放入工作簿中。
每当有新数据添加到“我的数据”或“补充数据”时,我只需右键单击查询结果并使用“刷新”。