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+","")))
  • A1B1的值分别为F22时,该公式的流程如下。
    1. 使用 COLUMN,检索列号。
    2. 使用ADDRESS,从列号中检索列字母。当时使用REGEXREPLACE.
    3. 去掉行号os
    4. 以上公式与ARRAYFORMULA一起使用。
    5. 使用 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)))))
  • 在这种情况下,请将 F22 分别填入单元格“A1”和“B1”。

如果您的范围是 F:AB 那么您可以跳过 select 参数或使用:

=QUERY(F1:AB; "select *"; 0)

如果范围更大,将范围放在花括号中并尝试:

=ARRAYFORMULA(QUERY({A1:AB}; "select "&TEXTJOIN(","; 1; "Col"&COLUMN(F:AB)); 0))