excel函数计算求问?

来源:百度知道 编辑:UC知道 时间:2024/05/11 17:07:19
有个问题请大家帮忙:
在excel表里同行a, b, c列里分别有三个数字,可能有正有负。
如果a, b, c列这三个数字绝对值最大的记作3,其次的记作2,最小的记作1,并分别写入同一行d,e,f这三列的单元格里,这三个数的正负分别与对应的数的正负保持一致。比如如果c列的数为-120是绝对值最大的,则在f列记作-3 。
这个如何用函数公式写出来,如果要做成宏怎么写?谢谢
非常感谢几位的回答,再补充一点条件:
如果这三个数的绝对值有2个是一样的,则一样的这2个数和第三个数比较,如果这2个较小则记作1,第三个记作3,同样的正负仍然是对应前面的;反之同理。
例如三个数分别是 -2,2,8,则d,e,f分别是-1,1,3。
如果这三个数中有为0的则不变,照样记做0。
---------------------------------------------
6月21日再次补充:
经过测试过1楼和3楼的都不对,2楼的搞不懂。不过还是感谢热心的解答者。
根据我的条件我再举个例子,比如如果a,b,c分别是-2,10,-8,则d,e,f分别应该是-1,3,-2;如果a,b,c分别是-11,14,-25,则d,e,f分别应该是-1,2,-3;如果a,b,c分别是-5,5,17,则d,e,f分别应该是-1,1,3;如果a,b,c分别是4,0,-100,则d,e,f分别应该是1,0,-3等等以此类推。
谢谢大家的解答!^_^

D1=SIGN(A1)*MID(IF(COUNTIF($A1:$C1,0),"013",123),MATCH(ABS(A1),SMALL(ABS($A1:$C1),{1,2,3}),),1)
数组公式,公式在编辑状态下按ctrl+shift+enter结束公式向右复制到F1

D1输入公式
=IF(MAX(ABS($A$1:$C$1))=ABS(A1),3*(-(A1<0))+3*(A1>0),IF(LARGE(ABS($A$1:$C$1),2)=ABS(A1),2*(-(A1<0))+2*(A1>0),1*(A1>0)+1*(-(A1<0))))
注意:这是数组公式,请按ctrl+shift+enter结束确认
D1公式向右复制

数据在a1,b1,c1
选中 d1,e1,f1
在编辑栏输入
=SIGN(A1:C1)*LOOKUP(ABS(A1:C1),SMALL((ABS($A$1:$C$1)),COLUMN($A$1:$C$1)),{1,2,3})
按shift+ctrl+回车结束
然后选中 d1,e1,f1向下拖就批量处理了

三楼最好

都是高手