Excel中通过函数实现对表格数据自动升降序排序-百度经验-

2020/09/27 08:39

许多Excel报告都包含显示排序结果的表。通常,这些表是使用“数据,排序”命令在Excel中手动排序的。但是,如果公式(不是宏)可以自动对数据进行排序,则报表将更易于维护和更新。

有一个简单的方法可以做到这一点。但是为了使该方法可靠地工作, 您必须修复RANK函数的行为。

该图显示了部分解决方案,并说明了RANK的问题。A,B和G列显示实际数据。为显示的单元格输入以下公式,然后根据需要将公式复制到其列中:

C3:= RANK(A3,$ A $ 3:$ A $ 6,0)

E3:= MATCH(G3,$ C $ 3:$ C $ 6,0)

H3:= INDEX($ B $ 3:$ B $ 6,E3)

I3 := INDEX($ A $ 3:$ A $ 6,E3)

Excel中通过函数实现对表格数据自动升降序排序-百度经验-Excel学习网

使用公式对Excel数据进行排序,而无需修复RANK函数。

C列中的公式对销售值进行排名,其中最大的值排名1,表中的最小值排名4。

理解E列的最简单方法是举一个例子。看单元格G6。这标志着右侧表中的第四排排序。单元格E6告诉我们,该行的值可以在表左侧的第二行中找到。E列中的其他值提供类似的信息。

H和I列使用E列中的信息返回适当的值。

Excel中通过函数实现对表格数据自动升降序排序-百度经验-Excel学习网

电子表格的第4行具有#N / A值的原因是因为RANK函数将相同的等级分配给相同的值。这是一个问题,因为大衣和裤子本月的销售额相同。因此,RANK函数将相同的#1等级分配给C列中的两个产品,并且根本不分配#2等级值。因此,当单元格E4中的公式寻找#2排名时,它将返回#N / A。

但是,此问题很容易解决。只需为调整后的销售额插入新列,然后对调整后的价值进行排名即可。以下是显示的单元格的公式:

B3:= A3 + 0.000001 * ROW()

D3:= RANK(B3,$ B $ 3:$ B $ 6,0)

Excel中通过函数实现对表格数据自动升降序排序-百度经验-Excel学习网

修复RANK函数后,用公式对Excel数据进行排序。

B列会为每个Sales值添加一个微小的数量,该数量基于表中每一行的数量。这将强制Sales2中的每个值都是唯一的,这会强制D列中的Rank值是唯一的。这为我们提供了H:J列中的自动排序值。

当您使用此技术时,请确保在选择单元格B3的公式中显示的小数部分时估计表中的最大行数。也就是说,如果您要拥有成千上万的数据行(New Excel允许),请确保在将小数部分乘以一百万左右的行数时仍然有一个小数。

免费直播

    精选课程 更多

    注册电脑版

    版权所有 2003-2020 广州环球青藤科技发展有限公司