ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 很可耻的来求助了~

[复制链接]

TA的精华主题

TA的得分主题

发表于 2014-11-7 11:27 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 long_0022 于 2014-11-7 11:41 编辑

昨天刚注册的,今天来求助实在是尴尬~~~从论坛翻了半天也没找到合适的方法,所以来求助大神们!望大婶们赐教赐教~~
背景:小女子是做人事管理的,工作不顺,因为打卡记录整理太费劲,于是想来破解下,结果就华丽丽的卡住了……
问题如下:变态的打卡机导出的EXCEL中,一天的四个时间点全部在一个格格里,看了很多大神的贴子,没发现跟我这个一样的,所以来问问~~ 一个格里有2-4个时间点,我想请教怎么把他们变成一个时间格一个时间点。并进行转置,具体内容请参看附件,谢谢大家。
123.PNG 目标:::

目标文件

目标文件

附件穿不上来了,下午补充 行政办.rar (5.86 KB, 下载次数: 14)

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-11-7 11:27 | 显示全部楼层
请大神指导可以用什么函数或者怎么写宏代码呀?

TA的精华主题

TA的得分主题

发表于 2014-11-7 12:32 | 显示全部楼层
您好,首先,到这里求助并不会让人觉得可耻,不懂就要问吗。
做了一下,用vba弄的,初步检查了一下,运行ok、 行政办.zip (21.42 KB, 下载次数: 15)

  1. Sub 处理()
  2.     Dim Arr, Brr(1 To 10000, 1 To 40), drow%, dcol%, i%, j%, Trr, mmax%
  3.     With Worksheets("原始记录")
  4.         drow = .[a65536].End(3).Row
  5.         dcol = .[iv1].End(xlToLeft).Column
  6.         Arr = .Range(.Cells(2, 1), .Cells(drow, dcol))
  7.         m = 1: mmax = 1
  8.         For i = 1 To UBound(Arr)
  9.             Brr(m, 1) = Arr(i, 1): Brr(m, 2) = Arr(i, 2): Brr(m, 3) = Arr(i, 3)
  10.             mmax = 1
  11.             For j = 4 To UBound(Arr, 2)
  12.                 If Arr(i, j) <> "" Then
  13.                     Trr = Split(Arr(i, j), " ")
  14.                     For k = 1 To UBound(Trr)
  15.                         Brr(m + k - 1, j) = Trr(k)
  16.                     Next
  17.                     mmax = WorksheetFunction.Max(UBound(Trr), mmax)
  18.                 End If
  19.             Next
  20.             m = m + mmax
  21.         Next
  22.     End With
  23.     With Worksheets("目标")
  24.         .Range("a2:ak10000").ClearContents
  25.         .[a2].Resize(m, 40) = Brr
  26.     End With
  27.     MsgBox "处理完毕"
  28. End Sub


复制代码

TA的精华主题

TA的得分主题

发表于 2014-11-7 12:35 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
pzzz 发表于 2014-11-7 12:17
vba可以做,函数不知道怎么做

你这个用函数做很复查的,而且数据量多的时候会运行很慢,vba可以轻松快速解决问题。

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-11-7 12:48 | 显示全部楼层
TomingTang 发表于 2014-11-7 12:32
您好,首先,到这里求助并不会让人觉得可耻,不懂就要问吗。
做了一下,用vba弄的,初步检查了一下,运行o ...

太谢谢了,万分感谢!!!我正在自学VBA~还需要进一步学习,再次感谢~

TA的精华主题

TA的得分主题

发表于 2014-11-8 11:29 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
pzzz 发表于 2014-11-7 12:17
vba可以做,函数不知道怎么做

想装B, 可是不想弄VBA, 那个太费劲

TA的精华主题

TA的得分主题

发表于 2014-12-8 23:43 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 cesh1 于 2014-12-8 23:50 编辑

vba很快,用代码,如附件,取巧了
在转换按钮下面
刚才发现有三个时间段,就要用if+LEN来判断,分三行,如果没有三行,再把空行删除,没有VBA快捷方便
第一行=left(d2,6)
第二行=if(len(d2)=“18“,mid(d2,7,6),right(d2,6))
第三行=if(len(d2)=“18“,right(d2,6),”“)

行政办1.rar

15.5 KB, 下载次数: 10

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-26 19:39 , Processed in 0.052300 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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