Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google sheets 将行号拉入查询google电子表格_Google Sheets - Fatal编程技术网

Google sheets 将行号拉入查询google电子表格

Google sheets 将行号拉入查询google电子表格,google-sheets,Google Sheets,我有这样一个数据集:从A1开始,用“1” A列为arrayformula=arrayformula(行(b1:b)) B列为手动输入 我想查询数据库并通过匹配列B查找项的行,这样我就有了这样的代码 =query("A1:B","select A where B like '%c%') 这应该给我“3” 我的问题: 是否有办法将1-4个数字拉入查询行?类似于数组公式行(b1:b)。我不想在A栏浪费一个额外的栏位 所以基本上我只需要手动输入,当我查询时,它会给我行号 请不要输入脚本代码 我试过一些

我有这样一个数据集:从A1开始,用“1”

A列为arrayformula=arrayformula(行(b1:b)) B列为手动输入

我想查询数据库并通过匹配列B查找项的行,这样我就有了这样的代码

=query("A1:B","select A where B like '%c%')
这应该给我“3”

我的问题:

是否有办法将1-4个数字拉入查询行?类似于数组公式行(b1:b)。我不想在A栏浪费一个额外的栏位

所以基本上我只需要手动输入,当我查询时,它会给我行号

请不要输入脚本代码

我试过一些方法,但都不管用

寻找一个从

=query()

我不完全清楚这个问题,但据我所知,您希望能够输入一个公式,并让它返回某个范围内匹配项的行号?我不确定数组公式是从哪里来的

如果我正确理解了你的问题,这应该可以做到:

=MATCH("C",B1:B,0)
在您的示例中,这将返回
3

如果我误解了你的问题,请原谅


注意:如果有多个匹配项,这将返回第一次搜索的行号

我不完全清楚这个问题,但据我所知,您希望能够输入一个公式,并让它返回某个范围内匹配项的行号吗?我不确定数组公式是从哪里来的

如果我正确理解了你的问题,这应该可以做到:

=MATCH("C",B1:B,0)
在您的示例中,这将返回
3

如果我误解了你的问题,请原谅


注意:如果有多个匹配项,这将返回第一次搜索的行号

如果这对您很重要,您还可以使用公式在数据集中拉入多个与条件匹配的行:

=arrayformula(filter(row(B:B); B:B="c"))
在某些情况下,可以使用通配符类型的运算符(您将匹配文本或看起来像文本的项(因此数字可以被视为文本,但布尔值需要更多步骤);数据集不是很大),使用正则表达式。e、 g

=arrayformula(filter(row(B:B); regexmatch(B:B, "(c|d)")))
您还可以使用标准的电子表格通配符运算符,例如

=arrayformula(filter(row(B:B); countif(B:B, "*c*")))
说明:在这种情况下,当countif大于零时,过滤器将为true,即当它看到某个值中包含字母c时,因为电子表格将大于零的值视为布尔true,因此,对于存在countif匹配的行,将存在过滤器匹配,因此它将显示该行(事实上,在上述情况下,当存在c或d匹配项时,regexmatch会创建一个true,这是一种类似的情况)

就个人而言,我想学一点正则表达式,所以我会选择正则表达式匹配选项。但这是你的选择

当然,您也可以在单元格外创建匹配项。这样可以轻松创建您希望在工作表其他位置满足的匹配项列表。因此,您可以从Z2向下创建一列单词或部分单词,然后在单元格Z1中将它们连接在一起,例如

="("&join("|",filter(Z2:Z50,len(Z2:Z50)))&")"
然后,您的筛选函数将如下所示:

=arrayformula(filter(row(B:B), regexmatch(B:B, Z1)))
=arrayformula(query(if({1,0}, B:B,row(B:B)),"select Col2 where Col1 like '%c%' "))
如果要在查询函数中使用like运算符,可以尝试以下操作:

=arrayformula(filter(row(B:B), regexmatch(B:B, Z1)))
=arrayformula(query(if({1,0}, B:B,row(B:B)),"select Col2 where Col1 like '%c%' "))
您还可以在查询函数中使用正则表达式,例如:

=arrayformula(query(if({1,0}, B:B,row(B:B)),"select Col2 where Col1 matches '(.*c.*|.*d.*)' "))

如果这对您很重要,您还可以使用公式在数据集中拉入与条件匹配的多行:

=arrayformula(filter(row(B:B); B:B="c"))
在某些情况下(您将匹配文本或看起来像文本的项(因此数字可以被视为文本,但布尔值需要更多步骤);数据集不是很大),可以使用正则表达式使用通配符类型运算符

=arrayformula(filter(row(B:B); regexmatch(B:B, "(c|d)")))
您还可以使用标准的电子表格通配符运算符,例如

=arrayformula(filter(row(B:B); countif(B:B, "*c*")))
说明:在这种情况下,当countif大于零时,过滤器将为true,即当它看到某个值中包含字母c时,因为电子表格将大于零的值视为布尔true,因此,对于存在countif匹配的行,将存在过滤器匹配,因此它将显示该行(事实上,在上述情况下,当存在c或d匹配项时,regexmatch会创建一个true,这是一种类似的情况)

就个人而言,我想学一点正则表达式,所以我会选择正则表达式匹配选项。但这是你的选择

当然,您也可以在单元格外创建匹配项。这样可以轻松创建您希望在工作表其他位置满足的匹配项列表。因此,您可以从Z2向下创建一列单词或部分单词,然后在单元格Z1中将它们连接在一起,例如

="("&join("|",filter(Z2:Z50,len(Z2:Z50)))&")"
然后,您的筛选函数将如下所示:

=arrayformula(filter(row(B:B), regexmatch(B:B, Z1)))
=arrayformula(query(if({1,0}, B:B,row(B:B)),"select Col2 where Col1 like '%c%' "))
如果要在查询函数中使用like运算符,可以尝试以下操作:

=arrayformula(filter(row(B:B), regexmatch(B:B, Z1)))
=arrayformula(query(if({1,0}, B:B,row(B:B)),"select Col2 where Col1 like '%c%' "))
您还可以在查询函数中使用正则表达式,例如:

=arrayformula(query(if({1,0}, B:B,row(B:B)),"select Col2 where Col1 matches '(.*c.*|.*d.*)' "))

我改变了问题,我意识到我把问题弄得太简单了。匹配不起作用,因为我在寻找一个使用通配符的查询函数。我需要一些不完全匹配的东西。我改变了问题,我意识到我把问题弄得太简单了。匹配不起作用,因为我在寻找一个使用通配符的查询函数。我不知道ed某些不完全匹配的内容您可以在筛选器中使用通配符吗?就像在查询中一样?您可以将正则表达式作为一个选项添加到第二个参数中。我修改了答案以显示这一点。我已使用行运算符和通配符为查询函数进行了编辑扫描您可以在筛选器中使用通配符吗?就像在查询中一样?您可以将正则表达式添加到第二个参数作为一个选项。我已经修改了答案以显示这一点。我已经使用行运算符和通配符编辑了查询函数。请解释您的解决方案。根据DebanjanB和BookOfZeus的建议,应提供其他信息。请