本帖最后由 onthetrip2008 于 2012-12-7 20:03 编辑
人贵于自省 发表于 2012-12-7 17:33
看了老师的帖子,想了想这个问题,那么公式IF({0,1},A1:A10,B1:B10)和IF({1,0},B1:B10,A1:A10)其实表的就是 ...
这个问题可以搜索一下胡剑版主的帖子,阐述得很清楚。其实,这跟数组的运算一样,if的每个参数都会自动扩展到相同的维度。
为了简化说明,假如A1:A3单元格中的值分别是1,2,3,B1:B3的值分别是A,B,C(为了书写方便,这里A,B,C就不加引号了).
公式IF({0,1},A1:A3,B1:B3)中由于第一参数是水平数组,而第二三参数实际上是垂直数组,因此三个参数都会自动扩展成相同的维度和维数,即,扩展成if{0,1;0,1;0,1},{1,1;2,2;3,3},{A,A;B,B;C,C}),然后按照第一参数的顺序依次在二三参数中去寻找相应的值:第一参数的第一个值0(false)得到第三参数的第一个值A,第一参数的第二个值1(true)得到第二个参数的第二个值1,第一参数的第三个值0(false)得到第三参数的第三个值B,依次类推,于是此公式按F9得到的结果就是{A,1;B,2;C,3}
也许你觉得像这样理解太繁琐了,但这是原理,基于这样的原理,你就能理解为什么公式=IF({0,1},F1:H1,B1:B3)得到的结果会是{"A",2,#N/A;"B",2,#N/A;"C",2,#N/A}了,呵呵。(这个公式中假设F1:H1的值是1,2,3) |