问题:根据各员工的百分比显示员工姓名
函数公式解决:
思路:
三种解法都是利用Lookup二分法查找,查找序号除以20以后的数在累计百分比中对应员工的位置
Lookup的查找规则是按查找范围为升序数据中小于可匹配值的最大值,如E2单元格中是查找0.05在H1:H3三个数中小于0.1的最大值,即0,返回对应的“张三”;E4:E8中查找各自在H1:H3三个数中小于0.4的最大值,即0.1,返回对应的“李四”;以此类推……
但如果查找值正好是0.1或0.4时,会返回与期待不符的结果,可以在第一参数上减去一个较小数(1%%),或在第二参数上加上一个较小数(9^-9)用以修正
MMlut、Subtotal、Sumif都是生成累计求和的内存数组
MMult思路:
第一个参数建构纵横两个常数组进行比对,得出三行三列内存数组
第二个参数利用N(IF({1}……结构提取H1:H3单元格里的内容,并将内容为“百分比”的单元格转换为0
最后得出累计百分比
Subtotal和Sumif思路:
利用OFFSET(H$1,,,ROW($1:$3))生成三个平面,第一个平面是H1:H1,第二个平面是H1:H2,第三个平面是H1:H3,再利用Subtotal或Sumif将每个平面分别求和的结果生成一个新的内存数组。
原博客各种作……所以换阵地了,不过每篇都搬过来,实在有点累,想看就自己看吧:http://blog.sina.com.cn/pureiceshadow