我正在尝试对包含0000
和2400
或"TBD"
之间的数字的列中的单元格进行计数。实际的列条目包含数字,“ ddmmm”日期和无特定顺序的文本。整列被强制格式化为文本。
不包含任何真实文本条目,以下公式有效:
=SUMPRODUCT(--(VALUE(H:H)>0)*--(VALUE(H:H)<2401))
但是一旦我开始输入文本条目,VALUE显然就是#VALUE!了。我无法让它在为VALUE函数引发错误的范围内工作。
Tl; dr:我需要对包含数字0000-2400或文本“ TBD”的文本格式的列中的条目进行计数。我碰到了无法使用VALUE转换的条目的地方。
答案 0 :(得分:1)
使用此数组公式
=SUM(IFERROR((--H:H>0)*(--H:H<2401),0)+(H:H="TBD"))
作为数组公式,退出编辑模式时必须使用Ctrl-Shift-Enter而不是Enter进行确认。
答案 1 :(得分:0)
因此,VALUE(“ 0000”)给您0,而VALUE(“ 2400”)给您2400,因此这意味着它们将按预期工作。问题可能出在您遇到TBD或其他任何值时。
在评估VALUE()和错误之前,您需要使用IF语句来捕获它。
=IF(ISERR(VALUE(<cell>)),IF(<cell>="TBD",<do TBD stuff here>,<entry is not a date or TBD>),SUMPRODUCT(...))
如果语句格式为“经典”,则更容易阅读:
IF (VALUE(<cell>) = ERR)
{
IF (<cell> = "TBD")
{
<do TBD stuff here>
}ELSE{
<entry is not a date or TBD>
}
}ELSE{
SUMPRODUCT(...)
}