google 张,给定的后续列数,用逗号分隔字母。不使用应用程序脚本,请只使用公式
google sheets, Make letters separated by comma given number of following columns. Not using app script, just formulas please
我正在 google 工作表中使用查询功能...我想 select F 列到 AB 列。
我需要一个具有输出 F,G,H,I... ,AB
的单元格,以便我可以将其放入 Select
语句中。
这个公式应该有 2 个输入,起始字母(在本例中为 F
)和后面的列数(在本例中为 22
)
没有应用程序脚本代码。我知道有人可以只用一个单元格中的公式来做到这一点。
我相信你的目标如下。
- 您想通过给定起始列字母“F”和
22
的列数来创建 F,G,H,I... ,AB
的值。
- 例如,给定“F”的起始列字母和
22
的列数,你想检索F,G,H,I... ,AB
的值,你想这样使用=QUERY(A1:AB,"SELECT F,G,H,I... ,AB")
.
- 您想使用 Google 电子表格的内置函数来实现此目的,而无需 Google Apps 脚本。
为此,这个答案怎么样?
示例公式1:
在此示例公式中,为了通过给出“F”的起始列字母和 22
的列数来创建 F,G,H,I... ,AB
的值,我想支持 ose下面的公式。
=TEXTJOIN(",",TRUE,ARRAYFORMULA(REGEXREPLACE(ADDRESS(1,COLUMN(INDIRECT(A1&"1:"&ADDRESS(1,B1+COLUMN(INDIRECT(A1&"1")),4))),4),"\d+","")))
- 当
A1
和B1
的值分别为F
和22
时,该公式的流程如下。
- 使用
COLUMN
,检索列号。
- 使用
ADDRESS
,从列号中检索列字母。当时使用REGEXREPLACE
. 去掉行号os
- 以上公式与
ARRAYFORMULA
一起使用。
- 使用
TEXTJOIN
,将列字母与 ,
连接起来。
结果:
示例公式2:
在此示例公式中,=QUERY(A1:AB,"SELECT F,G,H,I... ,AB")
是使用上述示例公式 1 创建的。
=QUERY(A1:AB,"SELECT "&TEXTJOIN(",",TRUE,ARRAYFORMULA(REGEXREPLACE(ADDRESS(1, COLUMN(INDIRECT(A1&"1:"&ADDRESS(1, B1 + COLUMN(INDIRECT(A1&"1")), 4))), 4),"\d+",""))))
结果:
在此示例结果中,A2:AB7
的范围用于 QUERY
。所以请注意这一点。当更改单元格“A1”和“B1”时,此公式的结果也会更改。
注:
- 这种情况下,当起始列和列数超过现有的最大列数时,会出现错误,请注意。
参考文献:
已添加:
当您想通过给定起始列字母“F”和列数22
来创建Col6, Col7, Col8 ... Col28
时,下面的示例公式如何?
示例公式:
="Col"&TEXTJOIN(",Col",TRUE,ARRAYFORMULA(COLUMN(INDIRECT(A1&"1:"&ADDRESS(1,B1+COLUMN(INDIRECT(A1&"1")),4)))))
- 在这种情况下,请将
F
和 22
分别填入单元格“A1”和“B1”。
如果您的范围是 F:AB
那么您可以跳过 select
参数或使用:
=QUERY(F1:AB; "select *"; 0)
如果范围更大,将范围放在花括号中并尝试:
=ARRAYFORMULA(QUERY({A1:AB}; "select "&TEXTJOIN(","; 1; "Col"&COLUMN(F:AB)); 0))
我正在 google 工作表中使用查询功能...我想 select F 列到 AB 列。
我需要一个具有输出 F,G,H,I... ,AB
的单元格,以便我可以将其放入 Select
语句中。
这个公式应该有 2 个输入,起始字母(在本例中为 F
)和后面的列数(在本例中为 22
)
没有应用程序脚本代码。我知道有人可以只用一个单元格中的公式来做到这一点。
我相信你的目标如下。
- 您想通过给定起始列字母“F”和
22
的列数来创建F,G,H,I... ,AB
的值。- 例如,给定“F”的起始列字母和
22
的列数,你想检索F,G,H,I... ,AB
的值,你想这样使用=QUERY(A1:AB,"SELECT F,G,H,I... ,AB")
.
- 例如,给定“F”的起始列字母和
- 您想使用 Google 电子表格的内置函数来实现此目的,而无需 Google Apps 脚本。
为此,这个答案怎么样?
示例公式1:
在此示例公式中,为了通过给出“F”的起始列字母和 22
的列数来创建 F,G,H,I... ,AB
的值,我想支持 ose下面的公式。
=TEXTJOIN(",",TRUE,ARRAYFORMULA(REGEXREPLACE(ADDRESS(1,COLUMN(INDIRECT(A1&"1:"&ADDRESS(1,B1+COLUMN(INDIRECT(A1&"1")),4))),4),"\d+","")))
- 当
A1
和B1
的值分别为F
和22
时,该公式的流程如下。- 使用
COLUMN
,检索列号。 - 使用
ADDRESS
,从列号中检索列字母。当时使用REGEXREPLACE
. 去掉行号os
- 以上公式与
ARRAYFORMULA
一起使用。 - 使用
TEXTJOIN
,将列字母与,
连接起来。
- 使用
示例公式2:
在此示例公式中,=QUERY(A1:AB,"SELECT F,G,H,I... ,AB")
是使用上述示例公式 1 创建的。
=QUERY(A1:AB,"SELECT "&TEXTJOIN(",",TRUE,ARRAYFORMULA(REGEXREPLACE(ADDRESS(1, COLUMN(INDIRECT(A1&"1:"&ADDRESS(1, B1 + COLUMN(INDIRECT(A1&"1")), 4))), 4),"\d+",""))))
结果:
在此示例结果中,A2:AB7
的范围用于 QUERY
。所以请注意这一点。当更改单元格“A1”和“B1”时,此公式的结果也会更改。
注:
- 这种情况下,当起始列和列数超过现有的最大列数时,会出现错误,请注意。
参考文献:
已添加:
当您想通过给定起始列字母“F”和列数22
来创建Col6, Col7, Col8 ... Col28
时,下面的示例公式如何?
示例公式:
="Col"&TEXTJOIN(",Col",TRUE,ARRAYFORMULA(COLUMN(INDIRECT(A1&"1:"&ADDRESS(1,B1+COLUMN(INDIRECT(A1&"1")),4)))))
- 在这种情况下,请将
F
和22
分别填入单元格“A1”和“B1”。
如果您的范围是 F:AB
那么您可以跳过 select
参数或使用:
=QUERY(F1:AB; "select *"; 0)
如果范围更大,将范围放在花括号中并尝试:
=ARRAYFORMULA(QUERY({A1:AB}; "select "&TEXTJOIN(","; 1; "Col"&COLUMN(F:AB)); 0))