excel怎么用公式替换

如图,以E,F列标准把A列每个单元格数据进行匹配替换,如无匹配结果返回原数值字符。例如B1得出的结果为A10列内容。求B列公式。

个数 太多 没有公式 可以 搞定
右键点工作表名,查看代码,如下代码复制进去,F5运行
Sub 替换()
For i = 1 To [e65536].End(xlUp).Row
Range("A:A").Replace Cells(i, 5).Text, Cells(i, 6).Text
Next
End Sub追问

我知道你可以的,我的好几个问题都是你帮我解决的。我都关注你了的。我把问题整理一下,你帮我重新看一下好吗?(因为我用不了VBA)。我想要的效果就如图所示,我只想到了替换的思路,如果有别的方法也行。

追答

什么叫 用不了 VBA? 如果是 WPS 安装个插件 , 就可以 用VBA了
你这个 不能直接替换, 代码 要重写, 需要用 正则

追问

好的,麻烦了。(用不了VBA是因为找了好久没找到下载能用的,都是下载了还是用不了VBA)

追答

用的什么版本?  WPS2019 么 ? 我有 安装包

邮箱 [email protected]

追问

谢谢哥,已收到。现在出现了个问题,就如下面说的,6.5^ 到底是以"6.5^"去替换的,还是以6. "5^" 去替换的

追答

如下代码

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-08-01
在B1单元格输入公式:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,$E$1,$F$1),$E$2,$F$2),$E$3,$F$3),$E$4,$F$4),$E$5,$F$5),$E$6,$F$6)
复制并下拉,即可。追答

你的数据真难处理啊!5^与1.5^、2.5^……怎么做?

追问

对哦,这又是一个问题,这堆数据我能找到的规律就是那个"^"
我要对这堆数据里"^"前面的数值统一+1 -1

追答

这样的数据真有点晕啊!
建议办法:
在每一个要加的数值前面输入一个中文句号,然后用句号分列,再用^符号分列,加数1后再用&符号把数值和文本连接即可

第2个回答  2019-08-01
你倒是直接说正题儿啊!简直是把大家玩儿了一把。
以后提问时,请珍惜答题者的时间……追问

不好意思,其实都是一样的。就是整理了一下。

追答

完全不是你想像的那样。数据的类型、结构,直接影响到公式的设计思路。

不过不知者不怪了。

如果在31行之后还有需要替换的数据,那就自己修改公式吧。

注意,你替换的数据中数字部分是升序的,所以需要从后面先开始替换,为的是保证替换后的数据不是之后将要被替换的数据。

公式有些长:

= SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,E31,F31),E30,F30),E29,F29),E28,F28),E27,F27),E26,F26),E25,F25),E24,F24),E23,F23),E22,F22),E21,F21),E20,F20),E19,F19),E18,F18),E17,F17),E16,F16),E15,F15),E14,F14),E13,F13),E12,F12),E11,F11),E10,F10),E9,F9),E8,F8),E7,F7),E6,F6),E5,F5),E4,F4),E3,F3),E2,F2),E1,F1)

追问

我知道什么原因了,就如下面说的,6.5^ 到底是以"6.5^"去替换的,还是以6. "5^" 去替换的

追答

的确存在这个问题,之前也是欠思考了。

如果是这样,VBA解决起来也是比较棘手的,要判断整数前不是带有小数点。
你A1:A6的字符串在生成时,是不是可以把含有E列数据的部分替换为单元格引用?我感觉那些地方应该是变量的。

相似回答