本期答案:参加答题的会员较多,在此谢谢大家的支持!欢迎看完本总结后继续讨论,希望能找到更好的解答方法。 一、解决的问题类型:列中数据有条件分类连接。 二、相关的问题链接: 1、查找、合并特定单元格内容 2、[求助]根据指定条件自动合并单元格内容 3、...... 三、答题结果总结: 从众答案中看,有部分答案只是针对了本题的5大类共33个数据的分类连接来解答,如果是这样,不如直接用类拟 G19=B2&B10&B13&B19&B28&B33 来得更快,所以严格来说,这些答案不应得分,因为但由于题目中的要求并未说明,故均评了1分。看来以后出题时要注意说明这一点。 四、答案解析: 1、顺向思维解答。 此类问题的难点在于Excel中没有区域(或数组)内容连接函数,为避免大量使用 & 或CONCATENATE函数中的参数,最好的方法是使用辅助列。在本题中,顺向思维解答的要点是“每一次均与前面符合要求的最后一个辅助单元格内容连接”,而lookup函数具有从后查找的数据的特点,从而不难想到使用lookup(1,0/...)或lookup(2,1/...)这一类的公式,这样一来,辅助列中的最终结果肯定是在后面,从而答案区中的公式也会用lookup函数来取得。典型的解答可参看5楼答案。 2、逆向思维解答。 从顺向思维中想一下,如果辅助列的结果反过来操作又会怎么样呢?8楼的答案用的就是这种方法。在本题中,逆向思维解答的要点是“每一次均与后面符合要求的第一个辅助单元格内容连接”,具有找到相同条件中的第一个数据的函数比较多,大家可能容易想到的是match函数,但match函数只是找到数据的位置,要得到数据需外套index或offset或indirect等函数,其实遇到这类index(match())这类嵌套公式的话,大多可用vlookup函数直接得到,因为vlookup也是一个具有找到相同条件中的第一个数据性质的函数,具体公式可参看我的答案一。写这种公式最好是“先写最后一个公式,然后上拉得到结果”。其实这种逆向思维在很早的一些解答贴中用到过,如:[求助]一个比较怪的问题!?
3、循环引用(迭代运算)解答。 我觉得这是一种函数中带有编程里For循环的新解答方法,出题时没想到过用这种方法来解答,后来是做了本期山菊花版主出的函数题后才想到用这种方法。其实思路很简单,利用每一次循环(迭代)来把数据连接到相应结果的后面就可以了,20楼的答案用的就是这种方法。需注意的是,当使用循环引用方法时,要设有数据的清空(或者称重置)功能,否则数据不断地累加会导致结果错乱,具体公式可参看我的答案二。 五、意外收获 1、由于答案区使用了合并单元格,所以有些朋友发了短信询问答案是不是不能用数组公式,其实合并单元格也是可以使用数组公式的,方法是先拆分单元格,写完数组公式后再合并即可,无意中测试了这个知识。 2、在用循环引用解答时,发现循环引用的使用次数与数据有效性中下拉项的选项个数有关,当选项个数只有1个时,循环引用只使用1次,当选项个数有多个时,循环引用就会使用2次。例如我的答案二中,循环次数设置为50(因为要统计的数据只有33个,比33大就行),而下拉项只有1个,所以当选用下拉项时,就只使用了1次循环引用,如果下拦项有多个,循环次数可设置为20(因为要统计的数据只有33个,比33/2=16.5大就行)。
[此贴子已经被作者于2007-4-23 12:30:05编辑过] |