首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在保持列行顺序的同时,根据IF条件合并或添加行

如何在保持列行顺序的同时,根据IF条件合并或添加行
EN

Stack Overflow用户
提问于 2019-03-27 23:05:58
回答 1查看 56关注 0票数 0

我需要合并几张工作表并保持数据的完整性。我已经设法将问题简化到下面的例子中,希望能得到一些帮助。这两列必须合并为一列。列中的数据必须保持原来的顺序,因为每个单元格都是引用时间数据的代码。重复项需要减少到一个条目,因为整个数据集稍后将被地理编码,并且不允许重复项。

数据是复杂和混乱的,但本质上,我无法解决的问题可以人为地简化为以下内容:

编辑:黄色公交站点按给定顺序在下列站点代码处停靠。蓝色公交车按给定顺序在下列站点代码处停靠。公共汽车停止的顺序不能改变。输出是一个列表,其中只包含一次所有停止代码,并保留两个列表中的顺序。

我想将其更改为:

颜色编码只是为了让读者在这里更清楚。绿色表示重复项减少到1的位置(这将允许我针对代码vlookup数据,并在同一行中输入来自两个工作表的数据。

代码所在的顺序必须得到维护,所以我认为我只需要将所有数据下移。

所以,这是,(从概念上讲),我在第一阶段试图做的事情。

每一行都保留了数据的顺序,但它分布在足够的行中,以便在一列中有足够的空间容纳这两列。重复项占据行号较大的项的位置。

解决方案的其余部分遵循程序。然后,我可以删除重复的代码,并创建一个包含所有值的新列表,然后删除空格。

所以,如果我能到那里,我应该没问题。

因此,据我所知,我需要匹配两个公式:

代码语言:javascript
复制
    =MATCH(A1,$B$1:$B$11,0)
=MATCH(B1,$A$1:$A$11,0)

但我不确定这是否是真正的方向。它给出了出现公共条目的行号,但我不确定如何重新创建必要的位置。也许我需要创建这些虚拟列,然后计算必要的总行数,但是如何在出错之间做到这一点呢?或者,使用动态运行偏移量。但也不确定该怎么做。我发现很难理解它。

在我看来,每个值的行号都等于它上面两列中唯一值的数量。

非常感谢您提出的任何建议/解决方案。我已经试着减少这个问题,并让它尽可能的清晰。如果任何人可以看到解决方案,也可以看到我需要集中学习的地方,也欢迎关于特定培训领域的建议。干杯D

EN

回答 1

Stack Overflow用户

发布于 2019-03-29 07:20:48

我认为使用VBA更容易解决您的问题。假设您在A列和B列(即第1列和第2列)中工作。在您的示例中,您有两列和11行,由于您希望逐行处理数据,因此row是外层循环,column是内层循环:

代码语言:javascript
复制
Sub Indexing()
Dim irow, icol, count As Integer
Dim lookIn, FoundRange As Range
count = 1
For irow = 1 To 11:
    For icol = 1 To 2:
            Cells(irow, icol).Select
            Selection.Copy
            Set lookIn = Range("F1:F" & count)
            Set FoundRange = lookIn.Find(what:=Cells(irow, icol).Value, lookIn:=xlFormulas, lookat:=xlWhole)
            If FoundRange Is Nothing Then
                Range("F" & count).Select
                ActiveSheet.Paste
                count = count + 1
            End If
    Next icol
Next irow

End Sub

这将产生以下结果,并在F列中输出:

请注意,顺序与您的稍有不同,但它更有意义。在您的结果示例中,68之前有113,尽管第4行中出现的第一个数字是68。还有其他的不同,所以可能我误解了你想要的顺序。

您可以按如下方式调整此代码:

  • 如果您有更多的列,只需将icol循环中的2替换为所需的列数。
  • 如果您有更多的行,则只需将irow循环中的11替换为所需的行数。
  • 如果您希望将其写入其他列(而不是现在的F列),则只需将F替换为所需的列字母。

如果您不熟悉宏,并且需要帮助来设置它,请让我知道。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55380457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档