基层工作,常有“办文”和“办表”两大内容,许多工作常是重复性的(尤其是操作表格),这就可以利用技巧来提高效率,总结了一些小技巧分享给大家以少加班,本文会不定时更新。
本文极长极基础,适合一步一步对着做。
文章概要
Word
Excel
解决办法:利用样式进行,将每一类的样式先设置好(字体、段落),之后选中段落设置样式
《党政机关公文格式》(GB/T 9704—2012)模板格式见文末链接
还可利用定义新的多级列表来实现多级标题的自动编号
选中段落,再点击上方样式来为段落设置样式,可见已自动生成编号(一)、(二)... ... 。
补充:word标题多级自动编号前变成黑色竖线的修复办法
解决办法:
利用宏代码“(一)”这一级标题已修复1.点击菜单栏“视图”,
2.找到“宏“选项卡,点击后弹出下拉选项中选择”查看宏“
3.弹出的窗口中输入”宏名(例如repair)“,然后点击”创建“,将上面那段宏代码复制粘贴进去。
4.在工具栏找到”运行宏“图标(向右的三角形),点击一下就可以运行了。
宏代码如下:
Sub repair()
For Each templ In ActiveDocument.ListTemplates
For Each lev In templ.ListLevels
lev.Font.Reset
Next lev
Next templ
end sub
当段落设置为已自定义的样式后,在引用-目录中即可自动生成目录,目录的样式也可修改。
对目录的字体和段落进行设置解决办法:选定需要修改的段落,快捷键Ctrl+H,查找^p替换为空。当然也可以将字符替换为^p来实现批量自动换行。
解决办法:选中图片,行距调整为单倍行距
基础数据整理时的一句忠告: 基础数据很重要!!!千万不要合并单元格!!!(不便于数据处理),如果想对其分类就增加一列(填不同的类型)。
一条记录就一行,一个字段就一列,比如 一个人用一行来记录ta的信息,字段(一列)有身份证号、户号、与户主关系、村民小组、地址、手机号等等。
讲函数前先讲一些基础的操作。
1.快速填充
如下图,想要添加递增序号,一是可以选中123在右下角出现黑色+号后向下拖动。
如果行数太多,拖动效率就太低了,可以试试:
(1)双击黑色+号
要求自动生成序号的相邻列必须有内容,且序列到相邻列内容截止时停止。
(2)Ctrl+D(以复制的方式向下(Down)进行填充,Ctrl+R与之类似<向右Right>)
还是上图,比如想得到序号+姓名,如“1彭万里”,利用简单的并联函数=C2&B2(这也是一个简单函数,函数都是以=开头,Excel就知道你要输入函数了)可以实现D2单元格“1彭万里”,之后向下拖动或者选中需要填充的区域后Ctrl+D。按住shift点击左键选中连续的单元格,按住Ctrl点击左键选中点击的单元格。
Ctrl+D 以复制的方式向下填充Ctrl+E(根据规律填充,Excel最强大快捷键)
仅支持Office2013或以上版本,功能是根据你输入的内容自动联想与左边多列的关系并自动填充,比如上图的合并功能。
根据身份证号批量提取出生日期
更多Ctrl+E用法大家可以慢慢探索2.查找替换
普通的Ctrl+F就不说了,这里讲一下如何实现一些特殊查找。
(1)根据单元格格式来查找,Ctrl+F后点击右下角选项,设置查找条件,查找黄底色+文本格式的单元格
(2)模糊查找,知道有一个人名,三个字,叫彭wan里,但是不确定中间是那个wan,可以试试?来代替wan。?表示通配符,代表一个字符,英文状态输入。
3.Ctrl+G和F4
(1)Ctrl+G定位条件,可以快速选中满足以下条件的单元格
以空值为例,快速选中下图出生日期为空的单元格,之后就可以对它们进行操作。
以可见单元格为例,使用数据筛选后,进行复制粘贴时常会把不满足条件的也选中,这时就需要使用Ctrl+G,选中可见单元格,再进行复制。
(2)F4
i 单元格引用锁定(公式拖动时,想要保持某个单元格不变时需要用到引用锁定)
下图,在H2中输入=F2按F4,引用状态在四种中变化,F2、$F$2、F$2、$F2。$F2表示引用单元格时引用F列的,行数会变化。
ii重复上一步
插入一行,按F4继续上一步,继续插入行1、双击自适应行高/列宽
选中之后放在AC列之间,双击十字型按钮,A、B、C三列既自适应列宽,批量自适应行高同理2、视图-分页视图
分页视图下所见的内容(四条蓝色边界线围合的范围)即打印的范围,在打开此视图之前可先在页面布局中设置纸张大小及方向,通过调整4条边界线即可实现将任意区域打印在一页内。
鼠标置于蓝色边界线,变成双向箭头后,可拖动修改打印范围如果想某一单元格以下打印在下一页中,只需在本单元格插入分页符即可。
页面布局-分页符以上设置的是打印区域,接下来调整打印区域在纸中的位置。
通过调整打印页面的以下参数来控制整个打印区域在一页纸中的位置。
还可设置页面参数、页眉、页脚等3、打印标题页
假如我们需要将每一户人员信息打印在一张表,表头都是姓名、身份证、出生日期、姓氏,那么可以通过设置打印标题,避免每一页录入重复表头。
首先按户分页(复习F4重复上一步),设置第一行为标题补充一个批量添加分页符的VBA代码,判断E列为“户主”即添加分页符。
Sub VBA_AD()
Dim Rng As Range
For Each Rng In Range("E3:E1048576") '从E3到最后一行,可根据实际范围更改,也可使用FOR...NEXT SETP N方式
If Rng.Value = "户主" Then ' 条件
ActiveSheet.HPageBreaks.Add Rng '/添加分页符
End If
Next
End Sub
衍生!!!
批量在指定单元格插入复制的行 VBA代码,可间接实现打印中的打印底端标题行操作。
前三行需批量插入,插入的位置为A列单元格值为1的行Sub ADD_ROW()
For i = 8 To 1048576 '起止行数
If Range("A" & i).Value = "1" Then '判断区域为A列
Rows("1" & ":" & "3").Select '选择第一至三行,即需要批量插入的行
Selection.Copy
Rows(i).Select
Selection.Insert Shift:=xlDown ', CopyOrigin:=xlFormatFromLeftOrAbove
i = i + 3 '批量插入n行,则改为i=i+n
End If
Next
End Sub
4个函数IF、SUM、SUMIF、VLOOKUP,1个数据透视表技能
所谓函数,只要知道它会返回一个东西,至于是什么取决于选择什么函数,函数又决定了使用什么参数
Excel中 函数都是以“=”开始,这样Excel便知道你要使用函数而不是录入常规的数据,当 录入函数后回车无反应时记得检查单元格格式是否为非文本。
注意:函数中的所有参数均需在英文状态输入!!!
——这段话仅针对纯新手,其他请忽略
1、IF函数
IF函数是一个最基础的逻辑判断,语法:“=IF(判断条件,结果1,结果2)”,即如果满足“判断条件”则返回“结果1”,如果不满足“判断条件”则返回“结果2”
(1)下面利用IF函数找出在1996年以后出生的人员
=IF(YEAR(H2)>=1996,"是","否")
其中YEAR(A2)返回A2日期的年份根据身份证号码批量识别性别 =IF(MOD(MID(C2,17,1),2)=0,"女","男")
MID函数提取身份证号码的第17位,MOD(被除数,除数)计算余数(除数为2,余数为0或1)来判断第17位的奇偶性(2)利用IF函数来自动编号,实际工作中就碰见“一开始给数据拉好序号,但由于过程中删减了行,但忘记重新拉序号,导致最后总数和总序号对不上,许多工作又白干还浪费打印的纸”。对B列利用IF函数来判断C列是否为空,不为空就返回序号,如此便实现自动编号(C列输入内容B列就自动递增序号)。
=IF(C2>0,ROW(B2)-1,"")
ROW(B2)表示返回B2的行数,由于第一行为标题所以要减1,“”表示if判断不成立就为空。补充!!!
按不同类别批量添加递增编号,同一类别下序号递增,不同类别序号重新从1开始递增
应用实例:居民家庭户,批量给每户内添加递增序号
=countif($B$2:B2,B2)
$B$2:B2表示下拉公式时,选中区域始终为B2至当前单元格
COUNTIF 是一个统计函数,用于统计满足某个条件的单元格的数量。COUNTIF 的最简形式为:=COUNTIF(要检查的区域, 要查找的内容)
基本思路为:统计本行及以上行,本行B列 值的个数(3)利用IF的嵌套还可以实现多重条件判断,=IF(A1<60,"不及格",IF(A1<80,"良好","优秀")),即:
A1<60,"不及格"
60 A1>80,"优秀" 辅之以AND、OR函数可进行多条件并列判断,=IF(AND(A1>60,B1<100),"合格","不合格") 注:and()表示括号内的多个条件要同时成立,or()表示括号内的多个条件任一个成立 (4)衍生用法 查找对比一列的内容在另一列中是否出现过 应用实例:有一个村民小组的人员信息以及非农业人口的信息,想查找对比这些村民哪些属于非农。 =IF(COUNTIF(F:F,C2&"*"),"非农","") (函数内需要返回文本时需要用"") C2&"*"表示将C2强制识别为文本,对于身份证号码若不加入&"*"会出现误判,将340111195509176013和340111195510205026识别为相同,加入&"*"后需内容完全一致才返回一致。 IF函数是最基础的逻辑判断,通过与其他函数的配合或自身的嵌套可以实现复杂逻辑判断,即通常说的查找满足条件的区域/单元格。 应当注意的是:IF函数判断后返回的不只是值,还可以根据条件返回区域引用。如:=VLOOKUP(A1,IF(B1=1,C:D,F:G),2,0) 更多IF函数用法可以参考下面的链接: 2、SUM函数 SUM,求和函数,语法:“=SUM(number1,[number2],...)”,number表示要相加的数字,也可以选中一片区域。 (1)常规的求和,输入函数名选取区域即可 (2)SUM函数结合数组来进行多条件求和 =SUM((H7=C1:E1)*(B2:B13=G7)*C2:E:13),数组公式结束时切记以Ctrl+shift+enter结束 下面将数组的运算过程拆分一下,以便理解。H7为英文,则(H7=C1:E1)即为(0,0,1);G7为1班,则(B2:B13=G7)为(1,0,0,1,0,0,1,0,0)此处为列,数组运算结果如下: 更多SUM函数用法可以参考下面的链接: 3、SUMIF (1)SUMIF,对 范围 中符合指定条件的值求和。 例如,如果某列中含有数字,你只需对大于 5 的数值求和。 可使用以下公式:=SUMIF(B2:B25,">5") =SUMIF(判断区域,判断条件,求和区域) 以年龄50岁以上人员 土地租金和为例, =SUMIF(D2:D14,">50",F2:F14) (2)SUMIFS 函数,SUMIF的加强版,用于计算满足多个条件的全部参数的总量。 SUMIFS(需求和的单元格区域,使用判断条件1的区域, 判断条件1, [使用判断条件2的区域, 判断条件2], ...) 注意与sumif的区别,sumifs把求和区域放到第一个参数!!! 年龄89岁的非农人员 土地租金和 根据身份证号码提取年龄 =YEAR(NOW())-MID(C2,7,4)+1 (YEAR(NOW())提取当前日期的年份,截取身份证号码中从第7位开始的4位数即出生年份) 提取年龄后,计算89岁非农人员的土地租金和。 =SUMIFS(G2:G14,E2:E14,89,F2:F14,"非农") 4、VLOOKUP 一个按列纵向查找函数,与LOOKUP、HLOOKUP为一类,应用极广泛。 =VLOOKUP(要查找的值,要查找的区域,返回数据在查找区域的第几列数,模糊匹配/精确匹配) 要求:要查找的值在查找区域的第一列!!!(下例中,查找区域中,身份证号码需在第一列) 根据身份证号查找户口性质(还在一个一个找吗?VLOOKUP可以一键搞定),绿色区域是身份证号和户口性质全部数据,类似于在一个完整的库里面找部分人员的信息。 =VLOOKUP(E2,L:M,2,0) 衍生功能!!! (1)批量制表,一人一页 适用范围:表头表尾固定不变、一张表只填入一个人信息(一行信息)(一表填入多人信息见下) (2)批量制表,一户一页 5、1个数据透视表技能 功能:数据统计分析 选中数据-点击插入 数据透视表-选中放置数据透视表的位置 位置选择现有工作表:Q1,插入结果如下图所示 第一行自动识别为数据透视表字段 鼠标左键选中某一字段,按住不放拖动到行或是列,左边数据透视表便自动生成了统计结果 将字段拖入列时,这样就可以统计满足两类条件的值 值可选择的计算类型有以下几种,单击计数项-值字段设置可改变统计类型 衍生功能:统计一列中数据类型种数(实例:根据户号的不同计算有多少户数) (1)数据透视表:选中户号列、插入数据透视表、把户口字段拖入行位置再拖入值位置、选中数据透视表行标签列,由此便有统计结果 (2)函数 =SUMPRODUCT(1/COUNTIF(被统计范围,被统计范围&"")) 此为数组,以Ctrl+Shift+Enter结束 此函数对CPU要求高,计算量大,数据量大容易死机!!! &"":增加次为了将数据强制识别为文本,避免出错 留意此统计结果,空单元格也算一种类型 (3)数据展示 工欲善其事必先利其器 公文模板及两个Excel插件(EasyCharts图表制作插件、方方格子工具箱)链接 链接:https://pan.baidu.com/s/1I_6JPm4_d6bHA8GRDzxLZQ 提取码:hhtq
柱状图横坐标为村名小组,纵坐标为人数,切片中改变户口性质、性别、户主关系,村名小组-人数的柱状图便自动更新