在前几期的内容中有个粉丝问我,他们的考勤表由纵列的转化为横向的,如下图,请问这个是怎么实现的呢?

如下图的原始的数据图:

第一步:

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

=IF(A1=A2,TEXT(C1,”h:mm:ss”)&”,”&TEXT(B2,”h:mm:ss”),TEXT(B2,”h:mm:ss”)),然后下拉填充手柄,效果图如下:

注意:

1、TEXT(C1,”h:mm:ss”)是自定义格式中的关于时间的定义的格式,大家可以ctrl+1或者右键打开自定义格式自行查看,如下图。如果不把日期的格式转化为文本,则会出现一串小数表示的时间。

2、用ift条件函数的判断,如果a1=a2单元格,则返回的是c1单元格,再连接一个逗号,然后再连接一个b2,如果a1<>a2,则显示的是b2单元格。

第二步:

如图所示,去掉重复项的姓名,此处可以用透视表,也可以用公式进行不重复项的提取。

方法1:透视提取。

如下图所示:

方法2:函数法

首先在g4和e4中分别输入【姓名】和【打卡时间字段】,如下图所示,然后在g5单元格中输入以下公式:

=IFERROR(INDEX(A:A,1+MATCH(,COUNTIF(G$4:G4,A$2:A$14),))&””,””)

然后按下ctrl+shift+enter组合键完成,下拉填充手柄进行填充。

注意:上述公式是提取不重复项的标准的公式。

第三步:

在e5单元格中输入以下公式,提取每个相同的姓名中连接的最长的字符串,如下图所示:

=IFERROR(LOOKUP(1,0/(G5=$A$1:$A$14),$C$1:$C$14),””)

第四步:

先把c列的公式转化为文本(去掉公式方法:选中区域,然后按住鼠标右键不放向右拖出不放鼠标然后再拖回原位),然后选中c列单元格,然后进行分列,效果图如下所示:

【注意】分列的时候用的是固定符号,即我们上述公式中的逗号进行分列,一定要注意上述公式中连接时用的逗号是英文状态下的还是中文状态下的。

最后完成整个表的一个转置。