我是数组公式的新手。流量应该是如果列表中没有数据输入数组或只有1个条目,则显示“添加重量”[总共7个点]。一旦在数组中的任何位置输入了两个任何数据,它就会检查数组中的FIRST值并减去数组中的LAST值。
我得到的这个问题是,当数组为空而不是显示“添加权重”时,单元格显示#value。一旦输入数据,该公式就可以正常工作,并且无论它们在数组中的位置如何,都可以正确地从第一个条目中减去最后一个条目。
这会查找数组中的最后一个条目。
LOOKUP(2,1/(1-ISBLANK(D13:D19)),D13:D19))
这会查找数组中的第一个条目。
INDEX(D13:D19,(MATCH(FALSE,ISBLANK(D13:D19),0)))
是因为公式被标记为数组吗?
=IF(COUNTIF(DailyProgress[Change],"")>6,"Add Weight",LOOKUP(2,1/(1-ISBLANK(D13:D19)),D13:D19))-INDEX(D13:D19,(MATCH(FALSE,ISBLANK(D13:D19),0)))
如果有更好的方法来写这个,我全都听见了。
编辑:
在相邻的列中,我显示了与前一个单元格的变化,如下所示:
=IF([@[Weight (lbs)]]="","",[@[Weight (lbs)]]-D17)
其中D17
是当前行上方的单元格[这将在第18行输入]。
实际上,如果相邻单元格正上方的单元格为空,则将其显示为零并执行“0 - value = -value”,因此我们刚刚进行了更改,我希望将其与LAST输入单元格进行比较在它之前而不是它正上方的细胞。我知道这需要完全重写。仍在使用D13:D19
数组。
答案 0 :(得分:1)
使用此数组公式:
=IFERROR(IF(MATCH(FALSE,D13:D19="",0)=MATCH(1E+99,D13:D19),"Add Weight",INDEX(D13:D19,MATCH(1E+99,D13:D19))-INDEX(D13:D19,MATCH(FALSE,D13:D19="",0))),"Add Weight")
在D13:D19中至少有两个条目之前,它将返回Add Weight
作为数组公式,需要在退出编辑模式时使用Ctrl-Shift-Enter而不是Enter来确认。如果操作正确,那么Excel会将{}
放在公式周围。
FWIW:
您的COUNTIF不起作用的原因是标准,将""
更改为"="
并计算空白:
COUNTIF(DailyProgress[Change],"=")>6