0)*(D$2..." />
当前位置:知识百答>生活百科>EXCEL HOME

EXCEL HOME

2024-10-18 08:37:28 编辑:join 浏览量:513

EXCEL HOME

这个公式的意思如下:

1,首先判断D97是否为空" ",如果为空" ",则返回空值" "

2,D97不为空,则进行计算

D97-IF(D97<600,LOOKUP(2,1/((D$2:D96>0)*(D$2:D96<600)),D$2:D96),LOOKUP(2,1/((D$2:D96>600)*(D$2:D96<999)),D$2:D96))

这里面主要是要了解LOOKUP(2,1/((D$2:D96>0)*(D$2:D96<600))的意思,((D$2:D96>0)*(D$2:D96<600)这个语句用在lookup中会产生一个序列,对D2到D96的数据进行一个一个的判断,D2是否大于0,大于0则返回ture,ture对应的数字为1,反之则返回false,false对应的是0,同时是否小于600,同理小于600返回1,反之返回0,然后把两个判断的返回值相乘作为序列的第一个数,这样只会有两个结果,1或者0,对D2到D96判断完后,产生的序列就是类似{1,1,1,0,0,1,0...}这样的结构,然后再作为除数被1除,产生序列{1,1,1,#DIV/0!,#DIV/0!,1.....},然后我们把函数写清除一点就是lookup(2,{1,1,1,#DIV/0!,#DIV/0!,1.....},D2:D96) lookup在序列中找2,然后返回D2到D96对应的值,你可以看到lookup是不可能找到2的,所以他只能返回序列中最后一个1(如果lookup找不到相等的值则使用数组中小于或等于2的最大数值),即提取出D2到D96中最后一个大于0小于600的数.

同理LOOKUP(2,1/((D$2:D96>600)*(D$2:D96<999)),D$2:D96))),则可以提取D2到D96中最后一个大于600小于999的值.

所以,这个公式最后的意思就是:

如果D97为空,则填充空值,否则如果D97小于600,则用D97的值减去D2到D96中最后一个大于0小于600的值,并且把差放在当前单元格,如果D97大于等于600,则用D97的值减去D2到D96中最后一个大于600小于999的值,并且把差放在当前单元格.

天,码字好辛苦!不过只要你能看明白就满足了.

标签:EXCEL,HOME

版权声明:文章由 知识百答 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.zhshbaida.com/life/396643.html
热门文章