哈哈,和czzqb版主的帖子撞车了,不知道自己是否会有盗版嫌疑,哈哈,自己去看看先,呵呵 感觉还有有点不同的,呵呵。 数组公式,我觉得来个本末倒置,具有数组公式运算特性的就当数组公式好了,呵呵。不在乎概念,在乎灵活运用也,呵呵 ======================================================================================== 具体例子 11 列合并 =IF({1,1,1,1,1,1,0,0,0,0,0},IF({1,1,1,1,1,0},IF({1,1,1,1,0},IF({1,1,1,0},IF({1,1,0},IF({1,0},_X1,_X2),_X3),_X4),_X5),_X6),IF({1,1,1,1,1,1,1,1,1,1,0},IF({1,1,1,1,1,1,1,1,1,0},IF({1,1,1,1,1,1,1,1,0},IF({1,1,1,1,1,1,1,0},_X7,_X8),_X9),_X10),_X11)) 这个是列合并公式,呵呵。很夸张吧,稍后会稍作解释。 ======================================================================================== 稍后就是现在,呵呵,这里XI 都代表一列。如果是行,看懂了你就会变化了,呵呵 解释 IF函数合并理解: if({1,0},tc,fc) IF原理就是 条件 为 TRUE 就反回 TRUE部(tc),FALSE 就返回FALSE(fc)。 如果条件是个数组,那么在循规蹈矩以上原则下还要注意一一对应性。条件中处于N列的元素为 TURE,那么返回时也要返回 TRUE部 的第 N 列 值。(核心) 所以上面的公式结果就是 {tc,fc}. 体会:if({0,1},tc,fc)={fc,tc} -------------------------一道优美的分割线,呵呵,臭美,哈哈------------------------------ if({1,1,0},if({1,0},tc1,fc1),fc2)=if({1,1,0},{tc1,fc1},fc2)={tc1,fc1,fc2} 1 ---> if({1,0},tc1,fc1) 中 返回第一列数据 --------->{tc1,fc1}中第一列数据--->tc1 1 --->if({1,0},tc1,fc1) 中 返回第二列数据 --------->{tc1,fc1}中第二列数据--->fc1 0---->fc2 中 返回第三列数据--------{fc2,fc2,fc2}-----------fc2 :此处是我的猜想,我称为 单值 的维数自适应性,呵呵。 体会:if({1,0,0},if({0,1},tc1,fc1),fc2)={fc1,fc2,fc2} ----------------------有一道优美的分割线,看天涯一网友的帖子受感染了,呵呵----------- 如果我再讲if({1,1,1,0},...,...)那么我绝对要佩服自己了,磨叽死了,呵呵 我发觉公式处理这里合并不是很擅长,用OFFSET数组公式 我发觉会出问题,结果为VALUE,没有深究。用IF吧写公式的时候要注意方式 否则很容易把嵌套关系混淆得一塌糊涂的一塌糊涂,呵呵。 我建议 从里面最小的IF写起,然后 一个一个进行外包,注意没有 把外层的IF条件 前边都是1,后面是0,而1的个数正好对应内部IF结果的列数,这样很清晰了,不容易写错。
[此贴子已经被作者于2008-8-12 1:50:00编辑过] |