Excel 公式在无意时触发通知

问题描述 投票:0回答:1

我有以下公式,仅当正确的结果显示在概述的单元格中时才会触发。当我编写公式时,单元格为空时会弹出通知。我似乎无法检测到错误在哪里。建议赞赏。

=IF(ISNA(HLOOKUP('IPN List for CBOD'!B3,F107:K120,3)),"",IF(HLOOKUP('IPN List for CBOD'!B3,F107:K120,3)>19,"Notify Operations Foreman that effluent CBOD exceeds 19.0 mg/L, qualify sample result",""))

我用 Hlookup 编写了 excel 公式,以便在结果超出范围时向实验室技术人员指出。当单元格为空时触发通知,但仅应在结果超出范围时触发。

excel excel-formula
1个回答
0
投票

HLOOKUP
函数四个参数。

HLOOKUP(lookup_value, table_array, row_index_num, [range_lookup])
[…]
Range_lookup 可选。一个逻辑值,指定您希望 HLOOKUP 查找精确匹配还是近似匹配。如果为 TRUE 或省略,则返回近似匹配。换句话说,如果未找到完全匹配项,则返回小于 lookup_value 的下一个最大值。如果为 FALSE,HLOOKUP 将找到完全匹配。如果找不到,则返回错误值#N/A。

如果您排除参数,或明确将其设置为

TRUE
,那么它将查找先前排序的值。例如。如果您的
table_array
包含名字“Barry”和“Paul”,那么“Arthur”的
lookup_value
将返回
#N/A
(因为“Arthur”按字母顺序在“Barry”之前),
lookup_value
“Charles” " 或 "Derek" 将返回 "Barry" 的结果(因为它们按字母顺序“Barry”之后,但在before “Paul”),而“Robert”或“Victor”的
lookup_value
将返回“Paul”的结果(因为它们按字母顺序排列在“Barry”和“Paul”之后,但“Barry”按字母顺序排列在“Paul”之前)

但是,如果您将

range_lookup
参数显式设置为
FALSE
,那么它将 only 返回 exact 匹配项。 “Arthur”、“Charles”、“Derek”、“Robert”和“Victor”都会给出
#N/A
,只有“Barry”或“Paul”会返回无错误结果。

因此,如果将 HLOOKUP('IPN List for CBOD'!B3,F107:K120,3) 更改为

HLOOKUP('IPN List for CBOD'!B3,F107:K120,3,FALSE)
,您的代码 
应该

工作得更好

当然,你也可以稍微简化一下,引入一个

IFERROR
,像这样:

=IF(IFERROR(HLOOKUP('IPN List for CBOD'!B3, F107:K120, 3, FALSE), 0)>19, "Notify Operations Foreman that effluent CBOD exceeds 19.0 mg/L, qualify sample result", "")
© www.soinside.com 2019 - 2024. All rights reserved.