精华内容
下载资源
问答
  • js的sort方法,我们一般传入一个回调用于单排序,也就根据某一个条件排序,那么一个场景需要多条件排序(多重排序),我们怎么处理呢? 如下例子,我们按学生的总分排序,如果总分相等,我们再按照语文成绩排序。 var ...

    js的sort方法,我们一般传入一个回调用于单排序,也就根据某一个条件排序,那么一个场景需要多条件排序(多重排序),我们怎么处理呢?

    如下例子,我们按学生的总分排序,如果总分相等,我们再按照语文成绩排序。
    var jsonStudents = [
        { name: "Dawson", totalScore: "197", Chinese: "100", math: "97" },
        { name: "HanMeiMei", totalScore: "196", Chinese: "99", math: "97" },
        { name: "LiLei", totalScore: "185", Chinese: "88", math: "97" },
        { name: "XiaoMing", totalScore: "196", Chinese: "96", math: "100" },
        { name: "Jim", totalScore: "196", Chinese: "98", math: "98" },
        { name: "Joy", totalScore: "198", Chinese: "99", math: "99" }
    ];
    
    jsonStudents.sort(function(a, b) {
        var value1 = a.totalScore,
            value2 = b.totalScore;
        //总分相同 
        if (value1 === value2) {
            // 按语文分数降序排序
            return b.Chinese - a.Chinese;
        }
        // 总分不同,降序排序
        return value2 - value1;
    });
    
    console.log("jsonStudents :", jsonStudents);

    关键点在于sort回调如何定义排序规则

    转载于:https://www.cnblogs.com/sefaultment/p/9879213.html

    展开全文
  • 比较各成员的业绩情况(既看单量又看金额),首先利用RANK函数进行基本排序(按单量排),然后利用SUMPRODUCT函数进行深层排序(在单量一致的基础上,按金额排序) 2 针对深层排序选中公式按F9查看步骤...
    1. 比较各成员的业绩情况(既看单量又看金额),首先利用RANK函数进行基本排序(按单量排),然后利用SUMPRODUCT函数进行深层排序(在单量一致的基础上,按金额排序)

      Excel中如何实现多条件排序

    2. 2

      针对深层排序选中公式按F9查看步骤分解,以E4单元格为例

      =SUMPRODUCT((B4=$B$2:$B$6)*(C4<$C$2:$C$6))

      =SUMPRODUCT(({FALSE;TRUE;TRUE;TRUE;FALSE})*({TRUE;TRUE;FALSE;FALSE;TRUE}))=SUMPRODUCT(({0;1;1;1;0})*({1;1;0;0;1}))=0*1+1*1+1*0+1*0+0*1=1

    展开全文
  •  那么,利用稳定排序的特性,key函数有几个返回值就排序几次,先排序次要条件,后排序主要条件,用主要条件覆盖次要条件,主要条件相同时,又不会改变之前排好的次要条件的相对位置,就实现了多条件排序。...


      首先,要知道sorted 内部实现使用了归并排序,而归并排序是稳定的排序,就是说当元素比不出大小时,其相对位置是不变的。


      那么,利用稳定排序的特性,key函数有几个返回值就排序几次,先排序次要条件,后排序主要条件,用主要条件覆盖次要条件,主要条件相同时,又不会改变之前排好的次要条件的相对位置,就实现了多条件排序。

      给我们的直观效果是,主要条件排不出先后顺序的元素,就按照次要条件排序。

     

      在python中具体是如何实现的呢?

      sorted(iterable, key, reverse)

      key参数,接收一个函数地址,用来设置排序条件,这里我们经常使用匿名函数。

      iterable的每一个元素作为参数传入key函数,key函数的返回值就是排序依据,当返回值为一个元祖时,这个元祖中的多个元素即为多个排序条件,从前到后重要程度依次降低。

     

      下面的例子,演示按照元素第三位、第二位、第一位的字典顺序这三个条件对列表进行排序。

    lis = ['a1b', 'a2a', 'a3b', 'b5d', 'a4f', 'c3f', 'b3f', 'a6f', 'c1f', 'a1a']
    print(sorted(lis, key=lambda x: (x[2], x[1], x[0])))

      排序结果:['a1a', 'a2a', 'a1b', 'a3b', 'b5d', 'c1f', 'b3f', 'c3f', 'a4f', 'a6f']

    转载于:https://www.cnblogs.com/pyonwu/p/10695148.html

    展开全文
  • excel多条件筛选函数 用Excel函数实现排序与筛选的方法,多掌握一门知识就等于多能解决一些问题,今天要介绍的是excel多条件筛选函数的相关知识,我相信当你看完excel多条件筛选函数 用Excel函数实现排序与筛选的...

    excel多条件筛选函数 用Excel函数实现排序与筛选的方法,多掌握一门知识就等于多能解决一些问题,今天要介绍的是excel多条件筛选函数的相关知识,我相信当你看完excel多条件筛选函数 用Excel函数实现排序与筛选的方法这篇文章的时候你一定会掌握一门新技能,从而让你的工作更简单!

    Execl本身具有很方便的排序与筛选功能,下拉“数据”菜单即可选择排序或筛选对数据清单进行排序或筛选。但也有不足,首先无论排序或筛选都改变了原清单的原貌,特别是清单的数据从其它工作表链接来而源数据发生变化时,或清单录入新记录时必须从新进行排序或筛选。其次还有局限,例如排序只能最多对三个关键字(三列数据)排序,筛选对同一列数据可用“与”、或“或”条件筛选,但对不同列数据只能用“与”条件筛选。例如对某张职工花名册工作簿,要求筛选出年龄大于25岁且小于50岁或年龄大于50岁或小于25岁都是可行的,如同时要求性别是男的或女的也是可行的。但要求筛选出女的年龄在22岁到45岁,男的年龄在25岁到50岁时Execl本身具有的筛选功能则无能为力了。再者排序与筛选不能结合使用,即不能在排序时根据条件筛选出来的记录进行排序。例如有一张职工资料清单,其中有的职工已经退休,对在职职工的年龄进行排序时无法剔除已退休职工的数据。

    本文试图用Execl的函数来解决上述问题。

    一、用函数实现排序

    题目

    如有一张工资表,A2:F501,共6列500行3000个单元格。表头A1为姓名代码(1至500)、B1为姓名、C1为津贴、D1为奖金、E1为工资、F1收入合计。现要求对职工收入从多到少排序,且在职工总收入相同时再按工资从多到少排序,在职工总收入和工资相同时再按奖金从多到少排序,在职工职工总收入和工资、奖金相同时再按津贴从多到少排序。

    方法

    G1单元格填入公式

    “=if(F2=0,10^100,INT(CONCATENATE(999-f2,999-e2,999-d2,999-c2)))”,

    CONCATENATE是一个拼合函数,可以把30个以下的单元的数据拼合成一个数据,这些被拼合的数据之间用逗号分开。用f2、e2等被拼合的数据用999来减,是为了使它们位数相同。(假定任何一个职工的总收入少于899元)。被拼合成的函数是文本函数,CONCATENATE与INT函数套用是为了使文本转换为数字。最外层的if函数是排序时用来剔除不进行排序的记录,在本例中指收入为零的记录。(在上文提到的职工年龄排序,则公式改为“if(f2="退休",10^100,.....)”,即剔除了退休职工。)

    第二步把G1单元格的公式拖放到G500单元格(最简便的方法是点击G1单元格后向G1单元格右下方移动鼠标,见到黑十时双击鼠标就完成了G1到G500的填充)。

    第三步在在H2单元填入公式“=MATCH(SMALL(G:G,ROW(A1)),G:G,0)”与第二步一样拖放到H501单元格。此公式实际上是把三列公式合成一列公式,ROW(A1)即为A1的行数是1,随着向下拖放依次为2、3、4...,SMALL(G:G,ROW(A1))为G列中最小的数随着向下拖放依次为第2、第3、..小的数,MATCH(SMALL(G:G,ROW(A1)),G:G,0)即为G列各行的数据中最小、第2、第3小等的数据在第几行。

    第四步把A1至F1单元格的表头复制到I1至N1单元格,在I2单元格输入公式“=INDEX($A$2:$F$501,$H2,COLUMN(A$1))”INDEX函数是一个引用函数,即把$A$2:$F$501单元格列阵第$H2行第COLUMN(A$1)列的数据放入I2单元格。然后把I2单元格的公式拖放到N2单元格,点击N2单元格后向N2单元格右下方移动鼠标见到黑十时双击鼠标就完成了I2到N501单元格的填充到此全部完成。

    以上叙述看似繁杂实际非常简单,只要把A1至F1的表头复制到I1至N1单元格,再分别在G1、H2、I2单元格输入公式然后向下拖放,即使对EXCEL应用不熟练的同志一分锺内便能完成。

    对上述程序稍作变化还可得到更多用度。上面例子数据是从大到小排列的,如H列的函数中的SMALL改为LARGE,上面例子数据就从小到大排列了。如H2单元格的公式改为“=IF(O1=1,MATCH(SMALL(G:G,ROW(A1)),G:G,0),MATCH(LARGE(G:G,ROW(A1)),G:G,0))”

    并把H2单元格的公式向下拖放。这样在O1单元格输入1上面例子数据是从大到小排列的,O1单元格输入1以外的数上面例子数据就从小到大排列了。

    如在H列前插入若干列,如插入一列,则现在的H列输入类似G列的公式,例如

    “=if(F2=0,10^100,d2)”,现在的I列的公式改为“=IF(P1=1,MATCH(SMALL(G:G,ROW(A1)),G:G,0),

    MATCH(SMALL(H:H,ROW(A1)),H:H,0)))”

    即在P单元格输入1以外的值就实现了按奖金大小排序.这样只要通过改变P1(原来的O1单元格)单元格内容的改变就能立即得到按不同要求的排序。

    二、用函数实现筛选

    题目

    如有一张职工名册表,A2:F501,共6列500行3000个单元格。表头A1为姓名代码(1至500)、B1为姓名、C1为性别、D1为年龄、E1为学历、F1职称。现要求对职工的性别、年龄、学历、职称进行交错筛选,例如要求在同一张表上筛选出1、女的年龄在22岁到45岁,男的年龄在25岁到50岁,2、女博士,3、男博士后。

    方法

    第一步在G2单元格输入公式”=IF(OR(AND(C2="女",D2>=22,D2<=45),AND(C2="男",

    D2>=25,D2<=50)),ROW(A1),0)“,在H2单元格输入公式”=IF(AND(C2="女",E2="博士"),

    ROW(B1),0)“,在I2单元格输入公式”=IF(AND(C2="男",E2="博士后"),ROW(B1),0)“。在J2单元格输入公式“=IF(K$2=1,LARGE(G:G,ROW(A1)),IF(K$2=2,LARGE(H:H,ROW(A1)),

    IF(K$2=3,LARGE(I:I,ROW(A1)),0)))”然后用上述提到的方法向下拖放。G、H、I列的公式的含义就是凡符合筛选条件的行记录下行号否则为零,J列的公式的含义根据K2的数值选择G、H、I中的一列进行排序并把不合条件的行除去。

    第二步在K1单元格输文字”筛选选择”,A1到F1表头复制到L1到Q1,在L2单元格输入

    公式“=IF($J2=0,0,INDEX($A$2:$F$501,$J2,COLUMN(A$1)))”,然后向右拖放到Q2,再向下拖放。INDEX函数的含义上文已说明。

    第三步在P1单元格输入1或2或3便可实现上述三种筛选。

    以上就是excel多条件筛选函数 用Excel函数实现排序与筛选的方法全部内容了,希望大家看完有所启发,对自己的工作生活有所帮助,想要了解更多跟excel多条件筛选函数 用Excel函数实现排序与筛选的方法请关注我们优词网!

    展开全文
  • 好好看看一、排序函数NumPy 提供了多种排序的方法。 这些排序函数实现不同的排序算法,每个排序算法的特征在于执行速度,最坏情况性能,所需的工作空间和算法的稳定性。 下表显示了三种排序算法的比较。种类速度最坏...
  • python对目录下文件名进行多条件排序1.基础函数2.例子解析参考 1.基础函数 2.例子解析 参考 [1] Python文件名排序或文件排序问题 [2] 文件名(文件夹名) 排序: 按字符串排序、 按数字排序 Python [3] python对目录...
  • 这些排序函数实现不同的排序算法,每个排序算法的特征在于执行速度,最坏情况性能,所需的工作空间和算法的稳定性。 下表显示了三种排序算法的比较。种类速度最坏情况工作空间稳定性'quicksort'(快速排序)1O(n^2)...
  • O365 这次出了两个排序函数,除了前段时间给大家讲解过的 sort 以外,还有一个 sortby 函数。sortby 函数也是用于排序,功能跟 sort 类似,主要区别在于:sort 只能按一个数组或区域排序,而 sortby 可以按个数组...
  • 排序查询: 在条件查询后面 使用order by 字段名称 (默认)升序asc降序desc 通过年龄查询排序 select * from user2 order by age;...多条件排序。逗号隔开即可 select * from user2 order by birthday desc,age asc;
  • C++中cmp()函数用途很,特此总结: 一般数据类型的排序: #include<iostream> #include<algorithm> using namespace std; bool cmp(int a, int b) { return a > b;//值传递 } int main() { ...
  • 匿名函数:  lambda: 函数名=lambda 参数:条件并返回值 注意:1匿名函数的参数可以有个,需要用逗号隔开 ...排序函数:  sorted: sorted(iterable,key=None,reverse=Flase)  1.iterable:可迭代对象...
  • 多条件排序及itemgetter的应用 曾经客户端的同事用as写一大堆代码来排序,在得知Python排序往往只需要一行,惊讶无比,遂对python产生浓厚的... 即参数key指定的函数返回一个元组,多条件排序的顺序将按照元组的顺序。
  • NumPy 提供了很统计函数,用于从数组中查找最小元素,最大元素,百分位标准差和方差等。 函数说明如下: numpy.amin() 用于计算数组中的元素沿指定轴的最小值。 numpy.amax() 用于计算数组中的元素沿指定轴的...
  • 对于lua table的排序,sort函数的使用。比如先按照等级排序,然后按照品质,再按照ID排序。实现方法如下: local function sort_(a, b) local r local al = tonumber(a.level) local bl = tonumber(b.level) ...
  • mysql:使用field函数。 select * from a order by field(name,'val1','val2','val3'); 其中name是你要排序的字段,后面是字段的值,...以上是自定义条件排序多条件就是select * from a order by(field(age,'1...
  • 排序函数 语法: select 查询列表 from 表名 where 筛选条件 order by 排序列表 ; 特点: ①排序列表可以是 单个字段、个字段、函数、表达式、别名、列的索引,以及以上的组合 ②升序,通过asc ​ 降序,通过desc ...
  • 浅析Python中的多条件排序实现 作者:mattkang 字体:[增加减小] ...Python中使用sort方法和sorted函数排序时关键就在于key参数值的编写技巧,这里我们来举两个实例浅析Python中的多条件排序实现: 多条件...
  • sort()方法可以传入一个函数作为参数,然后依据该函数的逻辑,进行数组的排序。 一般用法:(数组元素从小大进行排序) 1 2 vara = [9, 6, 5, 7, 11, 52, 15]; a.sort(function(returna-b;...
  • sort()方法可以传入一个函数作为参数,然后依据该函数的逻辑,进行数组的排序。 一般用法:(数组元素从小大进行排序) var a = [9, 6, 5, 7, 11, 52, 15]; a.sort(function(return a-b;)); sort()方法...
  • '方轴' 排序 SELECT goods_name,desc_title,sort_order,LOCATE('方轴',goods_name) as gIndex FROM goods WHERE goods_name LIKE '%方轴%' OR desc_title LIKE '%方轴%' OR keywords LIKE '%方轴%' ORDER BY ...
  • key – 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。 reverse – 排序规则,reverse = True 降序, reverse = False 升序(默认)。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,536
精华内容 614
关键字:

多条件排序函数