Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 比较excel中的两个单元格,然后返回行_Vba_Excel - Fatal编程技术网

Vba 比较excel中的两个单元格,然后返回行

Vba 比较excel中的两个单元格,然后返回行,vba,excel,Vba,Excel,这个场景是一个excel工作表,包含97K行和类似的电子邮件地址,我想比较一下excel工作表中的备用单元格,得到唯一的电子邮件地址。 假设它们是4列 A包含名称 B包含电子邮件地址 C包含类型 D包含最新更新的日期时间 但条件是:- 如果B包含任何2或3个具有相同电子邮件地址的单元格,则转到下一列,即C 在C列中检查类型 如果所有人都包含类型为LEAD/CONTACT,则转到C列,检查最新更新并获取该行。 如果具有匹配电子邮件的人包含类型一作为潜在客户,另一作为联系人,则获取类型为联系人的行

这个场景是一个excel工作表,包含97K行和类似的电子邮件地址,我想比较一下excel工作表中的备用单元格,得到唯一的电子邮件地址。 假设它们是4列

  • A包含名称
  • B包含电子邮件地址
  • C包含类型
  • D包含最新更新的日期时间
  • 但条件是:-

  • 如果B包含任何2或3个具有相同电子邮件地址的单元格,则转到下一列,即C
  • 在C列中检查类型
  • 如果所有人都包含类型为LEAD/CONTACT,则转到C列,检查最新更新并获取该行。
  • 如果具有匹配电子邮件的人包含类型一作为潜在客户,另一作为联系人,则获取类型为联系人的行
  • 如果类型为空,则获取包含LEAD或CONTACT任何类型的行。
  • 有人能帮我吗,这能多快完成?现在我正在一个接一个地手动操作。短的或片段的方法是值得注意的。
    谢谢。这将非常有帮助

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

  • 电子邮件-升序
  • 更新于-降序
  • 类型-升序
  • 然后在E列中写出以下公式:
    =IF(B1B2,“Keep”,“”)

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

    基于以下数据的示例数据图片。

    您是否需要在要求VBA时多次执行此操作?如果没有,为什么不先对电子邮件的数据进行排序,然后再按类型进行排序呢。功能区中还实现了一个用于删除双重数据的函数(尽管我不确定删除数据的具体条件)。如果你真的想用VBA来做这件事,你可能必须从某个地方开始,为什么不从比较一个单元格到另一个单元格开始呢使用“如果单元格(A1)。值=单元格(b1)。然后值”可以轻松地比较单元格。您还可以使用单元格(行、列)作为单个单元格的坐标。对于行和列,您可以创建一个For循环,这将导致单元格范围是动态的。是。。他们有96K条记录,几乎所有其他记录都有重复的电子邮件。@MiliBiswas-你在我的回答中读到这一行了吗->然后在D列中用空格过滤数据,然后删除过滤后的行。对于D列中的每个单元格。。我必须重复这个公式吗?有没有办法一键输入?@MiliBiswas-只需拖动D列的公式。或者,当细十字出现时,双击D2的右下角,它会自动填充该行的公式。嗨@scott,谢谢你的帮助,但我认为排序顺序与你做的不一样。。我首先对电子邮件进行排序,然后在更新,然后键入。。所有的电子邮件的替代细胞是不同的,所以最终的公式给所有。。现在该怎么办?这是正确的方式吗?@MiliBiswas您是否按照我在回答中概述的
    升序
    降序
    顺序对它们进行了排序。另外,请确保公式和我在答案中写的一样。