详解excel公式中if{1,0}用法(全十回).pdf

上传人:飞****9 文档编号:137864662 上传时间:2020-07-12 格式:PDF 页数:25 大小:1.71MB
返回 下载 相关 举报
详解excel公式中if{1,0}用法(全十回).pdf_第1页
第1页 / 共25页
详解excel公式中if{1,0}用法(全十回).pdf_第2页
第2页 / 共25页
详解excel公式中if{1,0}用法(全十回).pdf_第3页
第3页 / 共25页
详解excel公式中if{1,0}用法(全十回).pdf_第4页
第4页 / 共25页
详解excel公式中if{1,0}用法(全十回).pdf_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《详解excel公式中if{1,0}用法(全十回).pdf》由会员分享,可在线阅读,更多相关《详解excel公式中if{1,0}用法(全十回).pdf(25页珍藏版)》请在金锄头文库上搜索。

1、1 作者:西蜀鄙夫 xsbf (2017 年) 目目 录录 第一回 重新拼合两列数据 . 2 第二回 对数据区域的挑选 . 4 第三回 数组的长宽与数组的扩展 . 6 第四回 多个阉割式 if(1,0,xxx,)拼合数组. 8 第五回 从数组的角度理解 if(1,0,xxx,yyy) . 11 第六回 从逻辑的角度理解 if(1,0,xxx,yyy) . 14 第七回 if(1,0,xxx,yyy)嵌套 . 17 第八回 1,0嵌套的宽度问题 . 20 第九回 if(1,0,xxx,yyy)的一个经典实例 . 22 第十回 choose()函数 . 24 Excel 公式函数的运用中,时见 i

2、f(1,0,xxx,yyy)这样的结构出现,究竟是什么意思,如何 理解呢?对于许多人来说,不太好理解,本文就此详述一二,力求最通俗最详细,欢迎诸君 斧正。 2 第第一一回回 重新重新拼合两列数据拼合两列数据 1. 要想明白 if(1,0,xxx,yyy),先看个小问题,左边的数据区域中,如何把丁、辛两列挑出来 到右边这样构成一个数组区域呢? 方法一:选中 D3:D7 复制粘贴,再操作 H3:H7; 方法二:选中 D3:D7 按 CTRL 键拖动到右边。这些手动操作方法,非本文讨论的范畴,一 律无视。 2. 方法三,在 L3 格输入=d3,然后下拉,再操作另一部分;方法四:如图输入数组公式, 再

3、操作另一部分。这两种方法,其实要用“两个”公式,能否只用一个统一的公式就能 达到目的呢? 3. 试一下,图中企图用将两个数组用单纯的“+”或“0; 对应行的选择,更有甚者, 还可以是象1,0;0,1这种行列的组合。如图所示例子,这个挑选,其实相当于对 一个矩形数据区域,筛掉某些数据,留下的数据构成一个数组。 13. 上例中1,0;0,1太复杂,可以建立辅助表格,帮助观察。 6 第第三三回回 数数组组的长宽的长宽与数组的扩展与数组的扩展 14. 1,0, 中的元素排列 “个数”(也就这个数组的长与宽) 非常重要。 比如: 0,1,0,0;1,1,0,1 长为 4 宽为 2;对于单行数组来说,大括

4、号内有几个数,它的宽度就是多少, 1,0长度 为 2,1,1,1,1长度为 4,0,0,1,0,0,1,1,0,1,0长度为 10。 15. 下图中0,0,0,0的长度为 4,但设置公式范围时有 6 列,所以后两列显示“#n/a”出错信 息。 “false”跟“#n/a”是两个不同概念,前者表示未选择到数据,为“合法的空” ,后者 表示错误“非法的空” 。 16. 出现“#n/a”是由于扩展错误,上图中,要把长度为 4 的数组扩展为长度为 6,不足的 2 只好以错误值进行扩展。一个重要的特例是,数据如果是单行或单列,会得到正确的扩 展。下图中,挑选1,0,0,1的长度为 4,而被挑选的范围 F

5、3:F8 列宽为 1,要从1 份 变成4 份 ,电脑并不拒绝操作。 17. 刚才的操作, 其实相当于把 F3:F8 数据复制多个 (即数组扩展) , 然后再进行挑选。 在 Excel 7 中数组对于两边大小不一的运算时,都会扩展以适应,但是超过 2 维,扩展是以错误值 扩展的,所以一般避免这种有错误值情况的发生。 18. 单行或单列数组可以正确扩充,对于 1 个常数(数字、文本等) ,相当于特殊的单行或单 列,所以同样会扩充,如图所示, 。 8 第四回第四回 多个阉割式多个阉割式 if(1,0,xxx,)拼合数组拼合数组 19. 前面讲了用阉割式 if(1,0,xxx,)挑选数组的方法,实质是

6、从一个数组中选择某些部分,能 否再选择另一个数组选择另一部分,然后阴阳互补式的拼成一个新数组呢?这是可 以的。如图这例中, 1,0和0,1刚好相反。 20. 此例同样,两个数组选择区域的1,0刚好相反。 21. 既然可以由两部分组合,当然也可以用三部分甚至更多的部分“0,1这种行列的组合,太 复杂,一般慎用,知道有这个可能就行了。 17 第七回第七回 if(1,0,xxx,yyy)嵌套嵌套 45. if(0,1,xxx,yyy)同样跟普通 if 函数一样,是可以嵌套的,这就更复杂了。下图的例子按图 中“1-2-3”的秩序拼接数组,就用了嵌套。 46. 如何解读这个公式呢,先看公式中的后半截 i

7、f(0,1,xxx,yyy)中的 yyy 部分,这部分得到如 图结果。 47. 详细解释下, (绿色)h3:h7 列第一步单列数据扩展,第二步按0,1,0选择,得到第三 步结果。 (黄色)D3:d7 列仿此,然后再部分结果合并,得到最下图结果。需要注意的是,D3:d7 的 选择依据是0,1,0反相结果1,0,1,前面长篇累牍解释过这个原理。 18 48. 总的公式,其实变成图中浅青色两个数组的并合的问题了。 49. 公式第 1 部分,其实得到如图这样的结果,也就是扩展一下,得到一个长为 3 的数组(后 面两列空着,预留座位) 。 50. 接下来对另一块反相选择,最后拼合就是最终结果。 19 2

8、0 第第八八回回 1,0嵌套的宽度问题嵌套的宽度问题 51. 上一回的例子中,1,0这部分为什么要写这么长, “简化”点不行吗?如图所示,把 公式后半截改成这样,结果就错了。 52. 刚才的公式后半截从语法上看是正确的,就是得到下图黄色这个长为 2 的数组,但是这 个题目其实需要 3 列数据拼接而成,蓝色区域是产生的长度为 3 的数组。但问题就在于 这里,这两部分并不能直接拼接。 53. 下图的公式,其实只是一个长度为 2 的数组结构,无法将1-2-3这几列拼接而成,失 败。 21 54. 总结一下:就是说,拼接多列成一个数组时,首先要考虑这个最后得到的数组的长 度是多少,然后根据这个量去确定

9、1,0,的长度,空余的地方用 0 补充。如果公式 中前后几部分产生的数组长度不一致,会导致最后结果的失败。 22 第第九九回回 if(1,0,xxx,yyy)的一个经典实例的一个经典实例 55. 前面介绍了 if(1,0,xxx,yyy)的原理,现在介绍一个实例,也就是许多人初次见到这种结构 的出现的地方,是查找中,如图所示,怎样求图中工资呢,当然公式很多,但对一些 VLOOKUP 偏执狂来说,问题就来了,VLOOKUP 需要从左向右进行,而这里相反,无法直 接套公式。 56. 当然,交换 A、B 列可以顺利完成任务。 57. 如果不准交换,就可以用 if(1,0,xxx,yyy)解决,如图所

10、示。 (呵呵,这个就是最经典的实 例了,许多人知道 if(1,0这个东东,大概就出现在在这种状况中。注意这个公式,最后 不按 CTRL+SHIFT+回车生成数组公式,而向下拉即可。) 23 58. 这个公式的核心,就是利用 if(1,0,xxx,yyy)得到一个新的数组,这个新数组只不过并 不显示到单元格,而是存储到内存中,即内存数组;新数组的排列正好跟原来数据交换 秩序。然后 VLOOKUP 是对这个虚拟的“新数组”进行进一步运算,得到最终结果。 59. 再看一例,比刚才复杂些,增加了分红栏目,3 列都颠倒了,怎样查找呢,利用前面 的知识就可以完成, 工资 分红都用这个公式,右拉下拉。 24

11、 第第十十回回 choose()函数函数 60. 前面用了九回介绍 if(1,0,xxx,yyy)的原理,基本就完了,相信看过的朋友,应该就懂了其 原理,并且也是作一些发散性练习,本文准备到此结束。但是还有一些疑惑未解: a) 比如上一回最后的例子,对于这种 if(1,0嵌套的实例,其实基本上很难见到? b) 如果需要拼凑更 n 列,难道不是要把1,0长度扩展为 n,然后反复 if 嵌套?估计 脑袋早就绕晕了。 61. 针对上述疑惑,可以用 choose()函数,如图所示,公式中2,1相当于是指定顺序。 62. 这一例,指定一个顺序的1,2,3,4,5,然后在后面按顺序指定列,完成公式。 63

12、. 上一回的实例,可以换成这个公式,图中三个公式的结果一样。 64. 而刚才这个示例,换这个公式,这样简明多了,可读性增强。 25 65. 本文主要针对 if(1,0,xxx,yyy)的原理进行了通俗到底,简单到底详解。 最后,总结一下,if(1,0,xxx,yyy)简单地说就是为了将拼凑数据,根据数据“有选择”地 拼成一个内存数组,为其他函数提供一个新的数据区域进行下一步操作用。 学习 if(1,0,xxx,yyy),是会涉及到大量的“数组”方面的知识。 if(1,0,xxx,yyy)特点是“万能” ,只要用耐心,更复杂的数据区域都能用它拼凑出来,但可 能这样的公式超长,无法卒读,光看就眼晕。 所以通常大家都只用其最基本的形式 if(1,0,对于多一点列的拼合,应优先选用 CHOOSE 来拼合。 看完本文,相信能比较清楚地搞明白这类数组的操作用意了。好了,闲言不多说,欢迎对 本文内容斧正,诸位朋友再见。 (西蜀鄙夫 xsbf 2017 年 2 月)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号