我正在尝试找到一个可以帮助我执行以下操作的功能(不使用VBA)。所以假设我有以下数据:
我需要它是以下格式:
基本上,我需要将所有关联的sku(列F)从parent_sku(列E)到G列逗号分隔。
答案 0 :(得分:0)
我不太理解你的要求 但你可以尝试下一个
= E7&安培; “ - 小,” &安培; E7&安培; “ - 中,” &安培; E7&安培; “ - 大,” &安培; E7&安培; “ - XL,” &安培; E7&安培; “ - 2XL”
答案 1 :(得分:0)
基本上,它就像一个VLOOKUP,它只连接一个与查找值相关联的单元格中的每个值。
答案 2 :(得分:0)
Excel的本机工作表公式不会处理将未知数量的字符串连接在一起,并且补偿可能的最大数量可能会变得混乱。用户定义函数¹(又名UDF)利用VBA在进行数字或字符串比较和连接时处理大量行的循环的能力。
我很难理解你的数据;看来你在541468任意交换506并且只暗示 sku 数据与你提供的截图有相同的替换。对于更通用的解决方案,我只考虑E13:F13为506而不是541468。
<强> build_SKU_List UDF 强>¹
Function build_SKU_List(sku As Variant, parent_sku As Range, skus As Range, _
Optional delim As String = ", ")
Dim str As String, rw As Long
With skus.Parent
Set skus = .Cells(parent_sku.Rows(1).Row, skus.Column). _
Resize(parent_sku.Rows.Count, skus.Columns.Count)
End With
For rw = Application.Match(sku, parent_sku, 0) _
To Application.Match(sku, parent_sku) - 1
str = str & skus(rw) & delim
Next rw
build_SKU_List = Left(str, Len(str) - Len(delim))
End Function
在您的样本数据中,G2 as,
=IF(E2=F2, build_SKU_List(E2,E:E,F:F ), "")
如果需要,覆盖默认的&lt;逗号&gt;&lt; space&gt; 分隔符。结果应类似于以下内容。
¹用户定义函数(又名UDF)被放入标准模块代码表中。点击 Alt + F11 ,当VBE打开时,立即使用下拉菜单插入►模块( Alt + 我,中号)。将功能代码粘贴到标题为 Book1 - Module1(Code)的新模块代码表中。点击 Alt + Q 返回工作表。