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示例