精华内容
下载资源
问答
  • Excel可以对一组纪录按任意指定列排序。现请编写程序实现类似功能。 输入格式: 输入的第一行包含两个正整数N(≤10​5​​) 和C,其中N是纪录的条数,C是指定排序的列号。之后有N行,每行包含一条学生纪录。每条...

    1.题目

    Excel可以对一组纪录按任意指定列排序。现请编写程序实现类似功能。

    输入格式:

    输入的第一行包含两个正整数N(≤10​5​​) 和C,其中N是纪录的条数,C是指定排序的列号。之后有 N行,每行包含一条学生纪录。每条学生纪录由学号(6位数字,保证没有重复的学号)、姓名(不超过8位且不包含空格的字符串)、成绩([0, 100]内的整数)组成,相邻属性用1个空格隔开。

    输出格式:

    在N行中输出按要求排序后的结果,即:当C=1时,按学号递增排序;当C=2时,按姓名的非递减字典序排序;当C=3时,按成绩的非递减排序。当若干学生具有相同姓名或者相同成绩时,则按他们的学号递增排序。

    输入样例:

    3 1
    000007 James 85
    000010 Amy 90
    000001 Zoe 60
    

    输出样例:

    000001 Zoe 60
    000007 James 85
    000010 Amy 90

    2.题目分析

    自定义sort函数进行排序

     3.代码

    #include<iostream>
    #include<algorithm>
    #include<string>
    using namespace std;
    struct node
    {
    	string no;
    	string name;
    	int grade;
    }list[100001];
    
    bool cmp1(struct node & s1, struct node & s2)
    {
    	return s1.no < s2.no;
    }
    
    bool cmp2(struct node & s1, struct node & s2)
    {
    	if(s1.name.compare(s2.name)==0)
    		return s1.no < s2.no;
    	return s1.name < s2.name;
    
    }
    bool cmp3(struct node & s1, struct node & s2)
    {
    	if(s1.grade==s2.grade)
    		return s1.no < s2.no;
    	return s1.grade < s2.grade;
    
    }
    
    int main()
    {
    	
    	int n, c;
    	cin >> n >> c;
    	for (int i = 0;i < n;i++)
    	{
    		cin >> list[i].no;
    		cin >> list[i].name;
    		cin >> list[i].grade;	
    	}
    	if (c == 1)
    		sort(list, list + n, cmp1);
    	else if(c==2)
    		sort(list, list + n, cmp2);
    	else
    		sort(list, list + n, cmp3);
    
    	for (int i = 0;i < n;i++)
    	{
    		cout << list[i].no << " " << list[i].name << " " << list[i].grade << endl;
    	
    	}
    
    }

     

    展开全文
  • 在数据分析经常需要对数据进行排序、排名,观察指标排名变化情况,手工处理的话不是太困难,但经常使用,还是编写宏比较方便。 宏命令比较简单,多解释,只说一下注意事项: 1、有合并单元格,比如列、行合并后...

    在数据分析中经常需要对数据进行排序、排名,观察指标排名变化情况,手工处理的话不是太困难,但经常使用,还是编写宏比较方便。

    宏命令比较简单,不多解释,只说一下注意事项:

    1、有合并单元格,比如列、行合并后,直接选择会全选合并的列/行,这时候,不用管选择,直接进行插入、删除、或者格式化就可

    Columns(nCol).Insert

    2、输入格式化公式时,需要固定单元格$,可以使用FormulaR1C1,R[1]C[1]标示当前行、列加1,R1C1标示$a$1,使用时还要注意

    把数字转换成字符串。

    Sub 排序()
    '
    ' 排序 宏
    ' 123
    '
    ' 快捷键: Ctrl+p
        Dim nCol As Long
        Dim nRow As Long
       
        nCol = Selection.Column
        nRow = Selection.Row

        Columns(nCol).Insert
       
        Columns(nCol).NumberFormatLocal = "G/通用格式"
     
        Cells(nRow, nCol).Select

        ActiveCell.FormulaR1C1 = "=RANK(RC[-1],R" & CStr(nRow) & "C[-1]:R" & CStr(nRow + 16) & "C[-1])"
       
        Selection.AutoFill Destination:=Range(Cells(nRow, nCol), Cells(nRow + 16, nCol)), Type:=xlFillDefault
    End Sub

    转载于:https://www.cnblogs.com/iHqq/p/5703630.html

    展开全文
  • 工作 excel 进行一个简单的统计,历时三个小时终于搞定,效果如下: 1. 源代码 话多说,直接上源码,可以直接食用,只需将目标文件设置为你需要统计的文件即可。 # -*- coding:utf-8 -*- import xlrd from ...

    前言

    工作中想对 excel 进行一个简单的统计,历时三个小时终于搞定,效果如下:
    在这里插入图片描述

    1. 源代码

    话不多说,直接上源码,可以直接食用,只需将目标文件设置为你需要统计的文件即可。

    # -*- coding:utf-8 -*-
    import xlrd
    from collections import Counter
    
    infos = []
    # 目标文件
    report = '2019.xlsx'
    
    info_file = xlrd.open_workbook(report)
    info_sheet = info_file.sheets()[1]
    row_count = info_sheet.nrows
    
    for row in range(0, row_count):
        # 5 为要统计的列序号,注意从 0 开始
    	infos.append(info_sheet.cell_value(row, 5))
    
    def all_list(arr):
        result = {}
    
        for i in set(arr):
            result[i] = arr.count(i)
        return result
    
    d = all_list(infos)
    d2 = sorted(d.items(), key = lambda x:x[1], reverse = True)
    print(d2)
    
    

    2. 模块解析

    接下来对每个模块进行解说。

    2.1 文件打开

    # 目标文件
    report = '2019.xlsx'
    info_file = xlrd.open_workbook(report)
    info_sheet = info_file.sheets()[1]
    

    第一步自然要打开文件,这里需要引用 xlrd 库。

    第一行定义目标文件,第二行打开,第三行选择表。注意:表的序号从 0 开始:
    在这里插入图片描述
    如图,“Sheet1” 对应的是 info_sheet = info_file.sheets()[0]
    而 “sheet2” 对应 info_sheet = info_file.sheets()[1]

    2.2 数据读取

    infos = []
    for row in range(0, row_count):
    	infos.append(info_sheet.cell_value(row, 5))
    

    定义一个 list ,用来存储读取的数据。

    然后以列数为界限,利用 for 循环将每行你需要的列数据进行存储。

    2.3 频率统计

    def all_list(arr):
        result = {}
    
        for i in set(arr):
            result[i] = arr.count(i)
        return result
    

    定义一个 dict ,将刚刚得到的 list 进行唯一处理, 然后将每个数据进行统计。这里 dict 的 key - value 分别对应 “ 数据 - 频率 ”。

    2.4 按频排序

    d2 = sorted(d.items(), key = lambda x:x[1], reverse = True)
    

    将刚刚得到的 dict 按照 value 值的大小进行倒序排序。

    正序排序只需将代码改为:d2 = sorted(d.items(), key = lambda x:x[1], reverse = True)

    展开全文
  • 任务,从excel中读取啤酒销售订单,然后算出每个品牌的铺店率。我的想法是按照铺店率从大到小排序作为横坐标,然后纵坐标是销售量。那么 常理先搞定头文件 import matplotlib.pyplot as plt import matplotlib as ...

    任务,从excel中读取啤酒销售订单,然后算出每个品牌的铺店率。我的想法是按照铺店率从大到小排序作为横坐标,然后纵坐标是销售量。那么
    常理先搞定头文件

    import matplotlib.pyplot as plt
    import matplotlib as mpl
    import pandas as pd
    

    用pandas读取excel中文也可以,之前直接用xlrd折腾了很久中文读入不了。
    因为要在图片中显示中文
    所以
    需要对matplotlib进行设置,中文设置如下

    mpl.rcParams['font.sans-serif'] = ['KaiTi']
    mpl.rcParams['font.serif'] = ['KaiTi']
    

    我的环境是win10
    补充一些Python基础知识

    a={}#创建字典
    a=[]#创建list
    class node(object):
        def __init__(self):#重载初始化的过程
            self.brand='';self.coverage=0;
            self.sales=0;self.sales_num=0;
            self.dict={};
        def __lt__(self, other):#重载运算符
            return self.coverage>other.coverage
    

    其他Python里面的类所有得函数名称需要去百度搜索一下

    import matplotlib.pyplot as plt
    import matplotlib as mpl
    mpl.rcParams['font.sans-serif'] = ['KaiTi']
    mpl.rcParams['font.serif'] = ['KaiTi']
    import numpy as np
    import pandas as pd
    class node(object):
        def __init__(self):
            self.brand='';self.coverage=0;
            self.sales=0;self.sales_num=0;
            self.dict={};
        def __lt__(self, other):
            return self.coverage>other.coverage
    
    excel_='bud.xlsx';dict={}
    data1= pd.read_excel(excel_,sheet_name='菜品数据')
    brand_name=list(data1['beer_brand_enum'].values)
    poc_name=list(set(data1['poc_name_dummy'].values))
    t=set(brand_name);t=list(t)
    data=[node() for i in range(len(t))]
    for i in range(len(t)):
        data[i].brand=t[i]
        dict[t[i]]=i
        for j in range(len(poc_name)):
            data[i].dict[poc_name[j]]=0
    poc_name1=poc_name
    poc_name=list(data1['poc_name_dummy'].values)
    sales_num=list(data1['sales_volume_num'].values)
    sales=list(data1['sales_value_cny_amt'].values)
    def check(x):
        t=dict[brand_name[x]]
       # print(t);print(poc_name[x])
        data[t].sales_num+=sales_num[x]
        data[t].sales+=sales[x]
        if data[t].dict[poc_name[x]]==0:
            data[t].dict[poc_name[x]]=1
            data[t].coverage+=1
    print(len(brand_name))
    for i in range(len(brand_name)):
         check(i)
    for i in range(len(t)):
        data[i].coverage=data[i].coverage/(len(poc_name1)+1)
        #print(data[i].brand,data[i].coverage,data[i].sales,data[i].sales_num)
    data.sort()
    for i in range(len(t)):
        print(data[i].brand,data[i].coverage,data[i].sales,data[i].sales_num)
    x=[];y=[];x1=[];y1=[];
    for i in range(len(t)):
        x.append(data[i].brand);x1.append(data[i].brand)
        y.append(data[i].sales_num/1000);y1.append(data[i].sales)
    plt.figure(figsize=(len(t),10))
    
    plt.bar(x, y, align =  'center')
    #plt.bar(x1, y1, color =  'g', align =  'center')
    plt.title(u'覆盖率与销售量的关系',fontsize=65,color='r')
    plt.ylabel(u'销售额(千瓶)',fontsize=65)
    plt.xlabel(u'品牌(按照覆盖率从大到小排序)',fontsize=65)
    plt.show()
    
    
    # for i in range(len(brand_name)):
    #     print(brand_name[i])
    
    

    http://www.elijahqi.win/archives/4038

    展开全文
  • 需要使用util.Arrays的:(sort(T[] a,Comparator< ? super T> c)根据指定比较器产生的顺序指定对象数组进行排序。该排序算法是一个经过修改的合并排序算法(其中,如果低子列表的最高元素小于高子列表的最低...
  • 4.5 对数据透视表数据进行排序 86 4.5.1 使用“选项”选项卡上的排序图标排序 86 4.5.2 使用字段列表隐藏的下拉菜单排序 88 4.5.3 了解关于自动排序布局变化的影响 89 4.5.4 使用手动排序 90 4.5.5 ...
  • 4.5 对数据透视表数据进行排序 86 4.5.1 使用“选项”选项卡上的排序图标排序 86 4.5.2 使用字段列表隐藏的下拉菜单排序 88 4.5.3 了解关于自动排序布局变化的影响 89 4.5.4 使用手动排序 90 4.5.5 ...
  • 4.5 对数据透视表数据进行排序 86 4.5.1 使用“选项”选项卡上的排序图标排序 86 4.5.2 使用字段列表隐藏的下拉菜单排序 88 4.5.3 了解关于自动排序布局变化的影响 89 4.5.4 使用手动排序 90 4.5.5 ...
  • 4.5 对数据透视表数据进行排序 86 4.5.1 使用“选项”选项卡上的排序图标排序 86 4.5.2 使用字段列表隐藏的下拉菜单排序 88 4.5.3 了解关于自动排序布局变化的影响 89 4.5.4 使用手动排序 90 4.5.5 ...
  • 该程序采用STL的sort排序函数,CSV数据进行排序(排序时包括首行(第0行)。可以按字符、数值和IP排序。排序方式还包括普通排序(整行作为一个参数进行比较)、将整行数据从指定列开始作为字符串起始按字符...
  • 如何移动或复制excel表格的工作表

    千次阅读 2019-03-28 18:40:40
    Excel中对工作表进行移动或复制操作分为两种情况,即在同一工作簿中移动或复制和在不同工作簿中移动或复制。 1.在同一工作簿中移动/复制工作表 如果需要把做好的工作表重新排序,用户可以通过移动工作表来完成;...
  • 可是对总表您尽可放心大胆编辑、修改,对数据进行各种处理,比如可以进行排序、筛选、删除等操作,哪怕移动和删除任何一行、一列,删除任何一个单元格也无妨。 3、具有恢复能力 本作品对“成绩册(公式)”和“成绩...
  • Min列进行排序,以找到最相似的大学团队。 白皮书介绍了使用的相似性指标, 与爱荷华州相似的颜色 colorRef表提供了归类在一起的颜色计数。 这使用固定边界的幼稚方法。 这种方法对于计算机视觉效果很好,但是人眼...
  • Excel百宝箱

    2012-10-27 17:09:21
    【相同项与不同项】:提取两列数据的共同项和不同项,也可以对两列数据的不同项或者相同项进行标示 【建文件目录】:对指定文件夹的文件建立目录,且生成链接,单击可以打开对应的文件 【建工作表目录】:对当前...
  • 可是对总表您尽可放心大胆编辑、修改,对数据进行各种处理,比如可以进行排序、筛选、删除等操作,哪怕移动和删除任何一行、一列,删除任何一个单元格也无妨。 3、具有恢复能力 本作品对成绩册和成绩单,虽然采用...
  • excel 工具箱

    2012-01-22 15:04:34
    【相同项与不同项】:提取两列数据的共同项和不同项,也可以对两列数据的不同项或者相同项进行标示 【建文件目录】:对指定文件夹的文件建立目录,且生成链接,单击可以打开对应的文件 【建工作表目录】:对当前...
  • 可是对总表您尽可放心大胆编辑、修改,对数据进行各种处理,比如可以进行排序、筛选、删除等操作,哪怕移动和删除任何一行、一列,删除任何一个单元格也无妨。 3、具有恢复能力 本作品对成绩册和成绩单,虽然采用...
  • EXCEL函数公式集

    热门讨论 2010-03-16 03:26:38
    根据给定的条件,对数据进行合计 十列数据合计成一列 统计汉字字符个数 关于取数 统计单元格内为空的格数 自动将销量前十名的产品代号及销量填入表 统计最大的连续次数3个“重复”个数统计在一列有重复的姓名...
  • Excel百宝箱8.0

    2011-06-07 21:32:17
    可以对1到253(Excel2003是1到28个)个区域取唯一值;前三个为必选参数,其余为可选参数。第一参数为ROW时先行后列取值,为COLUMN时先列后行(分大小写),第三参数开始为引用区域。 函数名称:消除空值 函数...
  • 第22节: excel中数据快速条件筛选 l  第23节:巧妙删除带有空格的单元格所在的行的内容 l  第24节: 巧用辅助列进行筛选 l  第25节:中文汉字繁体字和简体字快速转换 l  第26节: 隐藏最近使用...
  • Excel新增工具集

    2011-12-20 09:30:27
    5、工作表排序:工作簿的若干工作表顺序混乱查找方便,软件的工作表排序功能可以帮您将工作表按间序做升序与降序排列。 (六)Word文档的表与Excel工作簿的工作表之间的转化 1、Word转Excel:把若干个Word...
  • 可是对总表您尽可放心大胆编辑、修改,对数据进行各种处理,比如可以进行排序、筛选、删除等操作,哪怕移动和删除任何一行、一列,删除任何一个单元格也无妨。 3、具有恢复能力 本作品对成绩册和成绩单,虽然采用...
  • Excel百宝箱9.0无限制破解版

    热门讨论 2012-02-03 19:05:29
    【相同项与不同项】:提取两列数据的共同项和不同项,也可以对两列数据的不同项或者相同项进行标示 【建文件目录】:对指定文件夹的文件建立目录,且生成链接,单击可以打开对应的文件 【建工作表目录】:对当前...
  • EXCEL百宝箱8.0终极版

    2011-11-05 16:48:02
    可以对1到253(Excel2003是1到28个)个区域取唯一值;前三个为必选参数,其余为可选参数。第一参数为ROW时先行后列取值,为COLUMN时先列后行(分大小写),第三参数开始为引用区域。 函数名称:消除空值 函数...
  • 编写该库的目的是为了帮助我完成我的学习过程(仍在进行中),这就是为什么某些逻辑看上去多余并且可以Excel中的内置函数代替的原因。 我只是为了学习它而写了它们。 这仍然是一个正在进行的项目,并且正在开发更...
  • 根据给定的条件,对数据进行合计 十列数据合计成一列 统计汉字字符个数 关于取数 统计单元格内为空的格数 自动将销量前十名的产品代号及销量填入表 统计最大的连续次数3个“重复”个数统计在一列有重复的姓名...
  • 动画嵌入工作表中,删除FLASH原文件影响Excel中的效果 【提取选区重复值】将选择区域的数据,置于当前列中,忽略重复值 【清除列中重复值】将选择中重复出现的数据删除(提供保留第一次出现还是最后一次出现的...
  • Excel VBA实用技巧大全 附书源码

    热门讨论 2010-10-08 18:59:24
    01015获取在Excel主窗口一个窗口所能占有的最大高度和宽度 01016获取当前打印机名称 01017获取MicrosoftExcel剩余内存 01018获取MicrosoftExcel的总内存 01019获取计算机被Excel占用的内存 01020改变Excel窗口大小...
  • EXCEL 2007 宝典 10/10

    2012-03-31 22:37:02
     1.5.3 对数据使用排序  1.5.4 插入柱形图  1.5.5 打印设置 1.6 小结  第2章 输入和编辑工作表数据 2.1 了解所使用的数据类型  2.1.1 数值类型  2.1.2 文本类型  2.1.3 公式 2.2 手动输入各种数据  2.2.1 ...
  • EXCEL 2007 宝典 9/10

    2012-03-31 22:35:46
     1.5.3 对数据使用排序  1.5.4 插入柱形图  1.5.5 打印设置 1.6 小结  第2章 输入和编辑工作表数据 2.1 了解所使用的数据类型  2.1.1 数值类型  2.1.2 文本类型  2.1.3 公式 2.2 手动输入各种数据  2.2.1 ...

空空如也

空空如也

1 2 3 4 5 ... 18
收藏数 358
精华内容 143
关键字:

excel中不可以对数据进行排序