首页 > 解决方案 > 为什么将此 Google 表格公式设为 ARRAYFORMULA 会改变其行为?

问题描述

此公式适用于每行:

=(IF(today()-D2 > 365,text(D2:D,"mmm yyyy"),text(D2:D,"mmm d")))

但是,如果我将其设置为如下所示的 ARRAYFORMUAL,即使today()-D2 > 365为 False,它也始终返回 text(D2:D,"mmm yyyy")。

=arrayformula(IF(LEN(D2:D) = 0, "", (IF(today()-D2 > 365,text(D2:D,"mmm yyyy"),text(D2:D,"mmm d")))))

请参阅下面的屏幕截图。D 列是来源日期。F 列是 ARRAYFORMULA。G 列是标准公式(每行硬编码 vs ARRAYFORMULA)。

我希望 F 列中的 ARRAYFORMUAL 复制 G 列中的结果。

在此处输入图像描述

标签: datedatetimeif-statementgoogle-sheetsstring-formatting

解决方案


尝试:

=ARRAYFORMULA(IF(LEN(D2:D), IF((TODAY()-D2:D)>365,
 TEXT(D2:D, "mmm yyyy"), TEXT(D2:D, "mmm d")), ))

在此处输入图像描述


推荐阅读