日期•时间实际为序列值

Excel 中的日期数据几乎都是以“2014/1/1”的形式显示在单元格中的。而日期数据的实质其实是“序列值”。

比如说,在单元格 A1中输入2014/1/1,在设置单元格格式的选项中可以将 A1的显示形式变更为“数值”,就会出现41640。这就是序列值。

这种序列值,按照“以1900年1月1日为第1天”的算法,算出单元格中的日期为第几天。那么,2014年1月1日从1900年1月1日算起正好是第41640天,所以“2014/1/1”的序列值即为41640。

“单元格输入1,出现了‘1900/1/1’。这什么意思啊?”

我经常听到这样的疑问。这是因为目标单元格的表现形式变成了日期的缘故。这时候,如果将单元格的格式改回“数值”或“常规”,就会正常地显示数字“1”了。

实际处理日期数据时,一般不需要在意序列值。明明输入的是日期却出现“41702”这种数字,如果发生这种状况,我们需要知道这是代表日期的“序列值”,其原因是单元格的格式为“日期”而不是“数值”或“常规”,这样我们就可以做相应的处理了。

在看 Excel 函数的相关解说时,若是看到“做成序列值”“将参数指定为序列值”这种说法,要意识到“序列值=日期”。Excel 中在处理关于日期的数据时,比如计算天数、年龄,从日期数值中得出星期几的函数,就是利用这种序列值处理的。

例如,用 Excel 计算从2014年3月28日到2014年4月3日为止一共有多少天。我们可以在单元格 A2输入“2014/3/28”,B2单元格输入“2014/4/3”,为了得出这两个日期之间的天数,在单元格 C2输入下列公式。

=B2-A2

这样,从 B2的日期减去 A2日期得到的结果“6”会显示在单元格 C2中。

单元格 B2的日期数据“2014/4/3”,对应的序列值为41732。

单元格 A2的日期数据“2014/3/28”,对应的序列值为41726。

用 B2的序列值减去 A2的序列值,即“41732-41726”,就可以得出“6”这个答案。

经常能够遇到的情况则是:像 A2为“20140328”、B2为“20140403”这样的形式,虽然在 Excel 中不会被当成数据来处理,如果直接将这两个数据看作是日期并做减法,想要计算出这中间的天数,是无法得出正确结果的。

这2个数据说到底只是代表“20140328”这个数字,并不是指“2014年3月28日”这个日期。因此,在输入有“=B2-A2”的单元格,虽然是将上述2个八位数做减法,却会得出“75”这个结果。这时,我们应该把代表日期的序列值改为日期形式再进行计算。

Excel中如何快速输入今天的日期与现在的时间

想要快速地输入今天的日期,使用快捷键Ctrl + ; 最方便。按下快捷键,在活动单元格中会自动显示今天的日期。

顺便一提,按Ctrl +: 可以输入现在的时间。也许有人会问“谁会使用这个啊?”工作中用 Excel 做会议记录时,有时会需要记录发言的时间。这时,就会用到这个技巧。

Excel中的日期为公历(阳历)

“在员工名单中输入了利用员工生日计算出年龄的函数,但是结果居然是0。”

如果没有完全掌握在 Excel 中处理日期的基本方法,就会发生这样的事情。在本章中,我将告诉大家在 Excel 中输入日期的方法,以及时间数据的特性。

首先来看一下关于输入日期的基本事项。有一项非常重要的原则是“必须按照公历格式输入日期”。例如,想要输入2014年1月1日,在半角模式下,按以下格式将公历年、月、日,并用“/”隔开。

2014/1/1

此时,如果省略公历年份直接输入“4/1”,则画面显示如下。

省略公历年份,输入4/1

单元格内显示的是“4月1日”,并非以公历表示,但在算式栏中显示为“2014/4/1”。也就是说,不输入公历仅以“月日”格式输入的情况下,日期将自动变为输入当时的公历年即“今年”的日期。如果想要输入不是今年的日期,却不输入具体的年份,会导致单元格不显示公历年份,你也就很难注意到有错误。

Excel 虽然有可以从出生日期计算年龄的函数,但实际输入的过程中不小心漏掉公历年份的话,所有的数据都会自动变成“今年”的。因此,无论你是否要输今年的日期,一定要将年、月、日全部输入到单元格中,并用斜线(/)隔开。这样虽然有点麻烦,但一定要记住这是最基本的操作。

无需在工作表外填入数据并完成连续输入VLOOKUP函数

在这种情况下,由于“输入表”与“负责部分”各项目的排列顺序相同,VLOOKUP 函数第三参数中指定的数字也要向右递增,显示连续的数字。因此,工作表外的上部不用输入其他数字,也可以完成操作。

想要沿着行的方向输入连续的数字,我们可以使用 COLUMN 函数。利用 COLUMN 函数的特性,并将之嵌套在 VLOOKUP 函数的第三参数里,就可以瞬间完成复杂的操作。

在单元格 C3中输入以下公式:

=VLOOKUP($B3,$I:$N,COLUMN()-1,0)

一直复制粘贴到单元格 G3,Excel 中就会出现如下页面。

在单元格 C3里输入=VLOOKUP($B3,$I:$N,COLUMN()-1,0)并复制粘贴到 G3

第三参数“COLUMN()-1”在 C 列中为2,在 D 列中为3。COLUMN 函数所导出的,是含有 COLUMN()的单元格位于工作表中第几列的数字。

在单元格 C3中输入的 VLOOKUP 函数,其第三参数指定数字为2。由于 C3的 COLUMN()为3,在此基础上减去1后,则调整为2。同理,D 列到 G 列中“COLUMN()”获得的数字减去1就是 VLOOKUP 函数的第三参数,这样就能顺利地计算出正确的项目数值。

VLOOKUP函数:在粘贴的单元格中变为合适的数字

这里需要的并不是把 VLOOKUP 函数的第三参数输入成2或3这样的固定值,而是需要“输入可以在粘贴的单元格里,实时转化为合适的数字”这样的设想。

最简单的就是在表外的上方输入想要指定的第三参数的数字,然后引用这一单元格。例如,在单元格 C1到 G1中,分别输入从2到6的数字,在 C3中输入以下公式:

=VLOOKUP($B3,$I:$N,C$1,0)

将这个公式一直复制粘贴到 G3,显示如下。

在单元格 C3输入=VLOOKUP($B3,$I:$N,C$1,0)并一直复制粘贴到 G3

在单元格 C3输入=VLOOKUP($B3,$I:$N,C$1,0)并一直复制粘贴到 G3

第三参数引用的是同一列的第1行的单元格。也就是说,C 列引用2,D 列引用3,如此自动改变数值。这样就不用在每个单元格里逐个输入 VLOOKUP 函数的第三参数了,从而大大减轻了工作负担。

沿行方向输入大量VLOOKUP函数的方法:批量修改单元格

如果遇到像下图这样,需要输入大量的 VLOOKUP 函数,按照常规的方法处理需要花费大量的时间和精力。

“输入表”中的各个单元格里,按照“商品 No.”在“负责部分”中用 VLOOKUP 函数找出对应值。首先用常规的方法,在最开始的单元格 C3中输入以下公式:

=VLOOKUP($B3,$I:$N,2,0)

将单元格 C3的公式向右一直复制到 G 列,为了不改变从属单元格,需要用绝对引用来固定第一参数的检索值和第二参数的检索范围。

在单元格 C3输入=VLOOKUP($B3,$I:$N,2,0)后

接着将它一直拖拽复制到单元格 G3。画面显示如下:

将单元格 C3一直拖拽复制到单元格 G3

所有单元格中的数据都已经变成了相同数值。这是因为从单元格 C3到 G3,每个单元格中的函数如上变为了第三参数“2”。参考的是检索范围 I:N 列最左端开始数第2列的值。

因此,如果要让 C3到 G3中的每个单元格都显示各自所属正确的数值,就必须修改各单元中的 VLOOKUP 函数的第三参数。C3中 VLOOKUP 函数第三参数改为“2”、D3改为“3”、E3改为“4”、F3改为“5”、G3改为“6”,这样每个单元格中的数值才是正确的。

像这样逐个修改还是很麻烦的。像前文中的例子那样,如果需要修改的单元格只有4个,那么不会花费很多时间。但是工作中需要输入 VLOOKUP 函数和修改第三参数的单元格有时会多达50列。遇到这种情况,千万不要动手逐个去修改。我告诉大家一个便捷的办法,甚至可以不用逐个修改单元格。

Excel判断单元格中是否包含特定的字符串

如何计算世田谷区的客户人数

“想要从客户数据中筛选出世田谷区的客户人数。”

这时,如何才能简单、快速地完成这项工作呢?

其实只需要按照下面这两个步骤操作即可。

  • 调查单元格中是否包含“世田谷区”这四个字
  • 如有,则在其他单元格中输入“1”

如此一来,只要计算含有“1”的单元格的数目,就能得出包含“世田谷区”这四个字的地址的单元格数目。

像这样,“确认单元格里含有特定字符串时,标记为数字1”的操作,属于 COUNTIF 函数的应用。假设在 A 列中输入住址,B 列输入数字1。

➊ 在单元格 B2中输入以下公式。

=COUNTIF(A2,”*世田谷区*”)

➋ 一直将公式复制到数据的最后一行。

这样一来,在 A 列单元格中若含有“世田谷区”四个字,B 列中就会在相应的行显示“1”。

此处出现的“*”符号叫作“星号”。无论是什么样的文字,无论有多少字,都可以这1个文字来代替使用(作为“通配符”使用的符号)。意思就是说,“世田谷区”前后含有其他文字。这样一来,只要该字符串符合“包含‘世田谷区’四个字”这样的条件,即可被检索出来。

现在让我们来复习一下,COUNTIF 函数是在第一参数指定区域中,计算符合第二参数指定条件的单元格数目的函数。在单元格 B2中输入的函数有这样的意思:

在单元格 A2中包含“世田谷区”这个值的单元格有多少个?

作为指定范围的第一参数中,此处指定的是单个单元格 A2。判断符合条件的单元格有多少,答案只有1和0。如答案为1,那么就说明此单元格中包含“世田谷区”;如答案为0就是不包含。

接下来,再用 SUM 函数统计 B 列值的总和,就能得出 A 列中所有包含“世田谷区”的单元格的数量。

SUM 函数在单元格 B8中表示 B 列的总和

如何搜索除世田谷区以外的区域

前文中介绍的是如何搜索单元格中是否包含特定文字(世田谷区),直接将指定文字输入到函数中并搜索。那么如果不仅需要搜索“世田谷区”,也需要搜索包含其他区域的单元格时,应该怎么做?

搜索除世田谷区以外的区域

如果把各个区域名称直接输入进函数,那么需要重新输入 B 列到 F 列每一列中的函数。这样做非常麻烦,也很容易出错。

这时,请不要采取这种直接输入的方法,而是要采取引用单元格的方法。工作表中的行首处会显示搜索目标区域的项目名称,利用这些单元格,就能简化输入函数的操作。

在此提醒各位读者,引用单元格来搜索时,要输入以下公式:

=COUNTIF($A2,”*”&B$1&”*”)

输入=COUNTIF($A2,”*”&B$1&”*”)

在第二参数中,连续输入单元格号码与星号容易发生错误。为了方便大家理解,下面我将去掉绝对引用的$符号,告诉大家会容易出现什么样的错误。

=COUNTIF(A2,”*B1*”)

这个公式的意思变成了要在单元格 A2里,搜索是否含有“B1”这一字符串。但是原本需要搜索的是单元格中是否含有“包含‘B1’的字符串”。为了区分指定星号标记与引用单元格,需要用&符号连接。

设定绝对引用时一定要注意,在单元格 B2中输入正确的公式之后,再直接复制到单元格 F7为止。

将输入的公式复制到单元格 F7

另外,想计算含有各区域名的单元格的数目,只有选择 B8~F8,按Alt += (AutoSUM 的快捷键)即可立刻得出结果。

选择 B8~F8,按Alt + =

顺便,用 IF 函数是无法顺利处理这项操作的。在单元格 A2中如包含有“世田谷区”打○,否则打×,在做这项操作时,有许多人反应使用下面的公式无法得到预期的结果。

=IF(A2=”*世田谷区*”,”○”,” ×”)

这种情况下,需要在 COUNTIF 函数中嵌入判断是否包含字符串的条件。

=IF(COUNTIF(A2,”*世田谷区*”)=1,”○”,”×”)

随后,就能在单元格 A2中检索是否含有“世田谷区”这组字符串。

VLOOKUP函数:用“整列指定”检查

请注意一下在第二参数中指定 F 列和 G 列这两个整列的这一操作。这样,即便在单价表里追加了新商品时,VLOOKUP 函数依然可以做出相应的处理。在设定事先输入 VLOOKUP 函数,就能自动显示的格式时,也一并使用上述方便的功能吧。

下面的公式,仅指定了单价表范围,每次增加商品时都需要修改 VLOOKUP 函数,这样十分浪费时间。

=VLOOKUP(A2,$F$3:$G$8,2,0)

无论是 SUMIF 函数、COUNTIF 函数还是 VLOOKUP 函数,基本都是以列为单位选取范围。这样不仅能够快速输入公式,使用起来也十分方便。

VLOOKUP函数的4个参数意义与处理流程

用逗号(,)隔开的4个参数,我们来看看这4个参数各自表达的意思吧。

  • 第一参数:检索值(为取得需要的数值,含有能够作为参考值的单元格)
  • 第二参数:检索范围(在最左列查找检索值的范围。“单价表”检索的范围)
  • 第三参数:输入对应第二参数指定范围左数第几列的数值
  • 第四参数:输入0(也可以输入 FALSE)

这个函数,首先在某处搜索被指定为第一参数检索值的值。至于搜索范围则是第二参数指定范围的最左边的列。上述例子中,第二参数指定的是 F 列到 G 列的范围,因此检索范围即为最左列的 F 列。

接下来,如果在 F 列里发现了检索值(如果是单元格 B2则指 A2的值即“A001”,F 列中对应的是 F3),那么这一单元格数据即为往第三参数指定的数字向右移动一格的单元格数值。这一例子中,第三参数指定为2,因此参考的是从 F3往右数第2列的单元格 G3的数据。

之后,再在这张表的小计栏中输入“单价×数量”的乘法算式,输入数量后,系统就会自动计算小计栏中的数据。

如果在报价单与订单的 Excel 表格里设置这样的构造,制作工作表时就会十分方便。这是一项能够提高 Excel 操作效率的基础。

COUNTA函数与COUNT函数的区别

与 COUNTA 函数极为相似的函数是 COUNT 函数。它与 COUNTA 函数的区别如下:

  • COUNTA 函数

指定参数范围内,计算除空白单元格之外的单元格的个数,即统计包含数据的单元格的数量。

  • COUNT 函数

指定参数范围内,计算含有数值的单元格的数量。

也就是说,COUNT 函数只计算含有数字的单元格个数。因此,自动忽略统计含有文本的单元格的数量。在具体实务操作上,一般用 COUNTA 函数就够了,当需要计算输入有数字、数据的单元格的数量时,再使用 COUNT 函数即可。