精华内容
下载资源
问答
  • 最近一朋友找我帮个忙,让我N多身份证找到18岁以上的人。我还想着用SQL查询来弄,谁让是干IT的呢,没想到被我一个朋友用excel瞬间解决。。。。学习新的东西是多么的重要啊。 其实就是利用了excel的MID函数。...

       最近一朋友找我帮个忙,让我在N多身份证中找到18岁以上的人。我还想着用SQL查询来弄,谁让是干IT的呢,没想到被我一个朋友用excel瞬间解决。。。。学习新的东西是多么的重要啊。

       其实就是利用了excel中的MID函数。例子:MID(x,y,z);  MID函数可以截取表中的字符段,有三个参数,依次表示为获取哪一格数、从第几个字符开始、截取几位。例如MID(A1,7,4)表示截取A1格内从第7个开始长度为4的字符串。说道这里,上面的问题就迎刃而解。要算大于18岁的,肯定是获取身份证号码中的年份才行,用现在的年份减去获取到的年份,即为岁数。例如今年为2016年,则函数应为  =2016-MID(A1,7,4)。注意书写时候是英文。然后鼠标拖到单元格右下角往下拖拽,所有的岁数就出来了~右击,选择筛选,按照值刷选,选择大于等于18岁~大功告成!

       是不是挺简单的。别看我说了这么多,只是为了详细。毕竟对于非经常使用excel的同学来讲,确实莫名其妙。

    转载于:https://www.cnblogs.com/davecat/p/6216079.html

    展开全文
  • dg-table是一个基于ElementUI封装的表格组件 demo也已经上传到gitee上了 查看demo演示点击这里 1.通过vue-cli搭建项目 vue create demo-dg-table 搭建完毕后 这里推荐使用 vscode 打开工程目录,截图如下: vue-...

    dg-table是一个基于ElementUI封装的表格组件

    demo和文章中图片表格中的数据均有js随机生成的 如有冒犯的地方还请见谅

    demo也已经上传到github上了
    查看demo演示点击这里

    1.通过vue-cli搭建项目
    vue create demo-dg-table
    

    搭建完毕后 这里推荐使用 vscode 打开工程目录,截图如下:
    项目目录.png
    vue-cli3.0的目录较2.0的简洁很多。vue cli3.0更多内容点击这里

    2.依赖包的安装

    dg-table是基于ElementUI开发的,目前没有从ElementUI中剥离出使用到的组件,所以使用的时候ElementUI一起npm下来

    npm i element-ui dg-table -S
    

    我们将在package.json中看到element-ui和dg-table的依赖
    项目依赖
    我们可以在node_modules中找到dg-table包
    nodemodule下的dgtable.png
    包目录比较简单也没经过压缩,大家可以阅读源码提意见,毕竟我刚入vue的坑不久…也是由于公司项目急需,所以编写过程中一开始没有规划,跟项目有点耦合,这段时间才剥离出来,难免有点乱。

    3.代码编写
    3.1 在main.js中使用vue.use()全局注册组件
    import Vue from 'vue'
    import App from './App.vue'
    import ElementUI from 'element-ui'
    import DGTable from 'dg-table'
    import 'element-ui/lib/theme-chalk/index.css' // elementui 的主题css 可以自定义主题
    Vue.use(ElementUI) // 全局注册elementui
    Vue.use(DGTable) // 全局注册 dg-table 这样我们就可以 在html中<dg-table></dg-table>使用组件了
    Vue.config.productionTip = false
    
    new Vue({
      render: h => h(App),
    }).$mount('#app')
    
    
    3.2 HelloDGTable.vue 也是这次主要的文件

    3.2.1 html部分

    <template>
      <div class="hello">
        <dg-table
          :data='data'
          :selection="true"
          :pagination="true"
          :page-config="{ pagenum:pagenum, curpage: curpage }"
          :filter-init="[]"
          :row-click="onclick"
          :action-config="activeConfig"
          :column-config="config"
          @filter-change='getFilter'
          @select-change="getselect"
          @page-change="getpage"></dg-table>
      </div>
    </template>
    

    上面的代码展示的是全部的属性和事件,可以根据自己的需求配置

    3.2.2 javacript部分 重点讲解自定义部分的内容

    import cc from './columcomponent.vue'  // 自定义列的组件
    import CF from './customizefilter.vue' // 自定义的筛选器
    import CM from './customizemenu.vue' // 自定义的操作列
    import {
      searchdata,
      dofilter,
      cities,
      createTableDataByRandom
    } from '../assets/js/simulationapi.js' // 用于模拟表数据的js
    export default {
      methods: {
        getpage (page) { // 翻页变化事件的绑定函数
          this.curpage = page
          let allfilter = {
            filters: this.filters,
            page
          }
          let res = dofilter(allfilter)
          this.data = res.data
        },
        getFilter (val) { // 筛选条件变化事件的绑定函数
          console.log(val)
          let allfilter = {
            filters: val,
            page: 1
          }
          this.filters = val
          let res = dofilter(allfilter)
          this.data = res.data
          this.pagenum = res.pagenum
        },
        getselect (val) { // 多选变化事件的绑定函数
          console.log(val)
        }
      },
      mounted () {
        let res = createTableDataByRandom(587)
        this.data = res.data
        this.pagenum = res.pagenum
      },
      data () {
        return {
          filters: 3,
          select: true,
          pagination: true,
          pagenum: 1,
          curpage: 1,
          onclick: (row) => {
            alert(JSON.stringify(row))
          },
          activeConfig: {
            type: 'customize', // 声明类型为自定义
            label: '获取',
            component: CM, // 引用vue组件
            handlers: { // 在组件中 采用 handlers.firsth(row)使用
              firsth: (row) => {console.log('first', row)},
              second: (row) => {console.log('second', row)}
            },
            width: '100'
          },
          config: [
            {
              prop: 'name',
              label: '姓名',
              width: '80',
              filterConfig: {
                ftn: '姓名',
                type: 'search',
                key: 'uid',
                placeholder: '输入姓名',
                listinfo: {
                  handler: searchdata,
                  searchkey: 'name', // 用于搜索api对应的key
                  showkey: 'name' // 在列表中要显示的字段
                }
              }
            }, {
              prop: 'gender',
              label: '性别',
              component: cc, // 自定义性别处理的组件 在组件中会传入row 当前行
              width: '80',
              filterConfig: {
                ftn: '性别',
                type: 'radio',
                key: 'gender',
                listinfo: {
                  labelkey: 'label',
                  valuekey: 'value'
                },
                items: [
                  { label: '男', value: 1 },
                  { label: '女', value: 2 }
                ]
              }
            }, {
              prop: 'birthPlace',
              label: '出生地',
              processdata: (row, prop) => {
                // console.log('process data:', row) // 返回整行 便于 处理一些依赖其他列的数据
                var space = ''
                if (!row.birthPlace) return '-'
                var curobj = row.birthPlace
                while (1) {
                  if (curobj) {
                    space += curobj.name
                    curobj = curobj.child
                  } else {
                    break
                  }
                }
                return space
              }, // 数据的处理 默认提供一些 也可以自定义处理数据的函数
              filterConfig: {
                ftn: '出生地',
                key: 'birthPlace',
                type: 'cascader',
                hidebg: true,
                props: {
                  value: 'code',
                  label: 'name',
                  children: 'children'
                },
                items: cities()
              }
            }, {
              prop: 'birthDay',
              label: '出生日期',
              filterConfig: {
                ftn: '生日',
                hidebg: true,
                type: 'date',
                key: 'birthDay'
              },
              processdata: 'time'
            }, {
              prop: 'phone',
              label: '手机号',
              filterConfig: {
                ftn: '手机',
                type: 'edit',
                key: 'phone'
              }
            }, {
              prop: 'age',
              label: '年龄',
              filterConfig: {
                ftn: '年龄',
                type: 'range',
                key: 'age',
                unit: '岁'
              }
            }, {
              prop: 'age2',
              label: '年龄'
            }, {
              prop: 'age3',
              label: '自定义筛选',
              filterConfig: {
                ftn: '自定义筛选',
                type: 'customize', // 声明为自定义筛选器
                component: CF, // 筛选的组件 返回的数据要按规定格式返回
                key: 'age',
                customizedata: {label: '我是用户自定义的数据', value: 'balabalabala'} // 会传入组件中供组件使用
              }
            }
          ],
          data: []
        }
      }
    }
    

    3.3.3 自定义操作列的组件

    <template>
      <div>
        <el-button @click.stop="click1" size="mini">click1</el-button>
        <el-button @click.stop="click2" size="mini" style="margin:0;margin-top:5px">click2</el-button>
      </div>
    </template>
    

    注意 :如果有提供行的单击事件在 下面组件的单击事件上加上.stop的修饰符,防止事件传播触发到行的单击事件

    props: ['row', 'handlers'],
    methods: {
       click1 () {
         this.handlers.firsth(this.row)
       },
       click2 () {
         this.handlers.second(this.row)
       }
     }
    

    自定义操作列.png

    自定义操作列数据展示.png

    3.3.4 自定义列组件

      <div>
        <span v-if="row.gender === '1'" class="male">{{gendermap[row.gender]}}</span>
        <span v-if="row.gender === '2'" class="female">{{gendermap[row.gender]}}</span>
      </div>
    
    import { GENDER } from '../assets/js/datamap.js'
    export default {
      props: ['row'],
      data () {
        return {
          gendermap: GENDER
        }
      }
    }
    

    自定义数据处理组件.png

    3.3.5 自定义表头筛选器

      <div style="padding:10px">
        <div><span style="font-size:12px">我是一个用户自定义的筛选器</span></div>
        <div class="o"><el-button @click="todoSearch">点击我进行筛选</el-button></div>
      </div>
    
      props: {
        customizedata: Object,
        filterkey: {
          type: String,
          default: ''
        },
        ftn: {
          type: String,
          default: ''
        }
      },
      methods: {
        todoSearch () {
    // 按照这种格式emit数据
          this.$emit('getFilterBridge', {
            key: this.filterkey,
            label: this.customizedata.label,
            value: this.customizedata.value,
            ftn: this.ftn
          })
        }
      }
    

    自定义筛选的展示.png

    自定义筛选返回的数据.png

    自定义筛选器.png

    4.部分截图

    初始状态.png
    radio筛选器.png

    search筛选器.png

    纯文本筛选器.png

    范围筛选器.png

    级联筛选器.png

    日期筛选器.png
    某些筛选条件.png
    github demo点击这里

    展开全文
  • mysql根据出生日期统计各年龄段男女人数

    千次阅读 热门讨论 2018-09-24 14:55:48
    表格名称 user, 字段 id, sex ( M 表示男, F表示 女), birthday出生日期, 没有 age字段 其中 ROUND(DATEDIFF(CURDATE(), birthday)/365.2422) 是获得 年龄 CASE WHEN的格式是: CASE WHEN ( 条件) THEN 结果 ...

    表格名称 user, 字段 id, sex ( M 表示男, F表示 女), birthday出生日期, 没有 age字段

    其中 ROUND(DATEDIFF(CURDATE(), birthday)/365.2422) 是获得 年龄

    CASE WHEN的格式是:

    CASE
       WHEN  ( 条件)  THEN  结果
       WHEN  ( 条件)  THEN  结果
       WHEN  ( 条件)  THEN  结果
    END
    
    SELECT nnd as ageRange,sex,count(*) as count from(
       SELECT
          CASE
             WHEN ROUND(DATEDIFF(CURDATE(), people_birthday)/365.2422) >= 0
                 and ROUND(DATEDIFF(CURDATE(), people_birthday)/365.2422) <= 12 THEN '0-12岁'
             WHEN ROUND(DATEDIFF(CURDATE(), people_birthday)/365.2422) >= 13 
                 and ROUND(DATEDIFF(CURDATE(), people_birthday)/365.2422) <= 17 THEN '13-17岁'
             WHEN ROUND(DATEDIFF(CURDATE(), people_birthday)/365.2422) >= 18 
                 and ROUND(DATEDIFF(CURDATE(), people_birthday)/365.2422) <= 22 THEN '18-22岁'
             WHEN ROUND(DATEDIFF(CURDATE(), people_birthday)/365.2422) >= 23
                 and ROUND(DATEDIFF(CURDATE(), people_birthday)/365.2422) <= 30 THEN '23-30岁'
             WHEN ROUND(DATEDIFF(CURDATE(), people_birthday)/365.2422) >= 31 
                 and ROUND(DATEDIFF(CURDATE(), people_birthday)/365.2422) <= 59 THEN '31-59岁'
             WHEN ROUND(DATEDIFF(CURDATE(), people_birthday)/365.2422) >= 60 THEN '60岁以上'
          END as nnd
         ,people_sex as sex
       from people_info_sync
    ) a GROUP BY nnd,sex;
    

    结果:
    在这里插入图片描述
    存在的缺点: 因为是使用 group by的方法, 所以如果没有记录的话, 是不会返回数据的,
    除非你用 left join 新建一张表来存 “0-12岁”,“13-17岁”,“18-22岁”,“23-30岁”,“31-59岁”,"60岁以上"这些数据, 然后使用 左连接 left join , 这样就能保证一定会有这些数据。。。但你的组长是无论如何也不会允许你这么干的哈哈。。

    写了一个后台处理的方法, 可以参考下

        /**
         * sql查询使用Group By方法,如果数据库本身没有那条记录的话,就不会返回相应的总数,所以需要定死数组,再通过遍历的方式去查找
         * @return
         */
        public List<CountAgeDto> countAge(){
            //这里就不能用 new String[]{"男","女"} 了,要和你数据库查出来的结果一样才行
            String[] sexArr = new String[]{"F","M"};
            String[] ageArr = new String[]{"0-12岁","13-17岁","18-22岁","23-30岁","31-59岁","60岁以上"};
            //从数据库获得数据, 这个countAge()方法要自己写,就执行上面的sql语句
            List<CountAgeDto> dataList =  peopleInfoSyncDao.countAge();
            //首先初始化
            List<CountAgeDto> countAgeDtoList = new ArrayList<>();
            for(String sex : sexArr){
                for(String age: ageArr){
                    CountAgeDto countAgeDto = new CountAgeDto();
                    countAgeDto.setAgeRange(age);
                    countAgeDto.setSex(sex);
                    //初始化为0, 确保都有值
                    countAgeDto.setCount(0L);
                    //遍历数据库查出来的集合
                    if(dataList != null && dataList.size() > 0){
                        for(CountAgeDto d : dataList){
                            //如果和当前的sex和age相同,就说明count有值,则退出
                            if(d.getAgeRange().equals(age) && d.getSex().equals(sex)){
                                countAgeDto.setCount(d.getCount());
                                break;
                            }
                        }
                    }
                    countAgeDtoList.add(countAgeDto);
                }
            }
            return countAgeDtoList;
        }
    

    其中CountAgeDto是:

    public class CountAgeDto {
        /**
         * 总数
         */
        private Long count;
        /**
         * 年龄段
         */
        private String ageRange;
        /**
         * 性别
         */
        private String sex;
    
        public Long getCount() {
            return count;
        }
    
        public void setCount(Long count) {
            this.count = count;
        }
    
        public String getAgeRange() {
            return ageRange;
        }
    
        public void setAgeRange(String ageRange) {
            this.ageRange = ageRange;
        }
    
        public String getSex() {
            return sex;
        }
    
        public void setSex(String sex) {
            this.sex = sex;
        }
    
        @Override
        public String toString() {
            return "CountAgeDto{" +
                    "count=" + count +
                    ", ageRange='" + ageRange + '\'' +
                    ", sex='" + sex + '\'' +
                    '}';
        }
    }
    
    展开全文
  • SQL如何根据指定列的不同值区间分段,如人员表按年龄段区分 SELECT  COUNT(CASE WHEN NL BETWEEN 20 AND 30 THEN NL END) AS '20~30', COUNT(CASE WHEN NL BETWEEN 30 AND 40 THEN NL END) AS '30~40', COUNT...


    SQL如何根据指定列的不同值区间分段,如人员表按年龄段区分



    SELECT 
    COUNT(CASE WHEN NL BETWEEN 20 AND 30 THEN NL END) AS '20~30',
    COUNT(CASE WHEN NL BETWEEN 30 AND 40 THEN NL END) AS '30~40',
    COUNT(CASE WHEN NL BETWEEN 40 AND 50 THEN NL END) AS '40~50',
    COUNT(CASE WHEN NL BETWEEN 50 AND 60 THEN NL END) AS '50~60',
    COUNT(CASE WHEN NL BETWEEN 60 AND 70 THEN NL END) AS '60~70'
    FROM 
    (SELECT DATEDIFF(YEAR,DATEOFBIRTH,CONVERT(NVARCHAR(20),GETDATE(),23)) NL FROM TABLENAME
    WHERE ACCESSIONSTATE IN('1','2','6')
    AND DATEOFBIRTH !=''
    AND DATEOFBIRTH IS NOT NULL
    AND DATEOFBIRTH < '1996-01-01') A

    20~30	30~40	40~50	50~60	60~70
    722	430	55	37	12


    展开全文
  • 1.计算年龄: ...当多个表格形式一致,如某医院每一年各部分的门诊情况,每个月份的表格记录完全一致,若做年底总结,需将12个表数据综合,操作如下: 首先建立新表,复制某月的表格,删除其中的数据...
  • 表格是一种软件系统很常用的数据表现形式.特别是基于数据库的应用系统.表格更是不可缺少的界面组件. SWT的表格组件(Table类)还是不怎么使用的,开发一般还是使用JFace的表格组件TableViewer. TableViewer是...
  • 项目常会用到时间选择器,但是找了一下layui的官方文档时间选择器是独立的存在,但是要实现end时间选择器max为start选择器最终选择时间,还需要done(选中)事件做下一步处理 废话不多说。直接上代码 /** * @...
  • 主要给大家介绍了关于利用python3筛选excel特定的行(行值满足某个条件/行值属于某个集合)的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编...
  • MySQL解决深度分页 表格主键id是唯一有索引的字段,表格有数据1000万,分页查询数据,每页显示10条,查询第1万页,如何编写SQL效率最高
  • 摘要:表格问答是一种针对自然语言问题,根据表格内容给答案的任务。 一、什么是表格问答 表1是一张综艺节目收视率报表,假如你需要了解市场份额3%以上的综艺节目,你会选择采用什么样的方法? 首先,用肉眼...
  • excel表格的函数公式大全

    千次阅读 2014-07-28 15:12:29
    这篇教程中将为你介绍excel表格的公式大全,能使你更好的使用excel!  1、ABS函数 ... 主要功能:求相应数字的绝对值。... 应用举例:如果B2单元格输入公式:=ABS(A2),则A2单元格无论输入正数(如100
  • datatable 自定义筛选

    2017-04-14 17:16:00
     可以从查询时间那里按时间查询,也可以搜索框那里按照时间查询,只能查询你输入的日期(是单个日期),注意,输入格式要和你表格中的时间的格式一致,否则查询不到数据  js createTable();//把datatable 渲染到...
  • excel知道出生年月如何自动计算年龄
  • props: { result: 'result', // 配置响应结果列表字段 total: 'page.total' // 配置响应结果总页数字 }, ajax: { // 接收 Promise 对象 query: ({page, sorts, filters}) => { const queryParams = Object.assign...
  • 销售需求丨表格配色

    2020-08-08 12:18:48
    BOSS:那个谁,那个什么茶...BOSS年龄大了,看不懂可视化插件,就希望能有一个表格,简简单单就行,但是需要让表格自动标记颜色。 白茶当时一合计,这不就是热力图么?只不过要求体现在表格当中。 注:感谢各位大佬..
  • EXCEL的MID函数查询身份证年龄

    千次阅读 2018-03-09 13:50:35
    EXCEL的MID函数根据身份证查询年龄,其中单元格格式要选择为数值格式,才会跳出截断的年份,不然只是如图所示一个公式现在的年份减去MID函数截取的年份 算出年龄MID 返回文本字符串从指定位置开始的特定数目的...
  • excel 表格使用方法

    2013-03-21 00:00:00
    应用举例:如图1所示,F4单元格输入公式:=DCOUNT(A1:D11,"语文",F1:G2),确认后即可求“语文”列,成绩大于等于70,而小于80的数值单元格数目(相当于分数人数)。 特别提醒:如果将上述公式...
  • 并不是所有的后台开发都有美工和前端工程师来配合做页面,为了显示...DataTables提供了针对表格的排序、浏览器分页、服务器分页、筛选、格式化、统计等强大功能。  工作对程序员的学习模式才深有体会,不是从入门...
  • A表字:员工姓名、员工年龄、员工学历。。。 B表字:员工姓名、月份、工资金额。。。 类似这样的主从表,如何实现点击A表姓名,跳转到B表,并筛选出当前员工的工资数据。 实现以上效果,需要写VBA,A表...
  • 前天看书的时候第一次看到了列联表卡方检验,觉得这个东西不难又相对容易实现,刚好知乎 @算命师 的文章是用R来实现卡方检验,于是借用他的数据,我spyder上面实现了。(感谢 @算命师 的数据)这是一份手游数据...
  • 如何恢复EXCEL菜单栏和工具栏的默认状态 有网友求救,问如何恢复EXCEL菜单栏和工具栏的默认状态呢?... 如上面的示例,为筛选出年龄大于30且工种不为车工的数据。此外示例还给单列多组条件与多列单...
  • vika维格表公测很长一时间后,飞书多维表格也紧跟其后,开启了飞书多维表格的内测。两者都是为了改变Excel这个传统表格的使用方式,让项目管理变得更加的轻松高效。 传统电子表格的基础上,vika维格表融入了...
  • 完整MySQL入门指令练习,有插入表格数据 欢迎关注微.信公众号:软件集合 // 完整MySQL入门训练,有插入数据 -- <01 mysql数据库的操作> -- 连接数据库 mysql -uroot -pmysql -- mysql: [Warning] Using a ...
  • jquery 表格的增加删除和修改及设置奇偶行颜色

空空如也

空空如也

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

如何在表格中筛选出年龄段