在Google表格中使用CHOOSE和CONCATENATE与ARRAYFORMULA

时间:2014-10-02 16:56:31

标签: google-sheets array-formulas

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

第一栏包含日期;第一次约会是在一个Weds;所有其他日期都在星期一

我用的时候
    = CONCATENATE(ARRAYFORMULA(文本($ I9:$ I12, “DDD”)), “111”)     = ARRAYFORMULA(CONCATENATE((文本($ I9:$ I14, “DDD”)), “111”))     = ARRAYFORMULA(CONCATENATE((ARRAYFORMULA(文本($ I9:$ I14, “DDD”))), “111”))

我得到以下单细胞反应:
WedMonMonMon111

我想要得到的是:
周三111 周一111 周一111 Mon 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月11日 2月11日 2月11日 2月11日
我可以使用以下等式得到上面列出的日期格式:
   = ARRAYFORMULA(工作日(I9:I14)&“”& Text(I9:I14,“ddd”))

但我想知道是否有办法将AROAYFORUMULA用于CHOOSE和CONCATENATE功能。有谁知道这个?

2 个答案:

答案 0 :(得分:2)

  

但我想知道是否有办法使用CHOOSE和   CONRATENATE函数与ARRAYFORUMULA。

不是你想要使用它们的方式,并且出于不同的原因。

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

选择有点奇怪;无论出于何种原因,在最新版本的Sheets中,Google员工已经删除了在第一个参数中对数组进行迭代的能力。您列出的所有选择的示例都将作为旧版本中的数组公式(尽管您只需要一个ArrayFormula函数)。

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

=ArrayFormula(CHOOSE(range,"element 1","element 2",...))

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

=ArrayFormula(HLOOKUP("element 1",{"element 1";"element 2";...},range,0))

答案 1 :(得分:0)

用arrayformula浓缩公式。您可以使用&进行合并,如下所示:

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