请参阅下文
我希望将表2中的“注释”连接到表1中,如图像系列中所示,而不使用TEXTJOIN()或宏。仅使用常规的Excel功能
答案 0 :(得分:0)
没有使用UDF或帮助列的情况下没有简单的解决方案。我建议使用UDF公式,它易于实现并在工作表中使用。要使用此方法,请在regular module
(module1)中输入此代码。
Function Lookup_concat(Search_string As String, _
Search_in_col As Range, Return_val_col As Range)
Dim i As Long
Dim result As String
For i = 1 To Search_in_col.Count
If Search_in_col.Cells(i, 1) = Search_string Then
result = result & " " & Return_val_col.Cells(i, 1).Value
End If
Next
Lookup_concat = Trim(result)
End Function
现在您可以像常规工作表公式一样使用此UDF。在单元格=Lookup_concat(G3,$D$3:$D$12,$E$3:$E$12)
中输入此公式I3
并将其拖到底部。
如果您只想使用常规公式,则需要使用CTRL + SHIFT + ENTER组合在单元格=IFERROR(INDEX($D$3:$E$12, SMALL(IF(($G3=$D$3:$D$12), ROW($D$3:$D$12)-MIN(ROW($D$3:$D$12))+1, ""),COLUMNS($A$1:A1)), 2),"")
中输入此公式K3
,因为它是一个数组公式。现在将formmula向右和向下拖动(估计你的公式需要走多远才能捕获所有独特的值)。
然后在单元格=CONCATENATE(K3," ",L3," ",M3," ",N3," ",O3," ")
中输入此公式J3
并将其拖到底部(将公式调整为估算的唯一值数量)。
答案 1 :(得分:0)
您需要添加辅助列才能实现目标。
假设你有ans <- apply(M, 2, function(i) toString(unlist(i)))
ans[1]
# Genes
# "PARP, BRCA1, BRCA2, PARP-1/2, BRCA"
这是数组公式(意味着你必须点击 Ctrl + Shift + Enter 总之)你应该尝试:
helper column C
现在在{=IF(OR(ROW(C1)=1,MAX(--($A$1:A1=A2)*ROW($A$1:A1))=0),B2,INDEX($C$1:C1,MAX(--($A$1:A1=A2)*ROW($A$1:A1)))&", "&B2)}
假设这是您想要获得结果的地方,您可以输入此数组公式(表示您必须单击 Ctrl + Shift + 完全输入:
column G
这样你就可以得到你期望的结果。
答案 2 :(得分:0)
有一种简单的方法可以做到这一点。 :)请参阅此Google sheet以获取工作示例。
您可以使用FILTER和JOIN功能来实现此目的:
=iferror(join(", ", filter(E$3:E$12, D$3:D$12 = G3)))
在上面的示例中,FILTER函数将查看单元格D3:D12
并尝试查找与G3
中的值匹配的行。对于匹配的行,FILTER函数将单元格E3:E12
中的值作为数组返回。
JOIN用于连接数组项以及中间的逗号。
最后,IFERROR消除了因FILTER不匹配导致的N/A
错误。
(感谢此处的原始回答https://stackoverflow.com/a/23367059/36817)