-1

我在 Excel 2003 中遇到了一个动态列表问题,其中一些我想为空的单元格正在返回#NUM!。我曾尝试操作以下代码,但无济于事:

=IF(ISERROR(INDEX(地点名称, SMALL(IF(($A$10=date_ns)*(COUNTIF($A$13:A29,venue_name)=0)), ROW(date_ns)-MIN(ROW(date_ns))+1 , ""), 1)))

我知道它与语法/括号有关,但尝试不同的组合让自己筋疲力尽。没有IF(ISERROR(和右括号,代码运行得非常好。

4

2 回答 2

1

要使用 ISERROR,您必须正常重复整个公式,但可能错误是由匹配条件数量不足引起的,因此请在 A14 中尝试此版本:

[修订更简单的版本]

=IF(SUM(($A$10=date_ns)*(COUNTIF($A$13:A13,venue_name)=0)),INDEX(venue_name,MATCH(1,($A$10=date_ns)*(COUNTIF($A$13:A13,venue_name)=0),0)),"")

CTRL++SHIFT确认ENTER并复制下来

....或者你可以使用不需要CTRL++的这个SHIFT版本ENTER

=IF(SUMPRODUCT(($A$10=date_ns)*(COUNTIF($A$13:A13,venue_name)=0)),INDEX(venue_name,MATCH(1,INDEX(($A$10=date_ns)*(COUNTIF($A$13:A13,venue_name)=0),0),0)),"")

在此处查看示例文件

于 2013-08-14T12:36:57.887 回答
0

似乎已被事件所取代,但考虑到 =ISERROR,正如大师所说“你必须正常重复整个公式”。(在具有 =IFERROR 的更高版本的 Excel 中不需要)。因此:

=IF(
ISERROR(
INDEX(venue_name, SMALL(IF(($A$10=date_ns)*(COUNTIF($A$13:A17,venue_name)=0), ROW(date_ns)-MIN(ROW(date_ns))+1, ""), 1))
)
,"",
INDEX(venue_name, SMALL(IF(($A$10=date_ns)*(COUNTIF($A$13:A17,venue_name)=0), ROW(date_ns)-MIN(ROW(date_ns))+1, ""), 1))
)  

第三行和第六行(INDEX ...)是“工作公式”。第一个、第五个和最后一个是 =IF 条件(如果为 TRUE,则假定需要空白结果)。第二行和第四行是 =ISERROR,如果发现错误(作为“工作公式”的结果)返回 TRUE,否则返回 FALSE。

可以表示为:=IF(工作公式错误,空白,工作公式)。

于 2013-08-15T03:36:50.297 回答