结合使用SUMPRODUCT和价值操纵

时间:2019-08-21 17:28:55

标签: excel excel-formula

我正在尝试对包含00002400"TBD"之间的数字的列中的单元格进行计数。实际的列条目包含数字,“ ddmmm”日期和无特定顺序的文本。整列被强制格式化为文本。

不包含任何真实文本条目,以下公式有效:

=SUMPRODUCT(--(VALUE(H:H)>0)*--(VALUE(H:H)<2401))

但是一旦我开始输入文本条目,VALUE显然就是#VALUE!了。我无法让它在为VALUE函数引发错误的范围内工作。

Tl; dr:我需要对包含数字0000-2400或文本“ TBD”的文本格式的列中的条目进行计数。我碰到了无法使用VALUE转换的条目的地方。

2 个答案:

答案 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(...)
}