ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2220|回复: 6

[求助] 如何将一个人一天的一个或多个考勤、在一行显示

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-4-4 17:27 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
需要大神帮助,一个人一天有多个考勤数据,或只有一条考勤数据,该怎样实现将同一天的考勤数据显示在一行中,无考勤数据则为空值!


QQ截图20190404172730.png

考勤1.rar

10.34 KB, 下载次数: 23

TA的精华主题

TA的得分主题

发表于 2019-4-4 18:37 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
公式一,数组公式ctrl+shift+enter,右拖下拉=IFERROR(IF(COLUMNS($K2:K2)>COUNTIFS($A$2:$A$23,$H2,$C$2:$C$23,$J2),"",INDEX($D$2:$D$23,SMALL(IF(($A$2:$A$23=$H2)*($C$2:$C$23=$J2),ROW($D$2:$D$23)-ROW($D$2)+1),COLUMNS($K2:K2)))),"")

公式二,用到了内置small的AGGREGATE函数,直接enter,右拖下拉
=IFERROR(IF(COLUMNS($K17:K17)>COUNTIFS($A$2:$A$23,$H17,$C$2:$C$23,$J17),"",INDEX($D$2:$D$23,AGGREGATE(15,6,(ROW($D$2:$D$23)-ROW($D$2)+1)/(($A$2:$A$23=$H17)*($C$2:$C$23=$J17)),COLUMNS($K17:K17)))),"")


考勤1.rar

11.12 KB, 下载次数: 69

TA的精华主题

TA的得分主题

发表于 2019-4-8 11:12 | 显示全部楼层
Sub kk()
    Dim dic As Object, arr(), brr()
    Set dic = CreateObject("scripting.dictionary")
    With Sheet1
        arr = .Range("a1").CurrentRegion
        ReDim brr(1 To UBound(arr), 1 To 20)
        For i = 2 To UBound(arr)
            x = arr(i, 1) & "|" & arr(i, 2) & "|" & arr(i, 3)
            If dic.exists(x) = False Then
                k = 4
                n = n + 1
                dic(x) = n
                brr(n, k) = arr(i, 4)
                a = k
            Else
                a = a + 1
                brr(n, a) = arr(i, 4)
            End If
            m = dic(x)
            brr(m, 1) = arr(i, 1)
            brr(m, 2) = arr(i, 2)
            brr(m, 3) = arr(i, 3)
        Next i
        .Range("H18").Resize(n, 20).Cells.ClearContents
        .Range("H18").Resize(n, 20) = brr
    End With
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-4-8 15:40 | 显示全部楼层
gzfuture 发表于 2019-4-4 18:37
公式一,数组公式ctrl+shift+enter,右拖下拉=IFERROR(IF(COLUMNS($K2:K2)>COUNTIFS($A$2:$A$23,$H2,$C$2:$ ...

感谢大神,但公式里有一个没理解,COLUMNS($K2:K2)>COUNTIFS($A$2:$A$23,$H2,$C$2:$C$23,$J2) 这个判断语句是在说明什么含义

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-4-8 15:41 | 显示全部楼层
任飘渺 发表于 2019-4-8 11:12
Sub kk()
    Dim dic As Object, arr(), brr()
    Set dic = CreateObject("scripting.dictionary")

感谢大神相助~

TA的精华主题

TA的得分主题

发表于 2019-4-8 19:46 | 显示全部楼层
cy563162419 发表于 2019-4-8 15:40
感谢大神,但公式里有一个没理解,COLUMNS($K2:K2)>COUNTIFS($A$2:$A$23,$H2,$C$2:$C$23,$J2) 这个判断语 ...

IF(COLUMNS($K2:K2)>COUNTIFS($A$2:$A$23,$H2,$C$2:$C$23,$J2) ,"",


这个判断表示,如果列数 “大于” 同时满足两个条件(姓名A列和日期C列)的和数,则显示为"空",避免出现”#NUM!"错误提示

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-4-9 11:40 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-3-29 21:36 , Processed in 0.045163 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表