【问题标题】:How can I remove non-matching values in two different columns and sort in Excel?如何删除两个不同列中的不匹配值并在 Excel 中排序?
【发布时间】:2015-03-05 08:38:09
【问题描述】:

我的 Excel 电子表格中有几列数据。

最初,我有两个不同的电子表格,因为它们是根据软件应用程序中的报告生成的。

其中一个电子表格包含过去一年与我们进行过交易的个人姓名。另一个电子表格包含姓名和电话号码。我将包含姓名和电话号码的列复制并粘贴到我的电子表格中,其中仅包含过去一年从我们这里购买过东西的人的姓名。

我的最终目标是提取过去一年购买过东西的人的姓名和电话号码。

我过去一年的专栏包含 1,002 个姓名,而我的主客户列表(带有电话号码)包含超过 20,000 个人。我需要过去一年从我们这里购买过东西的所有个人的电话号码,但我不想手动检查 1,000 个名称(基本上,要找到匹配的名称需要超过 20,000 个)。

如果我可以在不使用 VBA 的情况下实现我的目标,那就太好了。如果这是我唯一可以走的路,那么我会走那条路,但如果可能的话,我想避免编码。 (这仅仅是由于时间限制。)

【问题讨论】:

  • 我确实这样做了,它实际上开始起作用了。但是我的一些结果是不正确的。它从不同的行中提取信息,因此没有为适当的名称提取正确的电话号码。
  • “第四个参数”是什么意思?这是精确匹配的真/假参数,对吗?
  • 名字怎么样?在 1 或 2 列中?你总是会遇到这个任务的问题,因为人们可以有相同的名字。但是如果你可以手动成功地完成整个事情,那么它可以用公式或vba来完成,你只需要解释你手动使用的确切过程,包括重复的名称

标签: excel


【解决方案1】:

VLOOKUP 函数可能是最适合您的解决方案。从 Excel 文档中,它:

在表的最左列中查找一个值,然后返回 您指定的列的同一行中的值。默认情况下, 表格必须按升序排序。

请注意最后一句话的含义:您要搜索的列(查找表的最左侧列)必须按升序排序,此函数才能产生正确的结果。

举个简单的例子,假设您的 Excel 工作簿中有Sheet1,其中包含以下信息:

     A           B           C
1  Name    Transactions   Phone
2  Sally              3
3  Alice              5
4  Joe                2
5  Jon                1

您需要从另一个工作簿将他们的电话号码添加到此工作表中。假设您在其他工作簿中的电话号码信息如下所示:

     A        B
1  Name    Phone
2  Alice   2222222
3  Bill    3333333
4  Bob     4444444
5  Jim     5555555
6  Joe     6666666
7  Sally   7777777
8  Sue     8888888
9  Tom     9999999

按照以下步骤将电话号码添加到第一个工作簿中的Sheet1

  1. 将电话信息复制到第一个工作簿的空白表中。在这个例子中,我们称之为Sheet2
  2. 确保电话信息按Name 列 (A) 升序排序,因为这是最左边的列,因此也是查找列。
  3. Sheet1 的单元格C2(Sally 的空手机单元格)中,输入:=VLOOKUP(A2, Sheet2!A$2:B$9, 2,FALSE)
  4. 将此公式向下拖动复制到“电话”列中的其余单元格。

结果:

     A           B           C
1  Name    Transactions   Phone
2  Sally              3   7777777
3  Alice              5   2222222
4  Joe                2   6666666
5  Jon                1    #N/A

注意事项:

  • 第二个参数(Table_array - 查找数据范围)应该包含列标题。如您所见,它是 Sheet2!A$2:B$9,因此它包含 A 列和 B 列中第 2 行到第 9 行的信息。
  • 最后一个参数 (Range_lookup) 应设置为 FALSE,这样您就不会从最接近的匹配项中获取信息。注意 Jon 没有匹配的电话号码记录,因此他的 Phone 设置为“#N/A” - 否则他将被分配 Joe 的电话号码因为这是与 Jon 最接近的匹配。

参数说明:

  1. Lookup_value 是要在表的第一列中找到的值,可以是值、引用或文本字符串。
  2. Table_array 是一个包含文本、数字或逻辑值的表格,在其中检索数据。 Table_array 可以是对范围的引用或 范围名称。
  3. Col_index_num 是 Table_array 中应该返回匹配值的列号。中的第一列值 该表是第 1 列。
  4. Range_lookup 是一个逻辑值:在第一列中找到最接近的匹配项(按升序排序)= TRUE 或省略;寻找 完全匹配 = FALSE。

【讨论】:

    猜你喜欢
    • 2019-12-22
    • 2023-02-21
    • 2021-05-02
    • 2014-07-27
    • 1970-01-01
    • 2020-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多