Excel - 如果从IF(COUNTIF)语句返回单元格x,如何显示某个单元格?

时间:2018-02-05 03:10:13

标签: excel-formula

我有以下公式,它返回一系列单元格中的最低条件,即它将查找'严重'首先在单元格的范围内,如果它找到它,它将返回该单元格列表的整体条件为“关键”,如果不是,它将搜索“差”'等等。这用于查找零件装配的整体状况 - 如果单个零件状况不佳而所有其他零件都是新零件,那么装配应归类为状况不佳。

=IF(COUNTIF($B$2:$B$4,"Critical"),"Critical
"&"See component...",IF(COUNTIF($B$2:$B$4,"Poor"),"Poor
"&"See component...",IF(COUNTIF($B$2:$B$4,"Fair"),"Fair
"&"See component...",IF(COUNTIF($B$2:$B$4,"Good"),"Good
"&"See component...",IF(COUNTIF($B$2:$B$4,"New"),"New
"&"See component...",IF(COUNTIF($B$2:$B$4,"Unknown"),"Unknown
"&"See component..."))))))

上面的公式可以做到这一点。问题是,我还想显示返回最低条件的组件名称。因此,如果将单元格B4列为"严重",那么那将是结束IF语句的单元格。如果B4是结束IF语句的值,我想显示F4的内容。所以我的小组应该说:

Critical
See component [component name goes here]

有谁知道我怎么做到这一点?我在下面的工作Excel文件中发布了一个链接,以帮助解决问题。任何帮助将不胜感激。

Book2

1 个答案:

答案 0 :(得分:1)

我认为您所追求的是MATCHINDEX字段一起工作。

MATCH将返回行号,INDEX将返回值。

=IF(COUNTIF($B$2:$B$4,"Critical"),"Critical
"&"See component..."&INDEX($A$2:$A$4,MATCH("Critical",$B$2:$B$4,0)),IF(COUNTIF($B$2:$B$4,"Poor"),"Poor
"&"See component..."&INDEX($A$2:$A$4,MATCH("Poor",$B$2:$B$4,0)),IF(COUNTIF($B$2:$B$4,"Fair"),"Fair
"&"See component..."&INDEX($A$2:$A$4,MATCH("Fair",$B$2:$B$4,0)),IF(COUNTIF($B$2:$B$4,"Good"),"Good
"&"See component..."&INDEX($A$2:$A$4,MATCH("Good",$B$2:$B$4,0)),IF(COUNTIF($B$2:$B$4,"New"),"New
"&"See component..."&INDEX($A$2:$A$4,MATCH("New",$B$2:$B$4,0)),IF(COUNTIF($B$2:$B$4,"Unknown"),"Unknown
"&"See component..."&INDEX($A$2:$A$4,MATCH("Unknown",$B$2:$B$4,0))))))))

您可以使用相同的方法来避免笨重的代码 - 为每个值设置一个索引号,并对索引值执行MAX()MIN(),然后使用INDEX和{{ 1}}以相同的方式返回条件字符串而不是嵌套的MATCH