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

时间:2018-08-22 22:53:05

标签: google-sheets

我有2个Google工作簿。一个是价目表,另一个是带有定价的供应商列表。

我有带有定价工作簿的供应商列表,该工作簿通过importrage命令链接到价目表工作簿。这很好用,并且一切都会按需更新,直到您在价目表工作簿中添加新行或删除行。此时,供应商工作簿不会更新引用,而仍指向原始行,现在显示错误数据。

如何动态地使供应商列表工作簿注意到价目表工作簿中行的添加或删除并更新importrange公式?

可以做到吗?

非常感谢您的帮助。

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

我在第一张纸上列出了所有房价。在第二个中,我们将有供应商通道。此工作表包含“多重”选项卡,所有这些选项卡均具有链接到费率表中的1行的单独泳道。

在通道表中,我已通过单元格A8中的importrange将两者链接在一起。现在,此方法可以正常工作并链接,直到在价目表中与该车道链接的行之间插入新行,然后它不会更新,但会显示新行信息是什么。

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

两个工作表链接如下:

Rates

Lanes

2 个答案:

答案 0 :(得分:1)

解决方案1-如果您只需要检查一种情况

要获得理想的结果,您必须为每个费率都配备一个ID。为了这个答案(根据您的示例表),我认为这可能是一个起源城市。在测试表2中,我添加了新表-SheetTest,其中:

第一步

我正在价目表中查找欲望城市所在的行号(例如,其Mcclellan城市)。的代码很简单:

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

这给了我-> 10

第二步

我使用此结果动态生成最终范围-“ Rates!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)
)

Working example

警告

我看到在您的原始工作表中,您使用了“从费率”工作表中“获取”起源城市,因此我在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. 然后,仅显示第3列(索引),其中Col1匹配我们的“ To City”,而Col2匹配“ From City”
  3. 最后只限制一个结果(以防万一)。

需求范围 B3

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

A11

中的外部工作表提供最终数据的最终公式
=IMPORTRANGE(B1,B3)

Working example

最终想法

  1. 您可以隐藏第1-3行,也可以将以上所有公式打包为一个。由你决定。我更喜欢第一种方法。
  2. 此解决方案使您可以自由选择所需的条件

答案 1 :(得分:0)

更多信息会有所帮助。

一些想法:

  1. 使用命名范围而不是静态引用。例如,如果您在价目表中创建一个引用A2!C600的名为MY_DATA的命名范围,则可以在供应商表的导入范围中包括“ MY_DATA”。请注意,每次添加一行时,仍然需要更新MY_DATA。
  2. 如果要导入整个工作表,也许可以省略最后一行(例如,用A2!C代替A2!C600)-请注意,这意味着您需要在供应商表中使用过滤器或查询来消除空白行。