Excel实例:排序和筛选2

480 阅读3分钟

Excel函数:Excel 提供以下排序和筛选数组函数。

SORT(R1,  sortcol,order):根据R1的列sortcol  (“排序键”)中的元素(默认值1)返回一个数组,其中数组中的数据按排序顺序排列在R1中  。如果  order  = 1(默认值),则排序按升序排列;如果  order  = -1,则排序按降序排列。

UNIQUE(R1):返回具有列数组R1中唯一条目的数组。

FILTER(R1, 条件,if_empty):返回一个数组,其中包含R1中满足条件的数据的子集  ;如果没有数据符合  条件,  则   返回if_empty值(如果省略,则返回  #CALC!  错误值)

例如,要对“ 排序和过滤”图1中的数据进行  排序,  并将输出放置在以F4单元格开头的范围内,请在F4单元格中插入动态数组公式= SORT(A4:D12,4)并按  Enter。结果如图1所示。

 

图1 – SORT功能

将动态数组公式= UNIQUE(D4:D12)放置在单元格K4中,将返回图2的K列所示的输出。将动态数组公式= SORT(UNIQUE(D4:D12))放置在单元格M4中,将返回列中所示的输出。图2中的M。

图2 – UNIQUE功能

我们可以放置公式

= FILTER(A4:D12,D4:D12> = 35000)*(D4:D12 <= 45000),””)

在O4单元中,从图1中提取所有收入在35,000到45,000(含)之间的人,如图3所示。

图3 – FILTER函数(AND标准)

请注意,我们使用“ *”来指定两个条件都必须成立(即,两个条件的与)。我们可以使用“ +”来指定必须满足两个条件之一(即,作为两个条件的OR)。我们可以使用一个或多个“ +”和“ *”的组合来指定更多涉及的条件。

我们可以放置公式

= FILTER(A4:D12,(D4:D12> 40000)+(B4:B12 =“ F”),””)

在T4单元格中,从图1中提取收入超过40,000或女性的人的所有条目,如图4所示。

 

图4 – FILTER函数(或条件)

请注意,条件表达式必须引用FILTER中第一个参数中指定的范围的完整行或列或子范围。因此,虽然可以使用= FILTER(A4:D12,D4:D12> 40000),但不能使用= FILTER(A4:D12,D4:D10> 40000)。

Excel函数:Excel 还提供以下增强的排序功能:

SORTBY(R1,  sortcol 1,  顺序 1,  sortcol 2,  顺序 2,…):根据R1的列数组sortcol 1(“ sort key”)中的元素,按排序顺序返回R1中的数据的数组  (默认值1)。如果  顺序 1 = 1(默认),则排序按升序排列;如果  顺序 1 = -1,则排序按降序排列。如果通过sortcol 2 指定,则还可以使用辅助排序键(如果  需要,还可以使用其他排序键   sortcol 3等)。

 SORT中的  sortcol参数是R1中列的索引,而SORTBY中的  sortcol 1是列数组或范围,它可能是R1的一部分,也可能不是R1的一部分,尽管它必须具有与R1相同的行数。

例如,如果要按收入然后按人名对图1中的数据进行排序,则可以输入公式= SORTBY(A4:D12,D4:D12,1,A4 :A12,1)在单元格Y4中,然后按  Enter,如图5所示。

图5 – SORTBY函数

如果要先按年龄升序排序,然后按收入降序排序,但又不想让收入出现在输出中,则可以将公式= SORTBY(A4:C12,C4:C12,1, D4:D12,-1)在单元格AD4中,然后按  Enter,如图6所示。

图6 –另一个SORTBY示例