求助Excel里的文本替换
总体有点像报文的加密解密。我知道如果用py的循环去写可能很简单,但是目前就希望通过excel的函数公式实现,不使用第三方插件,不使用VBA。假设A列为原始数据,A1单元格中有一串文本(数字、符号、中文):
A3d56梁0f4%Fxc
A1单元格文本的长短位数不固定
我想用 固定的字典对照表 替换 这串文本:
比如 A 替换成 埃,3 替换成 叁,& 替换成 Δ,梁 替换成 L,等等
字典大概有200个关键字及其对应的对照文字。
字典中没有对应对照的,保留原始字符。
由于要替换的关键字比较多,写在一个公式里太麻烦的话,可以把字典对照表集中放在Sheet2!A:B里。
我自己用Vlookup写了一下,发现写完之后的excel竟然达到5MB。
我猜想高手是否能用数组形式实现这个功能。
谢谢大家指教! 用 vba 感觉可以缩减体积 不用插件,不用VB,除了 xlookup和vlookup,没啥好方法 你可以去问问New Bing有啥好办法,这是我用你的问题问的回答:
你可以使用 SUBSTITUTE 函数嵌套的方法来实现批量替换文本。假设你的字典对照表在 Sheet2!A:B 中,A 列是原始字符,B 列是替换后的字符,你可以在 B1 单元格输入以下公式:
=SUBSTITUTE (SUBSTITUTE (SUBSTITUTE (A1,Sheet2!A2,Sheet2!B2),Sheet2!A3,Sheet2!B3),Sheet2!A4,Sheet2!B4)
这个公式会先用 Sheet2!B2 中的字符替换 A1 中的 Sheet2!A2 中的字符,然后用 Sheet2!B3 中的字符替换替换后的文本中的 Sheet2!A3 中的字符,以此类推。你可以根据你的字典对照表的长度,增加或减少 SUBSTITUTE 函数的嵌套层数。 可以用SUBSTITUTE(A3,B$1,B$2)公式替换200次,替换的单元格分组隐藏
文件不大,参考链接: https://pan.baidu.com/s/1Hw3jUiWRgUqQzrlIpC1gkg 提取码: sv5i 你就不怕你的报文和字典冲突吗? 麻烦,好像VLOOKUP查找值不支持数组 用lamda函数写 写了一个数组公式,默认sheet1的A1是待替换的数据,sheet2的A列和B列分别对应查找值及对应字典值
=CONCAT(IFERROR(INDIRECT("Sheet2!B"&MATCH(MID($A$1,ROW(INDIRECT("1:"&LEN($A$1))),1),Sheet2!A1:A3,0)),MID($A$1,ROW(INDIRECT("1:"&LEN($A$1))),1)))