我有以下公式,仅当正确的结果显示在概述的单元格中时才会触发。当我编写公式时,单元格为空时会弹出通知。我似乎无法检测到错误在哪里。建议赞赏。
=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 公式,以便在结果超出范围时向实验室技术人员指出。当单元格为空时触发通知,但仅应在结果超出范围时触发。
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", "")