我在 Excel 中有一个数组公式,如果两个值都是非零数字,则返回两列之间的差值,否则返回一个空字符串。
=IFERROR(1/(1/Details[Date1])- 1/(1/Details[Date2]),"")
我正在尝试改变公式,以便它不返回差值,而是返回
"Metrics Met"
如果差异=0
或=1
"Metrics Not Met"
如果差异是>1
""
其他一切
我一直在尝试将 IF 与 AND 结合起来,但一直无法成功。这是我目前的公式。
=IF(AND(IFERROR(1/(1/Details[Date1])-1/(1/Details[Date2]),"")>=0,
IFERROR(1/(1/Details[Date1])-1/(1/Details[Date2]),"")<=1),
"metrics met",
IF(IFERROR(1/(1/Details[Date1])-1/(1/Details[Date2]),"")>1,
"metrics not met")
在下面的 markdown 表中,
- C 列中的“差异”是我使用旧公式得到的结果
- “期望输出”是我想要得到的
A | 乙 | C | 德 | 埃 | |
---|---|---|---|---|---|
1 | 日期1 | 日期2 | 不同之处 | 期望输出 | 笔记 |
2 | 2023 年 6 月 14 日 | 2023 年 7 月 15 日 | -31 | ||
3 | 2023 年 6 月 14 日 | 2023 年 6 月 15 日 | -1 | ||
4 | 2023 年 7 月 15 日 | 2023 年 6 月 14 日 | 31 | "Metrics Not Met" |
>1 |
5 | 2023 年 6 月 15 日 | 2023 年 6 月 14 日 | 1 | "Metrics Met" |
=1 |
6 | 2023 年 6 月 15 日 | 2023 年 6 月 15 日 | 0 | "Metrics Met" |
=0 |
7 | 2023 年 6 月 15 日 | ||||
8 | 2023 年 6 月 15 日 |
下图中,C 列显示了输出结果
答案1
逻辑
对于每对值d1
和d2
,返回
"Metrics Met"
如果:d1
和d2
可以强制转换为非零数字;- 和如果
d1 >= d2
; - 和 如果
d1-d2<=1
- 否则,
"Metrics Not Met"
如果:d1
和d2
可以强制转换为非零数字
""
其他一切(空字符串)
公式
嵌套如果使用了函数,而不是使用和功能以确保配方能够继续溢出。
=IFERROR(
IF(1/(1/Details[Date1])>=1/(1/Details[Date2]),
IF(1/(1/Details[Date1])-1/(1/Details[Date2])<=1,
"Metrics Met", "Metrics Not Met"), ""), "")