我有一个包含大量行的电子表格。每行有 3 列(B、C、D),可包含在三个不同时间点收集的数值数据。B = 第一个时间点,C = 第二个时间点,D = 第三个时间点。当无法在给定时间点收集数据时,单元格包含零。
对于每一行,我想
- 为每一行创建一个“总计列(E 列)”。
- 对于任何仅包含一个数字的行(无论该数字位于 B 列、C 列还是 D 列),在总计列(E 列)中输入“无结果”
- 将最早数据收集时间点包含数字的列中的数字减去最新数据收集时间点包含数字的列中的数字
有人可以帮忙吗?
答案1
您可以将数组公式与 IF、COUNTIF、LOOKUP 和 INDEX 函数的组合一起使用。
单元格 E2(总列)公式:
=IF(COUNTIF(B2:D2,">0") < 2, "no result",LOOKUP(9.999999999E+307,IF(B2:D2>0,B2:D2)) - INDEX(B2:D2,MATCH(TRUE,INDEX(B2:D2>0,0),)))
在公式中,按 CTRL + SHIFT + ENTER 以获取那些花括号,使其成为数组公式。将其向下拖动。
首先,它会计算行中大于 0 的值的数量。如果小于 2,则显示“无结果”。否则,运行公式的剩余部分。剩余部分是查找行中的最后一个非零值并减去行中的第一个非零值。
答案2
欢迎 Stephen。虽然 Independent 的答案是老板级别的,并且可以推断出任意数量的输入列,但这个简化的公式也应该适用于最简单的 3 列输入场景
=IF(COUNTIF(B2:D2,">0") < 2, "No result", IF(B2=0,D2-C2,IF(D2=0,C2-B2,D2-B2)) )
答案3
由于列数较少,我倾向于将其保持得非常简单,以便任何人都可以遵循逻辑并排除故障。例如:
=IF(COUNTIF(B2:D2,">0")<2,"No result", IF(D2>0,D2,C2)-IF(B2>0,B2,C2))