2 通过导入链接的 Google 表格工作簿 - 如何在一个工作簿中添加新行而不影响其他工作簿



我有 2 个谷歌工作簿。 一个是费率表,另一个是带有定价的供应商列表。

我有供应商列表,其中的定价工作簿通过importrage命令链接到费率表工作簿。 这很好用,一切都会按原样更新,直到您添加新行或删除费率表工作簿中的行。 此时,供应商工作簿不会更新引用,而只是仍然指向原来的同一行,现在显示不正确的数据。

如何动态地让供应商列表工作簿注意到费率表工作簿中添加或删除行并更新导入范围公式?

这能做到吗?

任何帮助将不胜感激。

编辑:我准备了2个示例工作簿。 它们是测试表 1 - 速率和测试表 2 通道

我在第一张纸上有我们所有的费率。 在第二个中,我们将有供应商通道。 此表由多个选项卡组成,所有选项卡都带有链接到费率表中 1 行的单个通道。

在车道表中,我通过单元格 A8 中的导入范围将两者链接在一起。 现在这可以正常工作并正确链接,直到您在车道链接到的费率表上方插入新行,然后它不会更新但显示新行信息是什么。

当费率表中插入新行时,有没有办法让车道表动态更新到下一行?

两张纸链接如下:

车道

解决方案 1 - 如果您只需要检查一个条件

为了达到预期的结果,您必须为每个费率提供一个类似 ID 的东西。为了这个答案(基于您的示例表(,我假设这可能是一个起源城市。在测试表 2 中,我添加了新表 - 工作表测试,其中:

第一步

我正在寻找期望城市在费率表中居住的行号(例如 - 它的麦克莱伦市(。代码很简单:

MATCH(A2,IMPORTRANGE("https://docs.google.com/spreadsheets/d/1JD45y-0-37Kh2KsHnRAMuB0quPtMVuLKuT1qjnNcm1Q/edit","Rates!B:B"),0).

这给了我 -> 10

第二步

我使用此结果动态生成最终范围 - "费率!A10:X10"。A8 单元格中的最终结果是(为了更清楚,我将工作表的地址更改为 -othersheeturl- :

=IMPORTRANGE(
"-othersheeturl-",
"Rates!A"&
MATCH(A2,IMPORTRANGE(-othersheeturl-","Rates!B:B"),0)
&":X"&
MATCH(A2,IMPORTRANGE("-othersheeturl-","Rates!B:B"),0)
)

工作示例

警告

我看到在您的原始工作表中,您使用了"从费率表中获取"原产地城市,因此我在 A2 中删除了此依赖项以使其成为 ID。我希望这能解决你的问题。

解决方案 2 - 如果您需要检查许多条件

方法相同,但工具不同。主要目标是找到符合条件的行号 - "从城市"和"到城市"。然后,此行号将用于连接所需范围。

第一步 - 一些清洁

为了更好地管理复杂的公式,最好将它们分成更小的部分 - 就像在"普通"编程中一样。因此,我们有:

从城市在A5

New Albany

前往B5城市

Calgary

B1中的费率表(外部(网址:

1JD45y-0-37Kh2KsHnRAMuB0quPtMVuLKuT1qjnNcm1Q

您不必输入整个URL,只需要这部分

计算我们在B2查找的行号的公式

=QUERY(
{IMPORTRANGE(B1,"A1:B"),
ArrayFormula(row(INDIRECT("A1:A"&ROWS(IMPORTRANGE(B1,"A1:B")))))},
"select Col3 where Col1='"&B5&"' and Col2='"&A5&"'
limit 1")

上面的代码:

  1. 从费率表(外部(构建数组 - 列 A1:B 和表示行号的虚拟索引
  2. 然后,仅显示列 nr 3(索引(,其中 Col1 与我们的"到城市"匹配,Col2 匹配"从城市">
  3. 最后限制只有一个结果(如果有多个马切(

B3中的欲望范围

="Rates!A"&B2&":X"&B2

A11中呈现来自外部工作表的愿望数据的最终公式

=IMPORTRANGE(B1,B3)

工作示例

结语

  1. 您可以隐藏第 1-3 行,也可以将上述所有公式打包成一个。这取决于你。我更喜欢第一种方法。
  2. 此解决方案为您提供任意数量的条件的自由

更多信息会有所帮助。

几个想法:

  1. 使用命名区域而不是静态引用。例如,如果您在费率表中创建引用 A2 的名为 MY_DATA 的命名范围!C600,您可以在供应商表的导入范围中包含"MY_DATA"。 请注意,每次添加行时,您仍需要更新MY_DATA。
  2. 如果您要导入整个工作表,也许省略结束行会起作用(例如 A2!C 而不是 A2!C600( - 请注意,这意味着您需要在供应商表中使用过滤器或查询来消除空白行。

相关内容

最新更新