这周学习了office三件套,其中最喜欢excel。于是打算利用excel做一些每日数据的汇总,但在这之前要做一个自己的课表,以便于对每日要做的事有一个更详细的安排。其中主要用到的函数有:

today()

这个函数可以将系统时间转化为Excel可识别并进行计算的日期;

mid(目标单元格,提取数据的起始位置,数据长度)

假如A1单元格数据是“第5周”,然后在B1中输入"=mid(A1,2,1)",此时B1就显示为"5";

mod(被除数,除数)

mod函数返回的值就是余数,例如:mod(7,2)返回的值就是1——"7/2=3~1"

roundup(数值,保留小数位)

roundup函数用于向上舍入数字,  roundup(1.234,1)的返回值就是1.3

date(年,月,日)

date函数即日期,同样可被Excel进行计算

if(条件,满足条件返回的值,不满足条件返回的值)

if函数无论在哪都很常用,if(1>2,6,7)输出的即为7

value()

value即将数据转化为数值

len()

返回数据字符数量

lenb()

返回数据字节数量

然后就是整体的思路了。开学日期为3月1日,利用date函数将2021年3月1日转化为可进行计算的日期//date(2021,3,1)//用today函数返回的日期减去开学日期就是开学天数,每周七天,开学天数除以7为开学了几周,但是出现了一个问题:比如说我现在上着第七周的课,但是第七周还没有过完,这是利用上述步骤所得到的数便是6.×××,这是就要套用到roundup函数了。最终整体就是


//="第"&ROUNDUP((TODAY()-DATE(2021,3,1))/7,0)&"周"//


显示在单元格内的就是"第×周"。

我们知道有些课只在某些周上,比如英语课只在1~9周上课,我们就要用if函数来选定时间区间,如何选定呢?之前我们完成的"第×周"就可以拿来用了,因为这个×是根据系统时间而变化的,这正是我们想要的,只需要当1<="×"<=9的时候输出"英语课就行了",提取出×就需要用到mid函数了,假如"第×周"所在单元格为A1,那么显示课程的单元格的整体就是


//if(mid(A1,2,1)>=1,if(mid(A1,2,1)<=9,"英语课","")"")//


同时满足两个if条件时才会返回"英语课",任一个条件不满足就会返回空白值,如果更规矩一点就在mid函数外套用一个value函数。//其实不加也一样//

然后问题又来了,有些课单周上,有些课双周上,这个就要用到最后一个提到的函数了——mod,mod常用的一个功能就是判定数值奇偶性,若是英语课单周上,那么只需要多加一个周树为单周的条件即可——


//if(mid(A1,2,1)>=1,if(mid(A1,2,1)<=9,if(mod(mid(A1,2,1),2)=1,"英语课","")"")"")//


最后就是美化一下了,比如我不止想要显示课程,我还要表格显示出上课地点以及任课老师,但是这样数据太长了,不美观。这时我们可以使用到公式换行"char(10)",最终的整体——


//if(mid(A1,2,1)>=1,if(mid(A1,2,1)<=9,if(mod(mid(A1,2,1),2)=1,"课程名称"&char(10)&"上课地点 任课老师","")"")"")//


然后又有一个问题了,mid(A1,2,1)只能提取出一个数,对于“第10周”及以上输出的都是一个数字,也就是说第10周和第1周的课表是一样的,因为10仅被提取出了1,0却没有,这时候我们需要用到另外两个函数len()与lenb(),len函数返回的值就是选定单元格的字符数量,而lenb返回的是字节数量,简单通俗地讲:若A1是“第9周”,那么len(A1)返回的就是3,而lenb(A1) 返回的就是5,汉字占了两个字节一个字符,阿拉伯数字占了一个字节一个字符,那么lenb(A1)-len(A1)就是汉字的数量,len(A1)-(lenb(A1)-len(A1))就是数字的数量,也就是2*len(A1)-lenb(A1)。对于想提取出来混合文本中连续的数字,我们可以将mid的起始位置设定为第一个数字开始的位置,提取字符数量就为2*len(A1)-lenb(A1),引入到我们之前写的函数式中就是


//if(mid(A1,2,2*len(A1)-lenb(A1))>=1,if(mid(A1,2,2*len(A1)-lenb(A1))<=9,if(mod(mid(A1,2,2*len(A1)-lenb(A1)),2)=1,"课程名称"&char(10)&"上课地点 任课老师","")"")"")//


但记得要将此单元格的自动换行打开(位于【开始】中的【对齐方式】栏中)

当然没有单双周之分的课程将mod条件去除即可

用excel做一个全自动课表相关推荐

  1. 如何用Excel做一个战斗模拟器(一)升级经验表

    如何用Excel做一个战斗模拟器(二)属性表 如何用Excel做一个战斗模拟器(三)战斗过程模拟 目录索引 引言 确定战斗公式与怪物强度 确定人物升级经验 确定人物升级时间 确定升级所需经验 引言 作 ...

  2. 用excel做一个家庭流水账本 增加一些统计功能 和大家分享

    原文地址:http://blog.csdn.net/abbuggy/article/details/6639340 其实一直都是一个生活上比较粗线条的人,也一直都没有记账的习惯.工作五年了到底挣了多少 ...

  3. 如何用Excel做一个战斗模拟器(三)战斗过程模拟

    如何用Excel做一个战斗模拟器(一)升级经验表 如何用Excel做一个战斗模拟器(二)属性表 目录索引 定义战斗子过程 定位战斗双方基础属性 利用基础属性与战斗公式进行计算 战斗过程的运算与输出 判 ...

  4. html制作一个动态仪表盘,用Excel做一个动态仪表盘,会这个绝对是大神

    原标题:用Excel做一个动态仪表盘,会这个绝对是大神 Excel的仪表盘盛行,做起来也极其简单.(见图) (事实上上图的仪表盘认为两个部分,一个半环形图,一个是指针.我们先来搞定半环图. 首先你需要 ...

  5. excel部分网格线不见了_敬童年,用Excel做一个万花尺

    哈喽,大家好!童年已经远去了,但有一样东西,万花尺,可以带我们穿越时空,回到上个世纪八九十年代的童年.校门口卖东西的叔叔正在示范画出神奇的图案,姐姐从上海回来送我的礼物让所有小伙伴都羡慕,聚在一起比赛 ...

  6. 如何用Excel做一个战斗模拟器(四)装备的掉落与展示

    如何用Excel做一个战斗模拟器(一)升级经验表 如何用Excel做一个战斗模拟器(二)属性表 如何用Excel做一个战斗模拟器(三)战斗过程模拟 目录索引 定义掉落表与装备表 怪物本身掉落装备 定义 ...

  7. 如何用Excel做一个战斗模拟器(二)属性表

    如何用Excel做一个战斗模拟器(一)升级经验表 如何用Excel做一个战斗模拟器(三)战斗过程模拟 目录索引 属性表 属性表 首先确定人物的生命.攻击.防御.暴击值与闪避值属性.用公式将其设定为与等 ...

  8. 文件一另存为电脑就卡住_文件太多怎么办?用Excel做一个简易目录!轻松管理多个文件...

    作为一只社畜,电脑中肯定都是各种各样的文件,文件一多,就不好管理,这时候我们可以在Excel中制作一个简易的文件目录,点击对应的链接就可以打开文件!想知道怎么做吗?一起来学一学吧! 一.目录设置 1. ...

  9. 用Excel做一个简易的投票工具

    想要写一个博客也有很久了,不过作为一个划水菜鸟对所学的东西都不够深入,自觉没啥能晒出来的文章.今天服务工程课老师建议大家写写自己的技术博客,干脆就这个机会开始,给程序员的成长历程留点印记吧. 正好今天 ...

最新文章

  1. 程序员怎么赚更多的钱_自由职业技巧:如何感到更加自信和赚更多钱
  2. 沈向洋:读论文的三个层次
  3. leetcode-简单题-题序:1+7
  4. 线程同步,线程不同步_同步多线程集成测试
  5. Oracle插数据timeout,oracle 11g 频繁报kmgs_parameter_update_timeout
  6. VMware vCenter Converter Standalone 5.0的安装
  7. imgageJ开发【Java】
  8. HTML 最常用的标记
  9. 访问ntfs文件系统获取目标文件簇流
  10. 分页加载总页数计算公式
  11. nginx源码编译安装及使用
  12. C语言实验源程序保存,c语言实验1程序开发环境.doc
  13. Docker 官方安装文档
  14. WPS网盘如何更改网盘缓存位置
  15. QObject::moveToThread: Current thread(...) is not the object`s thread. Cannot move to target thread(
  16. 剑指offer 从未到头打印列表
  17. 15分钟正则表达式快速上手(js)
  18. 国王的金币for循环
  19. 转:明茨伯格:管理者工作的传说和现实
  20. docker介绍说明,docker配置代理加速器、docker使用国内镜像仓库

热门文章

  1. 基于pytest来演示一个PO测试模式案例
  2. java计算机毕业设计web硕士研究生招生考试专业报考查询及学习系统设计与实现源码+mysql数据库+系统+lw文档+部署
  3. 因果推断(二)——混杂因子,D-分离,后门准则
  4. 简历撰写——Java与.NET(当年毕业生版本)
  5. ThinkPHP3.2 微信发起通联支付失败,报错errMsg:config:fail, Error:invalid signature
  6. 【实训日记9】Ansj5.1.3版本自定义词典、歧义词典的使用
  7. Redis主从同步数据详解
  8. 爬虫实例(二)—— 爬取高清4K图片
  9. 解决死锁问题的基本方法
  10. 手机安装linux模拟器教程,Ubuntu下安装Genymotion安卓模拟器 Linux教程 | 李的