首页 > 解决方案 > InsertRowBefore() + 定义范围问题

问题描述

我有一些代码可以在工作表顶部插入一个空白行并将数据复制到其中。

我在那张纸上也有一个定义的范围。

每次插入一行时,定义的范围都会向下移动一行。

定义的范围有助于在另一个工作表上进行查询,因此总是缺少插入的行。

如果我删除查询并使用 importrange,它就没有问题。但是,该查询不适用于 importrange。

我假设最简单的解决方法是对范围进行“硬编码”,但我将如何在查询中调用它?

这是查询,然后是使用 importrange 的相同查询。

=IFERROR(QUERY(STOCK_IN_DATA,"SELECT *" & IF((LEFT(D4,1))="*","WHERE D STARTS WITH '"&RIGHT(D4,LEN(D4)-1)&"' AND C CONTAINS '"&$C4&"' AND E CONTAINS '"&$E4&"' AND F CONTAINS '"&$F4&"' AND G CONTAINS '"&$G4&"' AND H CONTAINS '"&$H4&"'","WHERE C CONTAINS '"&$C4&"' AND D CONTAINS '"&$D4&"' AND E CONTAINS '"&$E4&"' AND F CONTAINS '"&$F4&"' AND G CONTAINS '"&$G4&"' AND H CONTAINS '"&$H4&"'")),)

=IFERROR(QUERY(IMPORTRANGE("SHEETNAME","MASTER_IN!$B$1:M"),"SELECT *" & IF((LEFT(D4,1))="*","WHERE D STARTS WITH '"&RIGHT(D4,LEN(D4)-1)&"' AND C CONTAINS '"&$C4&"' AND E CONTAINS '"&$E4&"' AND F CONTAINS '"&$F4&"' AND G CONTAINS '"&$G4&"' AND H CONTAINS '"&$H4&"'","WHERE C CONTAINS '"&$C4&"' AND D CONTAINS '"&$D4&"' AND E CONTAINS '"&$E4&"' AND F CONTAINS '"&$F4&"' AND G CONTAINS '"&$G4&"' AND H CONTAINS '"&$H4&"'")),) 

查询所做的是在第 4 行显示的单元格中创建一个漂亮的小搜索过滤器。

标签: google-sheetsgoogle-sheets-formulagoogle-sheets-queryimportrange

解决方案


只有当引用用作第一个参数时,QUERY 才能使用 A、B、C 列名称。当数组用作第一个参数时,如本例中的 IMPORTRANGE,您应该使用 Col1、Col2、Col3 作为列名,而不是分别使用 A、B、C。


推荐阅读