【问题标题】:To compare two cells in excel and then return the row比较excel中的两个单元格然后返回行
【发布时间】:2016-01-28 13:37:36
【问题描述】:

这个场景是一个包含 97K 行的 Excel 表格,其中包含相似的电子邮件地址,我想比较 Excel 表格中的备用单元格并获得唯一的电子邮件地址。 假设它们是 4 列

  1. A 包含名称
  2. B 包含电子邮件地址
  3. C 包含类型
  4. D 包含最新更新的日期时间

但条件是:-

  1. 如果 B 包含任何 2 或 3 个具有相同电子邮件地址的单元格,则转到下一列,即 C
  2. 在 C 列检查类型
  3. 如果所有人都包含类型为 LEAD/CONTACT,则转到 C 列并检查最新更新并获取该行。
  4. 如果匹配电子邮件的人包含类型为 LEAD 且另一种为 CONTACT,则获取类型为 CONTACT 的行
  5. 如果类型为空白,则获取包含任何类型(LEAD 或 CONTACT)的行。

那么任何人都可以帮助我,这可以多快完成?现在我正在一一手动进行。短或 sn-p 方法是可观的。 谢谢。这将是一个很大的帮助

【问题讨论】:

  • 您是否需要多次执行此操作才能要求 VBA?如果没有,为什么不首先对电子邮件的数据进行排序,然后再按类型对数据进行排序。功能区中还实现了一个功能,用于删除双倍数据(尽管我不确定数据被删除的确切标准)。如果你真的想用 VBA 来做,你可能不得不从某个地方开始,为什么不从一个单元格与另一个单元格比较开始。 :)
  • 比较单元格可以通过“If Cells(A1).value = Cells(b1).value Then”轻松完成。您还可以使用 Cells(Row, Col) 获取单个单元格的坐标。对于 Row 和 Col,您可以创建一个 For-Loop,这将导致单元格范围是动态的。
  • 是的..它们是 96K 记录,几乎所有其他记录都有重复的电子邮件。

标签: vba excel


【解决方案1】:

按以下顺序对数据进行排序:

  1. 电子邮件 - 升序
  2. 更新于 - 降序
  3. 类型 - 升序

然后在E列写下以下公式:=IF(B1<>B2,"Keep","")

然后在 D 列中按空格过滤数据,然后删除过滤后的行。

基于您的数据的示例数据图片如下。

【讨论】:

  • @MiliBiswas - 你在我的回答中读过这一行吗 -> 然后按 D 列中的空白过滤数据,然后删除过滤后的行。
  • 对于 D 列中的每个单元格.. 我需要重复这个公式吗?没有办法一键获取吗?
  • @MiliBiswas - 只需拖动 D 列的公式。或在出现细十字时双击 D2 的右下角,它将自动填充该行的公式。
  • 嗨@scott,谢谢您的帮助,但我认为排序顺序与您所做的不一样..我首先对电子邮件进行排序,然后更新,然后键入..所有替代电子邮件那么单元格不同,所以最终公式为所有人提供了 KEEP .. 现在该怎么办?这是正确的方法吗..?
  • @MiliBiswas 您是否按照我在答案中概述的Ascending 和Descending 顺序对它们进行了排序。另外,请确保公式与我在答案中写的一样。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多