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

时间:2017-01-21 17:55:51

标签: excel excel-formula

我有一个表格,其中Products与成分映射,另一个表格中的成分与ID映射如下:

enter image description here

以下是我的需求:

enter image description here

这里我想替换"数据表"中的逗号分隔成分值。来自" Master Table"。

的ID

我检查了替换功能以完成此任务,但无法以某种方式设法完成。

= REPLACE(C2,1,LEN(C2),..

这里的C2,即"数据表"中的成分列。没有单一值可以轻松替换它们,它们可以组合使用,替换语句不是正确的解决方案,尽管可以通过编程方式处理,但我想以excel方式进行。

如果有人可以指导我解决这个问题,那将非常感激。

提前致谢。

2 个答案:

答案 0 :(得分:0)

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

我使用了Data>Text to ColumnsVLOOKUPConcatenate函数的组合来实现结果表。

第1步:使用Text To Column分隔数据。

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

步骤3.使用Concatenate功能将所有VLOOKUPS组合在一起。

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

答案 1 :(得分:0)

我唯一能想到的就是嵌套的SUBSTITUTE函数,如下所示:

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(C1,D1,E1),D2,E2),D3,E3),D4,E4)

此处您的成分位于D列,其各自的ID位于E列(即表2中的主表)。

由于您可能有许多成分,您可以使用CONCATENATE来创建正确的公式。假设您的食谱位于column Ecolumn F中的成分和column G中的相应成分ID:

  • SUBSTITUTE(E2,F2,G2)写入D1(其中E2,对应于数据表中“成分”列中的第一个条目,F2对应于您主人的第一个成分表,G2对应于主表中相关的第一个成分ID)
  • SUBSTITUTE写入A2
  • =ADDRESS(ROW(F3),COLUMN(F3),4)写入B2(其中F3引用您主表中的第二个成分)
  • =ADDRESS(ROW(G3),COLUMN(G3),4)写入C2(其中G3将相应的ID引用到主表中的第二个成分)
  • =CONCATENATE(A2,"(",D1,",",B2,",",C2,")")写入D2
  • 根据需要向下拖动A2:D2

您现在拥有必要的公式。复制,粘贴最后一个条目,选择Paste Values并在前面设置=

enter image description here