excel vba 如何将日期周几转换成文字_Excel 从精通到入门
Excel 从精通到入门
引子
Excel? 这么简单的东西有学的必要吗?公式加减乘除,诶等等这个日期怎么变成 #### 了,虽然文本数字搞不清楚,但也算熟练使用 Excel 啦。
WOW, Awsome, Excel 有点厉害,Vlookup 函数这么方便的吗?我会了这么多东西,简历上写个精通 Excel 不过分吧。
Emmm, Excel 好像比我想象中复杂一点,函数图表有点麻烦噢,好多不知道的东西学也学不完,自己只能说略懂。
额,DAX 是什么,PowerQuery 又是什么,PivotTable 和 PowerPivot 又是什么和什么 @_@ 会手写 VBA,会用数据透视表,搞不定的时候会借助 Python,勉强算是入门好了。
精通 Excel 的几个阶段
说了一大堆,也不知道到底说了啥。简单讲哲人苏格拉底说过,知道的越多,才知知道的越少。Excel 正是第一眼简单,深入了解才知其博大精深。业余使用者从精通到入门大致分为五个阶段:
基础知识、基本操作
单元格格式,表格样式、查找、冻结窗格、自动求和
进阶操作,快捷键,图表
条件格式、筛选、分列等等点点鼠标就可以实现的功能。微博、QQ 空间上有很多只需要点点鼠标就能完成的 Excel 炫酷操作就属于第二阶段。到这里基本上能处理超过大部分工作,而且觉得比较顺手。
如果不是专业做,快捷键不用记很多。用好 Ctrl、Shift、Tab、方向键等的组合键,就能感到得心应手行云流水。
图表本来应该单独归为一类。我的本业是数据可视化,但我一直相信条理清楚的数据自己会说话,做表格的时候拎得清比花哨的图表更重要,在恰当的时机会用图表即可。
公式、函数
公式指输入框中等号开始的内容,加减乘除等于。
函数指带形式上括号的,返回一定结果的计算过程。主要分为逻辑、文本、时间和日期、查找四大类。
精通 Excel 的分界线
- 数据透视表
数据透视表实际上是个筛选器,通过五层方法,1切片器筛选,2整表筛选,3列筛选,4行筛选,5输出的值,抽丝剥茧,从复杂的数据表中找出我们需要的数据。
- VBA
Excel + VBA 是图灵完备的,也就是说其他语言能完成的事情,VBA 同样也能。理论上你可以通过 VBA 完成任何计算机可能完成的任务。真正的屠龙宝刀点击丢送(划掉)。
入门 Excel 的分界线
- (论外)更深入的领域
DAX? PowerPivot? 是什么,PowerQuery?
- 其他,文件,Office 套件联动
文件类型,xls xlsx xlsm xlsb 分别是什么,了解例如 csv json xml 等其他的数据文件格式,知道 Excel 自动保存机制,知道 Excel 为什么被锁定……不想让努力付诸东流,还是要多了解一下噢。另外很少有人只用到 Excel,和 PowerPoint、Word 联动也是必备技能。值得一提的是 Word 里面的表格会更让人抓狂,千万别把表格用成了一种绘图工具 = =
一个例子
总是说 Excel 有多厉害,难免有往自己脸上贴金之嫌。那么通过实际的工作,展示一下处理好一张 Excel 表,需要用到哪些知识和技巧。
场景再现
作为元气满满的公司新人,那些无关大局,却又有点麻烦的事情,当然是要主动去承担啦,不然大事做不来,小事不愿做,对得起公司开的工资嘛。
老师:小王呀,听说你大学学的计算机,那你 Excel 用得一定特别溜啦?
我:(警觉)差不多吧,也不是所有人都用的好,我们专业不考计算机二级的……
老师:那太好啦,我们公司为了激励员工健身,构建了一个考勤机制。每个月健身房打卡超过六次的员工可以发奖金。但是不是每次打卡都是有效的。上班时间打卡不能算。周一到周五下午,周三周五中午是有效时间,超过这个时间就不算了。但是如果没有在上班时间锻炼,可以掐头去尾只留有效时间。外勤、手机打卡不算, 只有在公司健身房门口的考勤机打卡才算。
我:好的,我明白了(大概),我这就去做
老师:这是考勤记录表,你这周做好就行。
我:好的,没问题。俺这就去做
整理思路
先理一理需求:
通过健身打卡记录表,计算员工有效健身的时间和次数。
再让我理一理考勤记录表:
有一个数据规模一万行左右的 Excel 表。
每行是一条打卡记录。员工只要打卡就会留下一行数据。但是这个数据可能是正常签到,也可能是正常签退,当然有更多无效的打卡
姓名可以重名,但是员工 ID 可以当作“主键”
考勤日期和时间,是指预设的打卡时间段。打卡系统对时间段有一个判断,比如说周五 17:39 打卡,对应的是周五下午 17:30 到 20:30 这个时间段。但这个判断不一定准确。
打卡时间,顾名思义员工实际的打卡时间。
打卡地址:在考勤机上打卡,地点固定是公司。
打卡设备:健身房门口考勤机或者手机上打卡。
最后我们理一理其中的逻辑:
上班时间不能打卡,12:00 和 17:30 前十分钟之外,也就是 11:50 和 17:20 之前打卡无效。
周一到周五下午,周三周五中午打卡有效,其余时间段打卡无效。
打卡设备:这条很好判断,健身房门口考勤机有效,其余无效。
正常情况下,连续的两条有效的记录正好是一条有效签到,一条有效签退。但是有的签到和签退无效,与之匹配的另一条也随之失效。所以只有找同一天同一时段同一个人连续两条有效记录。
下午 17:30 到 20:30,中午 12:00 到 14:00 是有效时间。超过有效时间的部分不计入总有效时间。
单次有效时间超过 60 分钟,计为一次有效健身。
最后累加统计每个人的有效健身时间和健身次数。
着手工作
判断的条件和过程可以用一张图清晰的罗列出来。接下来是具体步骤的说明:
首先是筛选。打卡设备“考勤机”,打卡结果不能是“外勤、打卡无效”等。将筛选后的数据另建新表。
接下来的判断和计算分成小步骤。每个判断结果 "TRUE/FALSE" 都会独占一列,最后用 "AND" 逻辑连结。计算结果也会各独占一列,我们称这样的列叫“中间列”。这样做的好处是易读易查易改。
判断是否是同一个人,同一天,直接用 "=" 比较本行(从签到数据开始)和下一行(正常有效的话会是签退数据)共两行的 userid 和考勤日期单元格,有效数据会体现在签到的一行,后文所有的计算结果也在签到的一行有效。
判断打卡时间段,签到或签退,用 FIND( ) 函数,如果 "12:00" 字符串被找到,说明是中午签到时间。
判断出来签到和签退后,也直接用 "=" 试着匹配上下两行签到签退,如果本行是签到,下一行签退,则形成一次完整的打卡记录。
转换打卡时间,用 RIGHT( ) 和 LEN( ) 从形如 "2019-10-24 17:28" 的时间日期字符串中取出 "17:28" 的时间。接着使用 TIMEVALUE( ) 函数转换成数值,单位是天,0:00 的值是 0,12:00 就是 0.5,18:00 的值是 0.75,24:00 的值是…… 0,实际上是第二天的 0。上文中的 17:28 是 0.727777778。
判断是否是非工作时间,用上一步中得到的打卡时间值,和工作时间的时间值比较即可。
调整时间也很简单,用 IF( ) 函数判断在规定时间之前打卡签到,若提前时间点自动调整为打卡时间点,若没有提前,则原样保留。
计算有效时间和判断是否计入总数,用以上步骤得到调整后的签到签退,做差,得到时间段,单位是天,乘以 24 再乘 60 得到分钟数,判断是否大于 60 得到是否是有效的一次健身。至此,一次记录的处理过程结束。然后我们可以拖动单元格,整个表格处理完毕。
接下来,我们可以选中数据,插入数据透视表,选中姓名、有效时间、有效次数,数据透视表会自动按姓名分组,将时间累加,我们可以得到每个人的有效时间之和、总有效次数。在有效时间或次数列右键降序排序,我们可以很清楚的知道哪位同事健身时间比较多、次数比较多,可以给他们多发奖金。
自动化过程
过程清晰,结果正确,但是这样还不能交差。因为每个月都要统计一次,把表交出去之后要和接手的人讲清思路和用法,不亚于重做一遍的工作量,关键是不一定保证一个月之后还有人能记得住。
不过学计算机的孩子嘛,能点一下,就绝不点两下,能自动完成,就绝不手动。只有足够懒,才能变得足够聪明、足够优秀。接下来请“宏”来帮我们完成重复工作。
简单说一下我对“宏”和 VBA 的理解,宏是 VBA 语言编写的脚本,可以完成我们指定的操作,但 VBA 包含的范围不仅仅是宏。VBA 是一种图灵完备的语言,定义变量,赋值运算,逻辑判断,循环跳转都不在话下,顺序执行步骤只是它强大功能的一小部分。
既然我们只需要自动化一些操作,只需要用到录制宏即可,不需要深入了解 VBA。
我们需要录制的功能如下:
筛选数据,选出考勤机、打卡有效的数据
复制筛选后的数据到新数据表
复制判断和计算过程函数
创建数据透视表
隐藏过程中的数据表
在开发工具-->录制宏点击开始录制宏,然后稍做调试修改即可。主要是删改一下数据表名称,使得重复运行时不会读到空表、重复建表、引用旧表。
最后,我们在原始数据表插入一个按钮,关联宏。下次使用时替换原始数据内容,点击就可以运行宏啦。一键得出结果的感觉有没有很棒呢?
这个例子完整的涵盖了精通 Excel 的前五个阶段:
基础知识、基本操作 单元格文本格式、时间日期格式。表格样式,套用表格格式
进阶操作,快捷键,图表 通过筛选去除不符合要求的数据 用到了各种快捷键
公式、函数 公式用到等于大于小于 函数涉及了四大类,逻辑、文本、时间和日期、查找,包括计算过程用到的 FIND( ) COUNT( ) IF( ) ISERR( ) AND( ) RIGHT( ) TIMEVALUE( ) 和辅助工作中用到的,干什么都绕不开的 VLOOKUP( )
数据透视表 用到了最基础的数据透视表功能,筛选分组求和。
VBA 用到了简单的录制和运行宏功能
也就意味着,做完这张表就证明你的 Excel 达到了入门水平,可以继续探索更丰富多彩的表格世界啦。
另一个例子
场景再现
leader:我们这次考核,90 分及格,题库有八百多道题,我们都要背会。这是题库,你们这几天重点记一下。
组员 A:我们可以把这些选项都填到题目里去,打印出来,方便我们看。
组员 B:有的是单选,有的是多选,还挺麻烦。
组员 C:我们每个人分一百道题,把它们复制进去再汇总吧。
我:我们老员工们都很忙,这个就交给我来做吧。下班前能做好。
一行函数,做到把多选题的正确答案填进题目中的空格:
=SUBSTITUTE([@题目],"()","("&IF(ISERROR(FIND("A",[@答案])),"",[@选项A])&" "&IF(ISERROR(FIND("B",[@答案])),"",[@选项B])&" "&IF(ISERROR(FIND("C",[@答案])),"",[@选项C])&" "&IF(ISERROR(FIND("D",[@答案])),"",[@选项D])&")")&" "&[@答案]
下面是解释:
思路很简单,答案中包含 A,就把 A 选项的内容拉出来,否则不拉取。BCD 同理。然后将拉出来的选项拼接成字符串,替换掉空的括号。
形如 "[@列名]" 的引用方式是“结构化引用”,套用表格格式之后可以使用这种引用方式,代替 A1 B2 这种单元格名。
SUBSTITUTE( ) 是文本替换函数,具体用法请查阅文档
IF( ) 我们上个例子中用到过,表示判断
FIND( ) 也用到了,用来查找是否包含某字符
ISERROR( ) 有点难理解,但只要你试一下就立刻会明白它有什么用。FIND( ) 找不到结果会返回一个错误值,只要其中一个返回了错误,就会导致整个嵌套函数的值变成错误。我们要避免单个的结果影响整个函数。
& 用于拼接字符串,字符串可以从单元格得到,也可以是引号中的内容。
多选会了,单选更是小菜一碟。接下来把 Excel 内容复制进 Word,括号中选项标红。Word 替换功能不仅可以替换文字,还可以替换成特定格式。这就是另一个故事了。
总结
本篇结合例子,聊到了 Excel 进阶要掌握的几大块知识,基础、进阶、公式、透视表、VBA。别的点未能提及,不代表它用的不多,只是他们游离在主线之外(更多的因为我自己也不会,以己昏昏使人昭昭哈哈)。
抛砖引玉,学 Excel 不是说今天记了几个公式,明天会了几种操作,马上就能学会了,这些是日积月累的过程。如果硬要说有一种通用的方法,那就是想方设法把自己的问题,转化分解成合乎逻辑的,Excel 可能解决的小问题,然后去搜索每个小问题的解决方案。就像多选填答案的例子,把稍复杂的问题一步步分解成搜索、拼接、替换这些我们已经很熟悉的小问题。
另外学好 Excel 可以免费领女朋友,不是我骗你,不信你自己看。
后面的话
感谢看到这里,拖了五个月之久,憋出一篇狗屁不通的文章。不出意外这应该是 2019 年最后一篇。
写到这里,已经有五千字。最近有的人问过我,你每天到底是在做什么,有什么用呀,为什么不干点正事。也是,就算我把整个公司的表都做了,也不会多拿一点点工资,就算我多会多少东西,也不如一纸证明。再往前想想,我总是在做很多没有用的事呀,以至于不再期待付出能有相应的回报。但是不论多少次问我,我的回答都一样:“我做的东西很多是没有用,但活着这件事本身最没有用。正是这数不清的没用的事,让我觉得自己还活着。”
excel vba 如何将日期周几转换成文字_Excel 从精通到入门相关推荐
- excel vba 如何将日期周几转换成文字_这5个超实用的Excel技巧,让你的办公效率更高...
导读:对于办公职员来说,Excel是几乎每天都会接触的办公软件.在Excel中,有非常多的小技巧,学习这些小技巧需要不断的积累和应用,今天指北针就来给大家分享5个超实用的Excel技巧,让办公变得更加 ...
- excel函数公式html文档,Excel中把计算式转换为运算结果的方法 EXCEL中计算出的公式如何转换成纯文本内容?...
如何在EXCEL中将计算公式直接变结果如我在A1输入计算式:(1+2*3+4/5-6)*1.2+(1+5) 如何在B1得出该计算式的选中B1然后按快捷键ctrl+F3,进入名称管理器,新建,输入任意名 ...
- 教你一招:Word中的文字转换成表格,把表格转换成文字
在使用office软件时,常常会在Word中加入表格,这时候我们一般想到的是,建立表格,然后一格一格的填写;或者用Excel表格制作在复制到Word文档中.其实在Word中就可以将文本文档转换成电子表 ...
- 拍照转换成文字怎么转?拍照转换文字方法分享
相信大家在开会或者听讲座的时候,会将笔记随手记录在一张纸上,等回去后再对笔记进行整理.如果文字内容少的话,那还好,但如果文字内容比较多的话,那照着纸上的笔记打字实在是太慢了,既费时又费力,还有可能会耽 ...
- 把数据库中有关枚举项值的数字字符串转换成文字字符串
原文:把数据库中有关枚举项值的数字字符串转换成文字字符串 标题可能无法表达我的本意.比如,有这样一个枚举: public enum MyChoice { MyFirstChoice = 0, MySe ...
- 如何将语音转换成文字?转换方法介绍
语音转换成文字方简单,只需要借助到转换工具就可以了,转换工具有着强大的转换功能,可以轻松实现你想要的转换,不知道转换方法的话,来看看下面的介绍你就会知道! 转换的具体方法如下: 1:打开语音转文字转换 ...
- 微信录音滑动撤销 html5,微信中这个被取消的功能悄悄上线了,将语音上滑即可转换成文字...
原标题:微信中这个被取消的功能悄悄上线了,将语音上滑即可转换成文字 微信中有一个之前被取消的功能又悄悄上线了,你发现了吗?那么问题来了,是什么功能呢?就是之前在测试版中出现过的语音转文字功能啦~正式版 ...
- 利用python将长视频、长语音转换成文字教程 ,非常好用
原本自己想弄一个语音转文本的,但是发现很多博客都说的不是自己想要的,原因有以下几点:1.因为百度接口支持的语音是pcm格式,而自己的是.mp3格式的文件. 2.百度只支持60s内的文件格式,而自己想要 ...
- 实用系列1 —— 视频中的语音转换成文字
实用系列1 -- 视频中的语音转换成文字python版本 背景说明 疫情原因,家里的老师亲戚需要对着电脑上网课,晋升为十八线小主播- 备课的内容来源都是当地教育局的公开课,为了学习公开课的上课方法,只 ...
最新文章
- 86年后,终于有人完成「真人版」薛定谔的猫实验,量子纠缠了活体动物
- Android Thread interrupt 中断JAVA线程(转)
- java url json字符串_JAVA中带有JSON字符串的HTTP POST请求
- ArcGIS API for JavaScript 4.0(一)
- nvcc找不到的问题(Ubuntu16.04 CUDA 8.0)
- 计算机网络之网络层:10、IP组播、IGMP协议、组播路由选择协议
- Leetcode 第133场周赛解题报告
- LintCode_408 二进制求和
- 电子技术基础数字部分第六版_知识速递 | 数字电子技术基础知识要点
- 手把手教你使用腾讯的热修复框架-Tinker
- 【AI视野·今日CV 计算机视觉论文速览 第209期】Mon, 31 May 2021
- 黑客红客骇客红客蓝客飞客是什么?有什么区别?(学习资料)
- Excel 条件格式应用及原理
- k8s+containerd+kata-containers 安装
- pyqtgraph的plotItem的轴刻度设置/轴刻度值风格设置
- New Bing怼人、说谎、PUA,ChatGPT已经开始胡言乱语了
- shiro教程1(HelloWorld)
- 用canvas 绘制一个灰太狼
- 电阻色环查询器[原创]
- mysql开发二手书籍交易_基于PHP+MySQL二手书交易系统