我目前在Excel中使用此代码通过数组查找并返回搜索结果,但我需要根据两个标准而不是一个来调整它以进行搜索,并希望有一些帮助调整代码来做这一点。
这是我拥有的......
=IF(ISERROR(INDEX($B$1:$F$154,SMALL(IF($B$1:$B$154="Good",ROW($B$1:$B$154)),ROW(1:1)),5)),"",INDEX($B$1:$F$154,SMALL(IF($B$1:$B$154="Good",ROW($B$1:$B$154)),ROW(1:1)),5))
它目前搜索B1:B154以查找条目" Good"如果成功,则返回F列中相应单元格的内容。
我想要做的是在A栏和B栏中搜索另一个词。换句话说,执行两次搜索。如果根据这两个标准找到成功的条目,则按上述方式返回F列中单元格的内容。
非常感谢任何帮助。
答案 0 :(得分:1)
要为搜索替换添加第二个条件,请执行以下操作:
=IF($B$1:$B$154="Good",ROW($B$1:$B$154))
使用
=IF(($B$1:$B$154="Good")*($A$1:$A$154="Condition2"),ROW($B$1:$B$154))
这部分:
($B$1:$B$154="Good")*($A$1:$A$154="Condition2")
相当于:
AND($B$1:$B$154="Good",$A$1:$A$154="Condition2")
但是AND
在数组公式中通常不能很好地工作(它会返回单个值)。
另一种选择是使用嵌套的IF
语句。
如果您使用的是Excel 2007或更高版本,则还可以简化公式而不是
IF(ISERROR(INDEX(...),"",INDEX(...)))
使用:
IFERROR(INDEX(...),"")
答案 1 :(得分:1)
使用较新的AGGREGATE¹ function可以更轻松地根据渐进式(第一,第二,第三等匹配)结果进行两项标准匹配。
E4中的标准公式是,
=IFERROR(INDEX(C$1:C$999, AGGREGATE(15, 6, ROW($1:$999)/((A$1:A$999="Bad")*(B$1:B$999="Good")), ROW(1:1))), "")
根据需要填写。
¹ Excel 2010引入了AGGREGATE function。早期版本不提供。