根据条件查找范围内最常用的文本

时间:2018-06-26 15:53:56

标签: excel vba excel-vba lookup

我有以下CSE公式来返回一个范围内最常用的文本,不包括空单元格。

=INDEX(A4:D4,MODE(IF(A4:D4<>"",MATCH(A4:D4,A4:D4,0))))

我的问题是,当范围中只有一个值时,该公式返回#NA。如何调整公式以返回该值?

1 个答案:

答案 0 :(得分:2)

如果仅考虑存在单个单元格而导致问题并希望进行检索,请使用此CSE:

=IF(COUNTIF(A4:D4,"*"),  INDEX(A4:D4,MATCH(FALSE,ISBLANK(A4:D4),0)),INDEX(A4:D4,MODE(IF(A4:D4<>"",MATCH(A4:D4,A4:D4,0)))))

Otherise,通常具有所有不同的值,或者通常没有模式,

您可以计算不同的值,并使用针对列数测试的值。如果相等,则没有模式,因此请使用If语句来默认处理True。

=IF(SUMPRODUCT(1/COUNTIF(A4:D4,A4:D4))=COLUMNS(A4:D4),"Do Something",INDEX(A4:D4,MODE(IF(A4:D4<>"",MATCH(A4:D4,A4:D4,0)))))

还是CSE,因此请按 Ctrl + Shift + Enter 输入。

上面公式的这一位计算唯一值:

SUMPRODUCT(1/COUNTIF(A4:D4,A4:D4))