sql - 如何识别 4 列中行 ID 最低的文本值?

标签 sql excel ms-access text

我发现了一些接近的文章,但与我正在尝试做的不同。我有一个包含 4 列重复数据的 Excel 文件,每列都根据来自不同工作表的数值进行排序。
我需要确定四列的值匹配的 25 行(或多少?),并且行 ID 是最低的。大约有 250 行数据需要筛选,所以我只需要前 10% 的数据。
我不必以这种方式处理它。如果不能在 Excel 中完成,我可以将这些数据转储到 Access 中。或者我可以在每个文本列旁边分配列(一种为第 1、2、3 和 4 列中的每个字段分配 ID 的方法)并使用这些值。只要结果有效,这种方法是可以协商的。
这是我的数据在 Excel 中的样子:

     A      B      C      D
    abc    bcd    abc    def
    cde    fgh    def    bcd
    def    def    bcd    abc
    bcd    hji    xyz    lmn

所以在这种情况下,我想突出显示(或以某种方式识别)值“def”,因为它看起来最接近所有 4 列的顶部,因此它具有最低的行 ID。值“bcd”将在列表中排在第二位,因为它也在所有 4 个中都被识别并且具有较低的行 ID。
任何建议,将不胜感激。我对 SQL 相当了解,所以如果您认为最好将其转储到数据库中,您可以建议一个很棒的查询。但理想情况下……将它保存在 Excel 中对我来说是最少的工作量。我对公式、条件格式等持开放态度。
谢谢!!

最佳答案

思考 我想出了一个相当酷的解决方案......

因此,假设您在 A-D 列中有这些数据,例如从单元格 A2 开始。

现在,您知道您只需要 A 列中已经存在的值 - 否则它们不在所有 4 列中。

所以:

  • 在 E2 中,输入公式 =Row() - 这基本上说明了 A 的值在哪里
  • 在 F2 中,输入 =Match($A2,B:B,0) - 这将在列 B
  • 中找到 A2 值的第一个匹配项
  • 将该公式拖到 G2 和 H2 (分别在 C 和 D 中找到 A2 值的第一个匹配项)。
  • 在 I2 中,输入公式 =Sum(E2:H2)

  • 现在,为整个数据集向下拖动 E:H。

    所以,如果 H = #N/A ,这意味着值不在所有 4 列中
    H 的值越低,匹配的排名越低 - (A 列的文本是您要匹配的值)。

    现在您可以根据 H 列等进行排序,以满足您的需求。

    希望这能解决问题(并且有意义)!

    酷Q,顺便说一句!

    关于sql - 如何识别 4 列中行 ID 最低的文本值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16740331/

    相关文章:

    mysql - 避免OFFSET,WHERE分页应该是什么样子?

    vba - Excel/VBA : Skip error and continue w/code execution

    java - 打开由附加到电子邮件的 HSSFWorkbook 生成的 Excel 工作表时,Excel 崩溃

    ms-access - 如何增加 Access 中的日历大小?

    ms-access - 我该如何测试和处理#Func!查询中的错误?

    sql - 在Oracle查询中减去两个数值列值

    mysql - 如何导出按字段分组的所有行?

    sql - 为什么 HAVING col > AVG(col) 不返回任何行?

    python - 如何下载 xlsm 文件并读取 python 中的每张表?

    ms-access - Access DB 查询 - 需要帮助更新某些记录