Excel精英培训网

 找回密码
 注册
查看: 5473|回复: 13

[习题] V中第02讲(01号-22号)作业上交贴

  [复制链接]
发表于 2012-1-20 13:50 | 显示全部楼层 |阅读模式
本帖最后由 被禁锢的风 于 2012-2-15 20:45 编辑

第02讲作业地址:
http://www.excelpx.com/thread-220540-1-1.html


注意:
1、非01号-22号号学员,不得交于此处,不得为抢沙发而占位,不得跟灌水帖,违者扣分。
2、上交的作业EXCEL 文件名 按 第一讲作业-学号-班级ID 的格式保存后上传(如“第01讲作业-27-fjmxwrs)。
3、代码请尽量编写注释,方便批改也方便其他同学学习程序思路。

作业上交截止日:
2月3日(周五) 18:00前上交的作业将得到批改
2月5日(周六)18:00前上交的作业只统计上交,不做批改。


评分

参与人数 2 +30 收起 理由
jsgslgd + 12 辛苦了!
windimi007 + 18 很给力!

查看全部评分

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2012-1-20 13:54 | 显示全部楼层
【V中2.05】windimi007前来交作业!{:3512:}
不知道是不是沙发呢?{:3912:}

第02讲作业-05-windimi007.rar

20.56 KB, 下载次数: 40

回复

使用道具 举报

发表于 2012-1-20 14:15 | 显示全部楼层
交了作业好过年
辛苦风老师
第二讲作业-08-9lee.rar (22.59 KB, 下载次数: 27)
回复

使用道具 举报

发表于 2012-1-20 14:39 | 显示全部楼层
  1. Sub salary()
  2.     Dim t
  3.     t = Timer
  4.     Dim arr, title, coefficient, dic As New Dictionary, i%, j%, k%
  5.     With Sheets("工资标准")
  6.         title = .Range("a1").CurrentRegion.Value    '读入职称工资数组
  7.         coefficient = .Range("d1").CurrentRegion.Value    '读入岗位系数数组
  8.         k = .UsedRange.Rows.Count
  9.         For i = 1 To k
  10.             '通过循环 放入字典 从而建立索引表
  11.             dic(title(i, 1)) = title(i, 2)
  12.             dic(coefficient(i, 1)) = coefficient(i, 2)
  13.         Next
  14.     End With
  15.     With Sheets("人员工资表")
  16.         arr = .Range("a1").CurrentRegion.Value
  17.         For j = 2 To UBound(arr)
  18.             arr(j, 6) = dic(arr(j, 5)) * dic(arr(j, 4))    '调用索引,计算
  19.         Next
  20.         .Range("f2").Resize(UBound(arr) - 1).ClearContents    '清空数据
  21.         .Range("A1").Resize(UBound(arr), UBound(arr, 2)) = arr    '数据存入单元格
  22.     End With
  23.     MsgBox Timer - t
  24. End Sub
  25. Sub Crossq()
  26.     Dim t
  27.     t = Timer
  28.     Dim dic As New Dictionary, d As New Dictionary, dd As New Dictionary, arr, i%, j%, sr$, Ar(), brr(), Br
  29.     Dim rg As Range, k As Byte, s$
  30.     Dim d1 As New Dictionary, d2 As New Dictionary
  31.     arr = Sheets("人员工资表").Range("a1").CurrentRegion.Value    '将工资表存入数组
  32.     Br = Application.Index(arr, 1, 0)  '定义标题索引数组
  33.     For j = 1 To UBound(Br)
  34.         dd(Br(j)) = j  '建立索引编号
  35.     Next
  36.     With Sheets("交叉表统计")
  37.         '利用字典,规范数据录入 此处利用数组,更为简单 可直接字义一个两行两列数组
  38.         For Each rg In Union(.[d2:d3], .[g2:h2])
  39.             sr = rg.CurrentRegion.Range("a1").Value
  40.             If Not IsEmpty(rg.Value) And Not dic.Exists(sr) Then
  41.                 dic.Add sr, Array(rg.Value)
  42.                 k = k + 1
  43.             ElseIf rg.Value <> "" And dic.Exists(sr) Then
  44.                 Ar = dic.Item(sr)
  45.                 ReDim Preserve Ar(0 To UBound(Ar) + 1)
  46.                 Ar(1) = rg.Value
  47.                 dic.Item(sr) = Ar
  48.                 k = k + 1
  49.             End If
  50.             If Not IsEmpty(rg.Value) And Not d.Exists(rg.Value) Then
  51.                 d.Add rg.Value, dd(rg.Value)
  52.                 d.Add dd(rg.Value), rg.Value
  53.             ElseIf d.Exists(rg.Value) Then
  54.                 MsgBox "标题重复!": Exit Sub
  55.             End If
  56.         Next
  57.         If k <> 3 Then MsgBox "必须为3个条件": Exit Sub
  58.         纵列 = dic.Items(0)  '读取纵列信息
  59.         横行 = dic.Items(1)  '读取横行信息
  60.         dic.RemoveAll: k = 0  '清空字典,可重新定义一新变量
  61.         For i = 2 To UBound(arr)
  62.             '利用字典汇总特性,得出结果数据
  63.             If UBound(纵列) = 1 Then
  64.                 sz = arr(i, dd(纵列(0))) & Chr(10) & arr(i, dd(纵列(1)))    '此处写法只限于此题
  65.                 sh = arr(i, dd(横行(0)))
  66.             Else
  67.                 sh = arr(i, dd(横行(0))) & Chr(10) & arr(i, dd(横行(1)))
  68.                 sz = arr(i, dd(纵列(0)))
  69.             End If
  70.             d1(sz) = "": d2(sh) = ""    '生成行列标题
  71.             If Not dic.Exists(sz & sh) Then
  72.                 dic(sz & sh) = arr(i, 6)
  73.             Else
  74.                 dic(sz & sh) = arr(i, 6) + dic(sz & sh)
  75.             End If
  76.         Next
  77.         ReDim brr(0 To d1.Count, 0 To d2.Count)    '生成结果数组样式
  78.         For i = 0 To UBound(brr) - 1
  79.             For j = 0 To UBound(brr, 2) - 1
  80.                 '通过循环赋值
  81.                 brr(i + 1, 0) = d1.Keys(i)
  82.                 brr(0, j + 1) = d2.Keys(j)
  83.                 brr(i + 1, j + 1) = dic(brr(i + 1, 0) & brr(0, j + 1))
  84.             Next j
  85.         Next i
  86.         .Range("c6:iv65536").ClearContents    '清空数据
  87.         .Range("c6").Resize(UBound(brr) + 1, UBound(brr, 2) + 1) = brr    '数据存入单元格
  88.     End With
  89.     MsgBox Timer - t
  90. End Sub
复制代码
回复

使用道具 举报

发表于 2012-1-23 22:58 | 显示全部楼层
第02讲作业-02-dongqing1998.rar (32.48 KB, 下载次数: 45)
回复

使用道具 举报

发表于 2012-1-27 09:40 | 显示全部楼层
第02讲作业-B17-联乔教师统计报表.rar (22.09 KB, 下载次数: 11)
回复

使用道具 举报

发表于 2012-1-27 10:02 | 显示全部楼层
本帖最后由 wuxingai 于 2012-2-17 19:44 编辑

第02讲作业-20-wuxingai.rar (20.61 KB, 下载次数: 21)
回复

使用道具 举报

发表于 2012-1-27 13:06 | 显示全部楼层
学委辛苦了。
第02讲作业-10-rxj_0414.rar (22.92 KB, 下载次数: 12)
回复

使用道具 举报

发表于 2012-1-29 15:16 | 显示全部楼层
014:sunjing-zxl  上交作业
第02讲作业-14-sunjing-zxl.rar (25.16 KB, 下载次数: 21)
回复

使用道具 举报

发表于 2012-1-30 12:06 | 显示全部楼层
上交作业:

第02讲作业-06-csmccdh.rar (23.26 KB, 下载次数: 40)
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-4 00:49 , Processed in 0.558473 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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