Google sheets 在Google工作表中使用CHOOSE并与ARRAYFORMULA连接

Google sheets 在Google工作表中使用CHOOSE并与ARRAYFORMULA连接,google-sheets,array-formulas,Google Sheets,Array Formulas,我试图在列中创建一个日期数组,但在使用带有ARRAYFORUMULA的CHOOSE and CONCATENATE公式时遇到了麻烦。有没有办法解决以下问题: 第一栏包含日期;第一次约会发生在一对夫妇身上;所有其他日期都在星期一 当我使用 =连接(数组格式(文本($I9:$I12,“ddd”),“111”) =数组公式(连接((文本($I9:$I14,“ddd”),“111”)) =数组公式(连接((数组公式(文本($I9:$I14,“ddd”)),“111”)) 我得到以下单细胞反应: 星期三

我试图在列中创建一个日期数组,但在使用带有ARRAYFORUMULA的CHOOSE and CONCATENATE公式时遇到了麻烦。有没有办法解决以下问题:

第一栏包含日期;第一次约会发生在一对夫妇身上;所有其他日期都在星期一

当我使用
=连接(数组格式(文本($I9:$I12,“ddd”),“111”) =数组公式(连接((文本($I9:$I14,“ddd”),“111”)) =数组公式(连接((数组公式(文本($I9:$I14,“ddd”)),“111”))

我得到以下单细胞反应:
星期三111

我想得到的是:
星期三111
周一111
周一111
周一111

当我使用以下方程式时:

=ARRAYFORMULA(CHOOSE( weekday(I10:I14), "1 Sun", "2 Mon", "3 Tue", "4 Wed", "5 Thurs", "6 Fri", "7 Sat"))

=ARRAYFORMULA(CHOOSE(ARRAYFORMULA(weekday(ARRAYFORMULA(I10:I14))), "1 Sun", "2 Mon", "3 Tue", "4 Wed", "5 Thurs", "6 Fri", "7 Sat"))

=ARRAYFORMULA(CHOOSE( ARRAYFORMULA(weekday(I10:I14)), "1 Sun", "2 Mon", "3 Tue", "4 Wed", "5 Thurs", "6 Fri", "7 Sat"))

=ARRAYFORMULA(CHOOSE(weekday(ARRAYFORMULA(I10:I14)), "1 Sun", "2 Mon", "3 Tue", "4 Wed", "5 Thurs", "6 Fri", "7 Sat"))
我得到以下单细胞反应:
2个星期一

我想得到的是 1星期三
2个星期一
2个星期一
2个星期一
2个星期一

我可以使用以下等式获得上面列出的日期格式:
=数组格式(工作日(I9:I14)和文本(I9:I14,ddd))

但是我想知道是否有一种方法可以将CHOOSE和CONCATENATE函数与ARRAYFORUMULA一起使用。有人知道这件事吗

但我想知道是否有一种方法可以使用选择和 用ARRAYFORUMULA连接函数

不是以你想要的方式使用它们,而是出于不同的原因

CONCATENATE是一个“聚合”函数(如SUM、AVERAGE等),它将“吞噬”并处理括号内的所有内容。换句话说,它不能在数组上迭代。解决方案是使用
&
运算符(正如您在最终公式中所做的那样)

选择有点奇怪;不管出于什么原因,在最新版本的Sheets中,Google已经取消了在第一个参数中对数组进行迭代的功能。您列出的所有这些CHOOSE示例都将在旧版本中用作数组公式(尽管您只需要一个ArrayFormula函数)

对于你的具体例子,我认为你的最终公式是最好的。但如果您想复制以下预期效果:

=数组公式(选择(范围,“元素1”、“元素2”和…)

您可以使用这种奇怪的解决方法:


=ArrayFormula(HLOOKUP(“元素1”,“元素1”,“元素2”…},范围0))

用ArrayFormula浓缩公式。您可以使用
进行组合,如下所示:

=arrayformula({B2:B8&text(E2:E8,"ddd")})

在最后一个公式中,我尝试了:=ArrayFormula(HLOOKUP(“1个太阳”,“2个星期一”,“3个星期三”,“4个星期四”,“5个星期五”,“6个星期六”,“5个星期五”,“5个星期五”,“0”)=ArrayFormula(HLOOKUP(“1个太阳”,“1个太阳”,“1个太阳”,“2个星期一”,“3个星期三”,“4个星期四”,“5个星期五”,“6个星期六”,“周日(I2:I)”))=ArrayFormula(平日(I2:I),{“1个太阳”,“2个星期一”,“3个星期三”,“4个星期四”,“5个星期五”,“6个星期六”),I2:I,0)都返回了一个“HLOOKUP的计算结果超出了范围。”错误。我还尝试了=ArrayFormula(VLOOKUP(工作日(I2:I)){{1,“1个星期日”},{2,“2个星期一”},{3,“3个星期三”},{4,“4个星期四”},{5,“5个星期五”},{6,“6个星期六”},1,0))
返回N/A“在VLOOKUP的计算中没有找到值“2”。我该如何表达该查询?对于HLOOKUP,您需要在嵌入式数组中使用分号(大括号内的位)-请参阅answerOh,第二个分号是VLOOKUP的正确格式(在第三个参数中使用的工作日),请使用{{1,“1 Sun”};{2,“2 Mon”};..}