=MAX(IF('[YTD -2021.xlsx]OB'!$H$2:$H$23967=$C5,IF('[YTD -2021.xlsx]OB'!$J$2:$J$23967=$B$1,'[YTD -2021.xlsx]OB'!$A$2:$A$23967)))
我想忽略零日期,结果应该给我 0 或空白而不是 0/01/1900。
答案1
- 添加带有公式的新列
if(date=0,"",date)
- 在新列上求最大值
- (可选)为了美观,隐藏其中一列(可能是旧的列)
问:为什么一开始就困扰你?如果没有日期,0 只是最大日期?
MAX(01/01/1900, 16/02/2021) = MAX(0, 16/02/2021) = 16/02/21
答案2
问题实际上只是问,0
如果他的计算结果为 0,那么如何得到一个或一个空白。而不是将结果 0 显示为日期 0。他对获得结果的方法很满意,只是希望如果结果为 0,则显示方式不同。
为此,您只需更改结果单元格的格式即可。目前,它大概是某种日期格式。Excel 允许常规数字格式为多达四种结果设置格式for each cell
:
- 正值
- 负值
- 零值
- 文本值
各部分之间用分号 ( ;
) 连接。
它们也按该顺序指定。因此,如果您想要正数结果且没有小数位和“千位”分隔符,负数结果用字符Alt-0151
代替负号,小数位为两位,并且以红色显示,零显示为空白,文本以一般方式显示,则可以使用以下方法:
0;[Red]—0.00;;@
当然,日期格式也很好。事实上,Excel 允许的任何数字格式都可以。所以。如果您希望日期(不是零,而是有意义的日期)显示为“12/23/2024”,负数显示为红色,整数显示为整数,以便结果中这些严重错误的内容脱颖而出,零显示为空白,文本显示为“任何内容”(让我们将文本也涂成红色,使错误也突出显示),您可以使用:
mm/dd/yyyy;[Red]0;;[Red]@
您只期望日期和零,因此其他两种结果将像红色拇指一样突出。Excel 中的任何实际日期始终是正值,因此第一部分使它们看起来很正常。您可以得到零,但请注意两者;;
之间没有任何内容:这意味着零将什么也不显示。
如果需要,可以通过其他方式隐藏零,而且不会造成任何损害。您可以完全关闭零的显示,但这会影响所有单元格,而不仅仅是包含此公式的单元格。您可以通过复制所有内容,然后说 if THIS
= 0, then "", else THIS
... 来使公式的大小和工作量翻倍,但这会使它成为双倍比例的野兽,以后很难理解。为什么要这样做,而只需更改格式就可以解决问题,是吗?使用公式的逻辑的文字示例如下:
=IF( MAX(IF('[YTD -2021.xlsx]OB'!$H$2:$H$23967=$C5,IF('[YTD -2021.xlsx]OB'!$J$2:$J$23967=$B$1,'[YTD -2021.xlsx]OB'!$A$2:$A$23967))) = 0, "", MAX(IF('[YTD -2021.xlsx]OB'!$H$2:$H$23967=$C5,IF('[YTD -2021.xlsx]OB'!$J$2:$J$23967=$B$1,'[YTD -2021.xlsx]OB'!$A$2:$A$23967))) )
如果必须的话,你会这么做,但是...你不必这么做。
此外,如果您希望显示“0”(您的其他可接受结果)而不是空白单元格,只需在两者之间放置一个“0”字符即可;;
:
mm/dd/yyyy;[Red]0;0;[Red]@
顺便说一句,您还可以使用此格式化功能执行其他操作,但与您的问题无关。但是,您不能将这种格式与那种格式混合使用,因此如果您了解它并在这些单元格中使用它,则必须选择类似于我上面展示的双重公式。
答案3
我想举几个例子,计算时忽略零。
=MAX(IF($A$2:$A$15=F$1,IF($B$2:$B$15=F$2,IF($C$2:$C$15<>0,$C$2:$C$15,0))))
其中这部分
IF($C$2:$C$15<>0
忽略零,并且也适用于 DATE 值,因为基本上 DATE 值是数字数据,然后格式化为显示为 DATE。=MINIFS($J$2:$J$20, $I$2:$I$20, ">=1/1/2021", $I$2:$I$20, "<2/28/2021", $J$2:$J$20, "<>0")
另一个是:
=SUMPRODUCT(MAX(($A$2:$A$12=F1)*($B$2:$C$15=G2)*($D$2:$D$15<>0)*($D$2:$D15)))
注意:
- 根据需要调整公式中的单元格引用。