【问题标题】:remove duplicate value but keep rest of the row values删除重复值但保留其余行值
【发布时间】:2013-07-19 14:29:55
【问题描述】:

我有一张这样的 excel 表(csv):

我希望输出(制表符分隔)是这样的:

基本上:

  • 用空格替换重复项,但
    • 如果 col6 值与上一行不同 col1 值,应包括所有数据字段。

我正在努力创建一个可以做到这一点的公式。 如果我尝试“删除重复项”,它会删除该值并将值向上移动一行。我希望它删除重复项但不向上移动值。

【问题讨论】:

    标签: excel excel-formula excel-2010 worksheet-function


    【解决方案1】:

    鉴于重复的数据单元格彼此相邻

    并且数据在 A 列上,顶行空白,这应该可以工作。它将删除除第一次出现的重复项。

    =IF(A1=A2,"",A2)
    =IF(A2=A3,"",A3)
    .
    .
    .
    

    【讨论】:

    • 这比选定的解决方案要好。
    【解决方案2】:

    试试这个(注意,你需要一个空白的顶行(编辑:实际上,你很好,你有一个标题行)):

    =IF(A2<>A1,A2,IF(D2<>D1,A2,""))
    =IF(A2<>A1,B2,IF(D2<>D1,B2,""))
    =IF(A2<>A1,C2,IF(D2<>D1,C2,""))
    etc
    

    在顶行并向下拖动

    编辑:注意到您需要一个附加条件。

    【讨论】:

    • 非常感谢!这是完美的,有一些小的改进
    【解决方案3】:

    试试这个

    =IF((COUNTIF(A1:A$203,A1))=1,A1,"")
    

    它将计算重复次数,并且对于最后一次计数,它将保持值。

    试试COUNTIF(A1:A$203,A1),你应该很好理解其中的逻辑。

    【讨论】:

    • 有没有其他方法可以保留第一次出现的数据并用空白替换更多出现的数据?
    【解决方案4】:

    你要一个公式?我想你可以做这样的事情。虽然使用宏可能更容易:

    =IF(COUNTIF($A$2:A6,"=" & A7),"",A7)
    

    您可以使用此公式在单独的选项卡上创建一个重复的表格,以清除您不需要的行 - 或者您想要的任何行。祝你好运。

    【讨论】:

    • 这里没有考虑第二个条件。
    • @stackErr 你熟悉excel中的AND()函数吗?您可以向该 IF() 语句添加任意数量的条件。我建议您学习它 - 它避免像您接受的答案那样嵌套 IF() 语句。
    • 如果我理解正确,这就是您的建议=IF(AND($A2&lt;&gt;$A1,$F2&lt;&gt;$F1),F2,"")。该逻辑没有意义,因为它将检查两者是否为真......而接受答案中的逻辑更像if(A2&lt;&gt;A1) elseif(D2&lt;&gt;D1) else。结构。
    • @stackErr OR() 对你有帮助吗?
    • 感谢您的建议,为它创建了一个宏,所以没关系。
    【解决方案5】:

    还有另一种不涉及帮助列的方法...条件格式。

    突出显示 A2:G(无论最后一个单元格是什么)

    使用公式决定突出显示哪些单元格

    公式为=AND($A2=$A1,$F2=$F1)

    将格式设置为白色文本(或等于您拥有的任何背景颜色)

    【讨论】:

      猜你喜欢
      • 2019-10-27
      • 1970-01-01
      • 2019-06-10
      • 1970-01-01
      • 2021-05-19
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 2019-12-17
      相关资源
      最近更新 更多