在excel中根据一列与另一列的匹配项合并另一列

qrjkbowd  于 11个月前  发布在  其他
关注(0)|答案(2)|浏览(99)

在E列中,我试图将D列合并到下一个单元格E中,如果B列包含匹配项,则每个新单元格之间都有一个“/”。如果没有匹配项,则只需从D列中取值。如果您查看最终目标,它会解释得更好一点。我尝试了if(Match(但似乎不起作用。谢谢!

Explanation ProductID   Qty Location Notes  (END GOAL)
RMA-1234    SKU1         1      A1A1         A1A1
RMA-7444    SKU2         1      A1A2         A1A2
RMA-9837    KSC U        1      A1A6         A1A6/A1A7/A1A8
RMA-5837    KSC U        1      A1A7         A1A6/A1A7/A1A8
RMA-6342    KSC U        1      A1A8         A1A6/A1A7/A1A8

字符串

byqmnocz

byqmnocz1#

可以使用VBA,在有匹配项时遍历b列中的所有单元格,直到没有匹配项,然后用斜线连接这些值。
Ex.

Dim tempHolder as String
   For Each cell In yourWorkbook.Sheets(1).Range("B1:B6")
       If tempHolder == cell.Value Then
              'write your value and a "/" to the adjacent cell if there is a match to previous
       Else if tempHolder == ""
              'write singular values to adjacent cell
       End If
       tempHolder = cell.Value
   Next cell

字符串
这只是一个例子,如果你使用它,你必须为你的应用程序稍微调整一下,并编写代码,在相邻的单元格中插入你的连接值。

bwntbbo3

bwntbbo32#

您可以巧妙地使用内置的Excel公式来实现这一点。
下面是工作表,每个步骤都被分解了:


的数据
1.确保数据按ProductID排序
1.创建完整列表公式:=IF(B1=B2,E1&"/"&D2,D2)
1.计数公式:=COUNTIF($B$2:$B$11,B2)
1.查找第一个示例公式:=MATCH(B2,$B$2:$B$11,0)
1.完整列表与斜杠公式:=OFFSET($B$1,G2+F2-1,3)
将所有这些公式从第2行向下拖到数据集的末尾。
我把这些步骤分解出来,这样你就可以更容易地理解了。但是,你也可以把这些都写在两列中。创建完整列表列和另一列,其中包含以下公式(它将我的示例中的最后四列连接在一起):=OFFSET($B$1,MATCH(B2,$B$2:$B$11,0)+COUNTIF($B$2:$B$11,B2)-1,3)

相关问题