请帮我解释一下这个excel公式是什么意思?

=ROUND(MAX((AL6-3500)*0.05*{0.6,2,4,5,6,7,9}-5*{0,21,111,201,551,1101,2701},0),2)算的是个... =ROUND(MAX((AL6-3500)*0.05*{0.6,2,4,5,6,7,9}-5*{0,21,111,201,551,1101,2701},0),2)
算的是个人所得税,领导让我解释一下这个公式是什么意思,怎么算的
展开
 我来答
大野千鹤
2014-07-03 · 超过68用户采纳过TA的回答
知道答主
回答量:132
采纳率:0%
帮助的人:166万
展开全部
公式的意思是,按B列数字大小,依次取A列的数据。
类似于large函数或者rank函数,不同的地方是,遇到相同值时,位置在前的排在前面。

这是一个数组公式,同时涉及的函数比较多,所以看着晕。
弄简单一点,取5行数据看看:
姓名 分数 名次 姓名
张三 20 1 何七
李四 30 2 赵六
王五 20 3 李四
赵六 40 4 张三
何七 50 5 王五
(根据B列的成绩,得到前几名的姓名。张三和王五的分数一样,但是张三顺序靠前,所以名次排在前面。)

关键点在于:
为了取第N大值,同时避免重复值,所以这里要将b2:b6+1/row(2:6)*0.00001,意图是将行号硬拉扯进来参与排序,暗度陈仓。

把公式简化为:
=INDEX(Sheet1!$A:$A,MATCH(LARGE(Sheet1!$B$2:$B$6+1/ROW(Sheet1!$B$2:$B$6)*0.000001,ROW(A1)),Sheet1!$B$2:$B$6+1/ROW(Sheet1!$B$2:$B$6)*0.000001,0)+1)

分解如下:
第一步:
Sheet1!$B$2:$B$6+1/ROW(Sheet1!$B$2:$B$6)*0.000001:用1分别除以数据所在的将行号,再乘以一个微不足道的0.000001,再与分数相加。那么相同的分数,行号小的(在前面的)比行号大的(在后面的)就大那么一丁点。
第二步:
LARGE(...,row(a1))取得经过处理的第n大数据
第三步:
用MATCH函数在同样的数据中匹配他的位置,得到相对行号。
由于MATCH函数取得的是相对行号,比如50.0000001666667在{20.0000005;30.0000003333333;20.00000025;40.0000002;50.0000001666667}的位置是1,而数据是从B2起的,那么行号就要加1.
第四步:
用INDEX函数在A列取得相应行的数据。
……
公式以ctrl+shift+enter结束

补充:
换个思路也可以,道理类似,只是反过来
=INDEX(Sheet1!A:A,LARGE(Sheet1!$B$2:$B$500*100000,ROW(A1))-LARGE(Sheet1!$B$2:$B$500*100000-ROW(Sheet1!$B$2:$B$500),ROW(A1)))
请采纳。
眯住眼串针
科技发烧友

2014-07-03 · 有一些普通的科技小锦囊
知道大有可为答主
回答量:1.1万
采纳率:58%
帮助的人:3127万
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式