【问题标题】:Converting if/and statement into an array formula将 if/and 语句转换为数组公式
【发布时间】:2021-05-24 11:14:01
【问题描述】:

我想转换以下公式:

=IF(A2:A=1,"Under an hour",IF(AND(A2:A<48,A2:A>23),"1 Day",IF(A2:A>=24,int(A2:A/24)&" Days",ROUNDUP(A2:A) &" Hours")))

转换成一个数组公式。目前它不起作用,因为 AND 语句在数组公式中不起作用,但我不确定如何在没有 and 的情况下使其工作(并且不嵌入 24 个不同的 IF 语句)

我基本上只想在 B 列中返回与 A 中显示的小时数有关的用户可读文本:

0   0 Hours
1   Under an hour
2   2 Hours
23  23 Hours
24  1 Day
25  1 Day
47  1 Day
48  2 Days
49  2 Days
100 4 Days

【问题讨论】:

  • 可能这不是 Excel,因为您的范围语法只能在表格中使用?
  • 是的,对不起,是工作表,我没有意识到范围语法不同,我应该取消 Excel 标记还是 if 语句在两者中的工作方式相同?
  • 除非您需要它同时在这两种情况下工作,否则我会取消标记 Excel。

标签: if-statement google-sheets logic array-formulas logical-operators


【解决方案1】:

AND(A2:A&lt;48,A2:A&gt;23) 更改为(A2:A&lt;48)*(A2:A&gt;23)

【讨论】:

  • 太棒了!你明白为什么会这样吗?您需要对 OR 语句执行什么操作?
  • @JoeW AND 是一个数组函数 - 它接收一个参数值数组并返回一个值,因此它不会像您预期的那样与 ARRAYFORMULA 一起使用。反过来,乘法分别处理数组的每个元素,在这种情况下也返回数组。而IF 函数将零值转换为FALSE,将非零值转换为TRUE
  • @JoeW For OR 将乘法更改为加法,即 *+
猜你喜欢
  • 1970-01-01
  • 2019-04-09
  • 2023-04-08
  • 2014-10-08
  • 1970-01-01
  • 1970-01-01
  • 2021-04-14
  • 1970-01-01
  • 2021-04-27
相关资源
最近更新 更多