EXCEL获取行中最低值的列标题

在上一个问题中,在teylyn答案的帮助下,行中的最低值被成功突出显示。 如何获得最后一列中显示的列字母?

在这里输入图像说明

在这里输入图像描述

=Left(if($C4=Min($C4:$I4),$C$3&" & ","")&if($E4=Min($C4:$I4),$E$3&" & ","")&if($G4=Min($C4:$I4),$G$3&" & ","")&if($I4=Min($C4:$I4),$I$3&" & ",""),LEN(if($C4=Min($C4:$I4),$C$3&" & ","")&if($E4=Min($C4:$I4),$E$3&" & ","")&if($G4=Min($C4:$I4),$G$3&" & ","")&if($I4=Min($C4:$I4),$I$3&" & ",""))-3) 

它的丑陋…真丑。 但它确实有效。 把这个怪物放进J4里,然后抄下来。

从哪里开始描述,我认为丑陋和怪物覆盖了它! 基本上整个公式正在做的是检查行中的每个数字,以确定它是否是行中的最小值。 当这个条件成立的时候,它会返回这个数字的标题行中的值,并在它上面加上一个“&”。 然后移动到下一列并执行相同的检查,并将结果添加到前一列。 当一个数字不是最小值时,它将“”添加到没有任何结果。 在完成所有结果并build立一个以“&”结尾的string后,我们将string的左侧拉出,以string的长度减去3个字符以除去最后的“&”。

概念validation

概念验证

就像在前锋埃德的回答中所说的那样,你可以用COUNTIF缩短LEN部分,看起来像这样:

 =LEFT(IF($C4=MIN($C4:$I4),$C$3&" & ","")&IF($E4=MIN($C4:$I4),$E$3&" & ","")&IF($G4=MIN($C4:$I4),$G$3&" & ","")&IF($I4=MIN($C4:$I4),$I$3&" & ",""),COUNTIF($C4:$I4,MIN($C4:$I4))*4-3) 

不过我更喜欢MID解决scheme来(部分)跳过这样的长度检查:

 =MID(IF($C4=MIN($C4:$I4)," & "&$C$3,"")&IF($E4=MIN($C4:$I4)," & "&$E$3,"")&IF($G4=MIN($C4:$I4)," & "&$G$3,"")&IF($I4=MIN($C4:$I4)," & "&$I$3,""),4,20) 

它的工作方式应该是非常明显的。 但是,如果还有任何问题,只要问:)