问题说明:
制作如下模版
1、 将A列内容根据D2:E8区域的条件替换成B列的文本
2、 D2:E8条件区域的内容可添加,并添加完内容后B列的内容自动更新
由于本人非IT专业,自学excel时日尚不足一年,略懂皮毛,此次班门弄斧,第一次发帖,望抛砖引玉,前辈们不吝赐教。
解决方案如下:
核心思路:
1、 通过普通公式批量转换为SUBSTITUTE多层套嵌的文本公式(B列)
2、 用EVALUATE宏表函数转化文本公式(C列)
B列公式为:
=REPT("SUBSTITUTE(",COUNTA($F$2:$F$300))&CHAR(65)&ROW()&PHONETIC($E$2:$I$300)
通过COUNTA计算条件列的个数决定需要套嵌多少层SUBSTITUTE函数,重复次数由REPT实现。
转化后的文本公式如下:
SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,"A","1"),"B","2"),"C","3"),"D","4"),"E","5"),"F","6"),"G","7")
引号、逗号、右括号都通过辅助列添加。
然后通过EVALUATE函数将文本公式转化为实际公式。
1、 自定义名称——引用位置=EVALUATE(答案!B2)
2、 在C2单元格输入=EVALUATE,向下填充即可。
到此模版已经完成。不懂EXCEL者只要将E8:I8的内容往下拖动,然后将F列和H列中的条件部分改成自己需要的内容即可。
由于PHONETIC函数不支持公式,因此符号的辅助列部分需要手工添加。
首次发帖,希望大家支持。我所有的EXCEL知识都来自于EXCELHOME论坛及EXCELHOME系列图书。本人才疏学浅,此贴意在回报EXCELHOME对我极大的帮助。如有不妥,烦请指正。
(附件表格中含有宏表函数,打开前请启用宏)