excel,求公式。估计需要用宏来解决,请把宏的编写方法和代码留下,如果不会或不留公式,请不要回答。

AV中返回AK1~AO1的值,每一行的数据,是一一对应的,例:AK1和AQ1是同一组数据,后面判定时会用到。判定条件:
1,如果同一行中,AK~AO存在唯一的最大值,即返回对应的AK1~AO1的值,例序号1行,AO2最大,且唯一,所以返回AO1即5。
2,如果最大值不唯一,则对比两个最大值在AQ~Au中的值,取大的那一个,例序号4行,AL5=AN5=max,则对比AR5>AT5,所以,返回2。
3.如果最大值不唯一,且在AQ~AU中这些最大值对应的值也有不能判断大小的,则返回0,例序号5行,前面四个数字都是最大的,且相等,对比后面的数据,前两个也是最大且相等的,所以无法判断最大值,则返回0.
注:还有一个问题,如果数列需要变成六列或七列,同时第二个条件变成比小(第一个条件还是比大),公式又该如何。(我这个是需要在AV中往下复制的,所以无论用哪种方式,请考虑要可以复制)

有点麻烦,

感觉用VBA 简单点,

6  7  列什么的 有时间再研究

这是 现条件下 AV2 公式, 按Ctrl+Shift+Enter结束公式:

附件验证OK

 

=IF(COUNTIF(AK2:AO2,MAX(AK2:AO2))=1,INDEX(AK$1:AO$1,MATCH(MAX(AK2:AO2),AK2:AO2,0)),IF(COUNTIF(AQ2:AU2,MAX(IF(AK2:AO2=MAX(AK2:AO2),AQ2:AU2)))=1,INDEX($AQ$1:$AU$1,MATCH(MAX(IF(AK2:AO2=MAX(AK2:AO2),AQ2:AU2)),AQ2:AU2,0)),0))

 

 

追问

结果是正确的,我想变更一下,发现看不懂,只有再麻烦你一下

条件1还是比大,AX~BC,条件2变成比小,就是如果有两个最大值的时候,BE~BJ中对应的看哪个小,条件3不变,还是无法比较时返回0。

麻烦直接给我公式,谢谢

追答

有空给你写VBA吧, 需要的话,私信我

最近总有 条狗跟着我,。。。又来找shi吃,哎。。。。无语。。。原谅它了。留着天天看狗叫也不错。。,让你见笑了
发现 原来的公式 都有点问题,更新中
等会一起写给你

6列的公式 : BK2: 按Ctrl+shift+Enter结束:

=IF(COUNTIF(AX2:BC2,MAX(AX2:BC2))=1,INDEX(AX$1:BC$1,MATCH(MAX(AX2:BC2),AX2:BC2,0)),IF(SUM(N((IF(AX2:BC2=MAX(AX2:BC2),BE2:BJ2,1000)=MIN(IF(AX2:BC2=MAX(AX2:BC2),BE2:BJ2,1000)))))=1,INDEX($BE$1:$BJ$1,MIN(IF(IF(AX2:BC2=MAX(AX2:BC2),BE2:BJ2,1000)=MIN(IF(AX2:BC2=MAX(AX2:BC2),BE2:BJ2,1000)),COLUMN(BE2:BJ2)-56))),0))

5列的公式:
AV2: 按Ctrl+shift+Enter结束:
=IF(COUNTIF(AK2:AO2,MAX(AK2:AO2))=1,INDEX(AK$1:AO$1,MATCH(MAX(AK2:AO2),AK2:AO2,0)),IF(SUM(N((IF(AK2:AO2=MAX(AK2:AO2),AQ2:AU2,-1000)=MAX(IF(AK2:AO2=MAX(AK2:AO2),AQ2:AU2,-1000)))))=1,INDEX($AQ$1:$AU$1,MIN(IF(IF(AK2:AO2=MAX(AK2:AO2),AQ2:AU2,-1000)=MAX(IF(AK2:AO2=MAX(AK2:AO2),AQ2:AU2,-1000)),COLUMN(AQ2:AU2)-42))),0))

温馨提示:答案为网友推荐,仅供参考
大家正在搜