吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 870|回复: 21
收起左侧

[求助] 求助Excel里的文本替换

[复制链接]
zanezed 发表于 2023-11-30 09:12
总体有点像报文的加密解密。我知道如果用py的循环去写可能很简单,但是目前就希望通过excel的函数公式实现,不使用第三方插件,不使用VBA。

假设A列为原始数据,A1单元格中有一串文本(数字、符号、中文):
A3d56&#2梁0f4%Fxc
A1单元格文本的长短位数不固定

我想用 固定的字典对照表 替换 这串文本:
比如 A 替换成 埃,3 替换成 叁,& 替换成 Δ,梁 替换成 L,等等

字典大概有200个关键字及其对应的对照文字。
字典中没有对应对照的,保留原始字符。

由于要替换的关键字比较多,写在一个公式里太麻烦的话,可以把字典对照表集中放在Sheet2!A:B里。

我自己用Vlookup写了一下,发现写完之后的excel竟然达到5MB。
我猜想高手是否能用数组形式实现这个功能。
谢谢大家指教!

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

JieW_L 发表于 2023-11-30 09:44
用 vba 感觉可以缩减体积
一蟲先生一 发表于 2023-11-30 09:56
不用插件,不用VB,除了 xlookup和vlookup,没啥好方法
DingVi 发表于 2023-11-30 10:16
你可以去问问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 函数的嵌套层数。
ohte 发表于 2023-11-30 10:45
可以用SUBSTITUTE(A3,B$1,B$2)公式替换200次,替换的单元格分组隐藏
文件不大,参考链接: https://pan.baidu.com/s/1Hw3jUiWRgUqQzrlIpC1gkg 提取码: sv5i  

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
zanezed + 1 + 1 热心回复!

查看全部评分

cxx0515 发表于 2023-11-30 11:21
你就不怕你的报文和字典冲突吗?
头像被屏蔽
tl;dr 发表于 2023-11-30 12:29
提示: 作者被禁止或删除 内容自动屏蔽
jyjjf 发表于 2023-11-30 13:27
麻烦,好像VLOOKUP查找值不支持数组
紫藤,飘零叶 发表于 2023-11-30 14:11
用lamda函数写
jyjjf 发表于 2023-11-30 14:21
写了一个数组公式,默认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)))
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 15:44

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表