在E栏中,我试图将列D合并为下一个单元格E,其中" /"如果列B包含匹配,则在每个新单元格值之间。如果没有匹配,那么只需从D列中获取值。如果你看一下最终目标,它会更好地解释。我试过了(匹配(但这似乎不起作用。谢谢大家!
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
答案 0 :(得分:0)
当匹配时,可能使用VBA并遍历列b中的所有单元格,直到没有匹配为止,然后将值与斜线连接起来。
实施例
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
这只是一个样本。如果您使用它,您必须为您的应用程序稍微调整一下,并编写在相邻单元格中插入连接值的代码。
答案 1 :(得分:0)
凭借一些独创性,您可以使用内置的Excel公式来实现这一目标。
以下是分解每个步骤的工作表:
ProductID
=IF(B1=B2,E1&"/"&D2,D2)
=COUNTIF($B$2:$B$11,B2)
=MATCH(B2,$B$2:$B$11,0)
=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)