想要连接单元格中的多行数据及其值(如果存在)。如果没有可用的数据,则不应出现 Emp Id
Posted
技术标签:
【中文标题】想要连接单元格中的多行数据及其值(如果存在)。如果没有可用的数据,则不应出现 Emp Id【英文标题】:Want to concatenate multiple row data in in cell along with its values if present. Emp Id should not come if no data available infromt of it 【发布时间】:2017-09-26 14:41:31 【问题描述】:我有以下格式的数据
并期望以下格式的输出
【问题讨论】:
如果你有 Office 365 Excel 然后使用 TEXTJOIN,否则它是 vba。你试过什么? Stack Overflow 不是为我服务的代码。 请提供您迄今为止尝试过的方法示例。 你希望excel如何为你做这件事? Scott Craner- 我在 excel 中尝试使用一些连接公式,但它不起作用。你能告诉我如何在 VBA 中做到这一点 Zerk- 我尝试了一些 if 和 concatenate 公式。但这对我不起作用。能否请您帮助 VBA 【参考方案1】:使用 TEXTJOIN 是最简单的方法,但如果您愿意,也可以使用 VBA 代码。
Function Concat(rng As Range, Optional sep As String = " / ") As String
Dim rngCell As Range
Dim strResult As String
For Each rngCell In rng
If rngCell.Value <> "" Then
strResult = strResult & sep & rngCell.Value
End If
Next rngCell
If strResult <> "" Then
strResult = Mid(strResult, Len(sep) + 1)
End If
Concat = strResult
End Function
在您的情况下,您可以使用 F 列作为辅助范围并在单元格 F2 中输入 =Concat(A7:E7)。这将生成适合您需要的适当列表,减去 EMP ID 和值之间的“-”。如果您愿意,您可以使用代码来解决这个问题,但此代码对您有用。
【讨论】:
以上是关于想要连接单元格中的多行数据及其值(如果存在)。如果没有可用的数据,则不应出现 Emp Id的主要内容,如果未能解决你的问题,请参考以下文章
如果行具有匹配的 ID,则将多行中的值合并为一行(单独的单元格)。如果 ID 只存在一次,则为 NULL 值