答案1
由于您没有具体说明平局时会发生什么,因此我假设如果三列均出现平局,则结果应该是 NBT。
找到最大值:
使用以下公式:
=MAX(Q2:S2)
这给出了最大值。(假设它用于 T2)
使用名称管理器将此公式命名为 MaxV 或直接使用公式本身。
第一个如果:
=IF(Q2=MaxV,"N","")
此 IF() 打印 N 或不打印任何内容
为其他列创建公式并合并为一个方程式:
=IF(Q2=MaxV,"N","") & IF(R2=MaxV,"B","") & IF(S2=MaxV,"T","")
如果您不想使用名称管理器,那么完整的公式是:
=IF(Q2=MAX(Q2:S2),"N","") & IF(R2=MAX(Q2:S2),"B","") & IF(S2=MAX(Q2:S2),"T","")
用于&
将两个字母连接在一起,类似于使用 + 将两个数字相加。
答案2
bvaughn 的答案简洁明了,特别是如果你只有几列的话。如果你添加更多列,它也可以直观地扩展。但是,如果你有很多列,这种方法可能会变得笨拙。
如果您需要使用更多列来扩展问题,这里有一种不同的方法,其可扩展性更好。
=CHOOSE(MATCH(MAX(Q2:S2),Q2:S2,0),"N","B","T")
从内向外进行解释:
MAX(Q2:S2)
确定范围内的最大值。MATCH(MAX(Q2:S2),Q2:S2,0)
在范围内定位该值,并给出一个位置编号。CHOOSE(position,"N","B","T")
使用相同的相对位置从输出值列表中进行选择。
这种类型的公式只需将输出添加到列表中(当然还要调整范围)即可处理大量列。当列数增加时,主要部分不会改变。公式保持紧凑,因为随着列数的增加,唯一增加的是输出值列表。
替代解决方案
CHOOSE 函数之所以需要,只是因为您使用的标签与列标题不同。如果您使用列标题(本例中为“新闻”、“书籍”、“推文”),则可以使用仅引用范围的通用公式:
=INDEX(Q$1:S$1,1,MATCH(MAX(Q2:S2),Q2:S2,0))
查找最高数字的位置与之前相同,但它用于使用 INDEX 从第一行的标题中进行选择。此公式对于任何数量的列都保持不变,只需指定范围即可。