如何根据与另一列的完全匹配对列进行排序

Posted

技术标签:

【中文标题】如何根据与另一列的完全匹配对列进行排序【英文标题】:How to sort a column based on exact matches with another column 【发布时间】:2019-04-05 13:15:32 【问题描述】:

我有一个如下所示的库存表(子集):

part number | price | quantity
10115       | 14.95 | 10
1050        | 5.95  | 12
1074        | 7.49  | 8 
110-1353    | 13.99 | 22 

我在工作表 2 中还有另一个表格,看起来像这样(子集):

part number | quantity
10023       | 1
110-1353    | 3
10115       | 2 
20112       | 1

我想基本上从第一个表中减去第二个表中的数量。这样做的最佳方法是什么?我已经查看了 VLOOKUP 和 INDEX MATCH,但它们并不完全适合这个。说 Access DB 会更好吗?

【问题讨论】:

【参考方案1】:

我在表格 1 的最后一列旁边添加了另外两列。让我们假设第二个表格范围是 A1:B5。

图片:

公式:

D 列:

=IFNA(VLOOKUP(A2,Sheet2!$A$2:$B$5,2,FALSE),0)

E 列:

=C2-D2

【讨论】:

【参考方案2】:

如果您想使用 MS Access 解决此问题,SQL 代码可能如下所示:

select 
    t1.[part number],
    t1.price,
    t1.quantity - nz(t2.quantity, 0) as qty
from 
    inventory t1 left join table2 t2 on t1.[part number] = t2.[part number]

在这里,我假设您有一个名为 inventory 的表和一个名为 table2 的表(更改这些以适合您的数据库)。

left join 用于确保返回来自 inventory 的所有记录,无论是否在 table2 中找到匹配项,Nz 函数用于返回 0 的记录table2 中没有 part number 匹配项。

【讨论】:

以上是关于如何根据与另一列的完全匹配对列进行排序的主要内容,如果未能解决你的问题,请参考以下文章

使用 Linux 工具根据另一列的 id 对列的值求和

对列值进行排序以匹配另一个表列中值的顺序

返回值的公式,其中一列中的第一个单词与另一列的最后四位匹配

对于每个类别,如何找到与另一列的最小值对应的列的值?

在python中,我如何对一列中每个值与另一列中的值发生的次数(多少行)建立矩阵?

如何按一列分组并对另一列的值进行排序?