如何将excel中相同/单个单元格中的逗号分隔值替换为逗号分隔ID?

如何将excel中相同/单个单元格中的逗号分隔值替换为逗号分隔ID?,excel,excel-formula,Excel,Excel Formula,我有一个表,其中产品与成分映射,另一个表中成分与ID映射,如下所示: 以下是我需要的: 在这里,我想用“主表”中的ID替换“数据表”中以逗号分隔的成分值 我签出了Replace函数来完成这项任务,但无法以某种方式完成 =更换(C2,1,透镜(C2) 在这里,C2即“数据表”中的“成分”列没有单个值可以轻松替换,它们可以组合使用,其中替换语句不是正确的解决方案,尽管可以通过编程方式处理相同的问题,但我希望以excel的方式进行处理 如果有人能指导我解决这个问题,我将不胜感激 提前感谢。这不是直

我有一个表,其中产品与成分映射,另一个表中成分与ID映射,如下所示:

以下是我需要的:

在这里,我想用“主表”中的ID替换“数据表”中以逗号分隔的成分值

我签出了Replace函数来完成这项任务,但无法以某种方式完成

=更换(C2,1,透镜(C2)

在这里,C2即“数据表”中的“成分”列没有单个值可以轻松替换,它们可以组合使用,其中替换语句不是正确的解决方案,尽管可以通过编程方式处理相同的问题,但我希望以excel的方式进行处理

如果有人能指导我解决这个问题,我将不胜感激


提前感谢。

这不是直接解决方案,也不是VBA解决方案,但通过手动操作和2个简单公式,这是可能的

我使用了
Data>Text-to-Columns
VLOOKUP
Concatenate
函数的组合来实现结果表

步骤1:使用
文本到列
分隔数据

步骤2:为每种成分添加
VLOOKUP
功能

步骤3.使用
Concatenate
函数将所有
vlookup
组合在一起


您可以在Google工作表中使用您的示例找到我的解决方案:

我唯一能想到的是一个嵌套的
替换函数,如下所示:

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(C1,D1,E1),D2,E2),D3,E3),D4,E4)
在这里,您的配料在D列,它们各自的ID在E列(即表2中的主表)

由于您可能有许多成分,您可以使用
串联
来创建正确的配方。假设您的配方在
列E
中,您的成分在
列F
中,相应的成分ID在
列G
中:

  • SUBSTITUTE(E2,F2,G2)
    写入
    D1
    (其中
    E2
    ,对应于数据表成分列中的第一个条目,
    F2
    对应于主表中的第一个成分,
    G2
    对应于主表中相关的第一个成分ID)
  • 替换
    写入
    A2
  • =地址(行(F3),列(F3),4)
    写入
    B2
    (其中
    F3
    引用主表中的第二个成分)
  • =地址(行(G3),列(G3),4)
    写入
    C2
    (其中
    G3
    引用主表中第二个成分的对应ID)
  • =连接(A2,“(”,D1,“,B2,”,“,C2,”)”)写入
    D2
  • 尽可能向下拖动A2:D2
现在您有了必要的公式。复制、粘贴最后一个条目,选择
粘贴值
,并在前面设置一个
=


老实说,考虑到这种逻辑,我对excel是新手,我可以通过一些javascript和C#程序来实现这一点,但我想通过excel来实现。我尝试编写了需要更多添加的替换语句。我想最好通过VBA来解决,因此[excel VBA]标记可能是合适的(但是有一些非常聪明的人在看[excel formulas]标签,他们可能会想出一个公式解决方案!),但如果您至少表明您已尝试开始解决方案,则问题总是会得到更好的回答。您尝试了什么?在哪里遇到了问题。对于公式,您将需要有多个嵌套级别或使用辅助列拆分数据。VBA将是最简单的。请阅读帮助页以获取有关、和的信息