【问题标题】:Excel Merging Cells into one column on bulk dataExcel将单元格合并到批量数据的一列中
【发布时间】:2018-02-02 13:20:10
【问题描述】:

我在处理来自布局错误的供应商的产品数据时遇到了很大的困难。我希望规格在每个产品的单独列中。但是,他们将它们列在 2 列中,这让生活变得困难。

我有一个想要使用的公式,但是,我需要将其向下拖动并跳过不属于该产品的行。

例如:C2 到 C8 和 D2 到 D8 包含产品 10000ES 的数据,下一个产品需要从 C9 到 C18 和 D9 到 D18 的数据。

我希望使用 TO CONCATENATE 的公式,因为我希望在我的 HTML 网站中使用它。但是如果我把它拖下来,它会捕获我不想要的细胞。

=CONCATENATE("<tr>",F2,"<tr>",F3,"<tr>",F4,"<tr>",F5,"<tr>",F6,"<tr>",F7,"<tr>",F8,"<tr>",F9,"<tr>",F10,"<tr>")

【问题讨论】:

  • 向下拖动时希望新公式是什么?
  • 你能准确地显示你想要什么输出吗?您的公式仅在您的屏幕截图中使用&lt;tr&gt;,您还使用&lt;th&gt;。不清楚你想要什么输出。
  • 为什么不在工作表上使用过滤器来显示您想要连接的唯一数据?

标签: excel excel-formula excel-2016 vba


【解决方案1】:

我想我可以根据我在单元格 G2 中的输出来确定您的目标。试试这个:

Sub TryThis()

Dim rng As Range, writeto As Range
Dim outpt As String

Set rng = ActiveSheet.Range("B1:D38") ' set this to cover the range down to the bottom

Set writeto = ActiveSheet.Range("G:G") ' this is the column to output to

For Each rw In rng.Rows
    If rw.Cells(1, 2) <> "" Then
        If rw.Cells(1, 1) = 1 Then
            writeto.Cells(writeto.Rows.Count, 1).End(xlUp).Offset(1, 0) = outpt
            outpt = ""
        End If
        outpt = outpt & "<tr>"
        outpt = outpt & "<th>" & rw.Cells(1, 2) & "</th>"
        outpt = outpt & "<td>" & rw.Cells(1, 3) & "</td>"
    End If
Next
outpt = outpt & "<tr>"
writeto.Cells(writeto.Rows.Count, 1).End(xlUp).Offset(1, 0) = outpt
End Sub

【讨论】:

  • 非常感谢,我刚做了这个,效果很好。非常感谢您的快速响应和帮助。
  • 只有一个问题,如何在 Cell H2 的 ModelNo 中添加额外的代码?就这样我知道什么规格与什么型号匹配。亲切的问候
猜你喜欢
  • 2021-11-01
  • 2014-10-31
  • 2021-12-21
  • 1970-01-01
  • 2011-12-29
  • 2019-02-11
  • 1970-01-01
  • 2017-02-24
  • 1970-01-01
相关资源
最近更新 更多