在 Excel 中,如果任何文本与单元格范围内的值匹配,如何替换单元格中的所有文本实例)

在 Excel 中,如果任何文本与单元格范围内的值匹配,如何替换单元格中的所有文本实例)

为了方便此工作簿的用户,我设置了 J 列的数据验证(从 Sheet2 中提取值),以便选择多种事件类型(学术日历、艺术展览等)。

我必须使用一些代码才能实现这一点,但我找到了一个 YouTube 视频来指导我,所以我缺乏 Excel 编码经验并没有阻碍我。

为了将此工作表导入另一个程序,我不能将“学术日历”作为事件类型,我需要其对应代码“et-acacal”。对应代码位于包含我的事件类型的工作表的下一列中。

本质上我需要用“et-acacal”替换“学术日历”的每个实例,用“et-artgal”替换“艺术展览”,以及用“et-acacal,et-artgal”替换各种事件类型的组合,例如“学术日历,艺术展览”

我已经想出了一个非常糟糕的方法来实现这一点,即使用多个 SUBSTITUTE 函数(见下文),但设置起来很繁琐,我不得不相信有一种更简单的方法可以做到这一点。我只有 30 种不同的事件类型,如果我有 100 或 200 种会发生什么?

=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(J2,Sheet2!$A$30,Sheet2!$B$30),Sheet2!$A$29,Sheet2!$B$29),Sheet2!$A$28,Sheet2!$B$28),Sheet2!$A$27,Sheet2!$B$27),Sheet2!$A$26,Sheet2!$B$26),Sheet2!$A$25,Sheet2!$B$25),Sheet2!$A$24,Sheet2!$B$24),Sheet2!$A$23,Sheet2!$B$23),Sheet2!$A$22,Sheet2!$B$22),Sheet2!$A$21,Sheet2!$B$21),Sheet2!$A$20,Sheet2!$B$20),Sheet2!$A$19,Sheet2!$B$19),Sheet2!$A$18,Sheet2!$B$18),Sheet2!$A$17,Sheet2!$B$17),Sheet2!$A$16,Sheet2!$B$16),Sheet2!$A$15,Sheet2!$B$15),Sheet2!$A$14,Sheet2!$B$14),Sheet2!$A$13,Sheet2!$B$13),Sheet2!$A$12,Sheet2!$B$12),Sheet2!$A$11,Sheet2!$B$11),Sheet2!$A$10,Sheet2!$B$10),Sheet2!$A$9,Sheet2!$B$9),Sheet2!$A$8,Sheet2!$B$8),Sheet2!$A$7,Sheet2!$B$7),Sheet2!$A$6,Sheet2!$B$6),Sheet2!$A$5,Sheet2!$B$5),Sheet2!$A$4,Sheet2!$B$4),Sheet2!$A$3,Sheet2!$B$3),Sheet2!$A$2,Sheet2!$B$2)

答案1

管理此问题的最佳方法是使用VLOOKUP函数。这将在单元格 J2 中查找事件名称的相关事件代码。

=VLOOKUP(J2,Sheet2!$A$1:$B$999,2,0)

但是,在同一个单元格中设置多个条件会更加复杂。要在同一单元格中实现多个条件的 VLOOKUP,您需要用另一个过于复杂的嵌套函数替换一个过于复杂的嵌套SUBSTITUTE函数 - 鉴于这就是您询问的原因,我不会深入讨论它的工作原理(大量笨拙的IFs、MIDs 和SEARCHes)。

最好的办法是尝试重新组织电子表格,这样您就不会试图将所有条件都放入一个单元格中。Excel 并不是专门为此设计的 - 单元格是基本单位(因此得名)。尝试使用多列,然后VLOOKUP对每一列执行 s。

相关内容