Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2943|回复: 4

[已解决]再次修改后的目标取数

[复制链接]
发表于 2014-9-17 18:31 | 显示全部楼层 |阅读模式
老师们,附件中的目标成本表已修改,请帮忙看看是否可以把“目标成本”表里不同纸种和项目对应的目标成本引用到“车间成本”表里对应的纸种和项目(辅料和车间费用)内,其中“目标成本”表中的“保洁剂+清洁剂+杀菌剂+烧齡+除垢劑”=车间成本表里的“保洁剂”,另外,请不要把“目标成本”表中的蓝色标识的部分引用到“车间成本”表中,谢谢! 目标成本取数已修改.zip (45.8 KB, 下载次数: 9)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2014-9-19 11:37 | 显示全部楼层
  1. Sub tt()
  2.     arr = Sheet2.Range("a1:ap34")
  3.     Set d = CreateObject("scripting.dictionary")
  4.     For i = 4 To UBound(arr)
  5.         xm = arr(i, 1)   '项目
  6.         For j = 6 To UBound(arr, 2) Step 3
  7.             zl = arr(1, j - 2)      '纸类
  8.             d(xm & zl) = arr(i, j)           '项目+纸类为key,目标成本为item
  9.         Next
  10.     Next
  11.     arr = Sheet1.Range("a1:ex41")
  12.     For i = 12 To UBound(arr)
  13.         xm = arr(i, 2)
  14.         If InStr(xm, "成本") = 0 Then   '不含成本行
  15.             For j = 81 To UBound(arr, 2) Step 4
  16.                 zl = arr(4, j - 2)      '纸类
  17.                 arr(i, j) = d(xm & zl)
  18.             Next
  19.         End If
  20.     Next
  21.     Sheet1.Range("a1:ex41") = arr
  22. End Sub
复制代码
回复

使用道具 举报

发表于 2014-9-19 11:37 | 显示全部楼层
请看附件。

目标成本取数已修改.rar

43.33 KB, 下载次数: 1

回复

使用道具 举报

发表于 2014-9-19 11:42 | 显示全部楼层    本楼为最佳答案   
刚才代码没考虑保洁剂的要求,用现代码。。。。。。
  1. Sub tt()
  2.     arr = Sheet2.Range("a1:ap34")
  3.     Set d = CreateObject("scripting.dictionary")
  4.     xstr = "保潔劑殺菌劑清洗劑除垢劑鹹類"
  5.     For i = 4 To UBound(arr)
  6.         xm = arr(i, 1)   '项目
  7.         If InStr(xstr, xm) > 0 Then xm = "保潔劑"
  8.         For j = 6 To UBound(arr, 2) Step 3
  9.             zl = arr(1, j - 2)      '纸类
  10.             d(xm & zl) = d(xm & zl) + arr(i, j)         '项目+纸类为key,目标成本为item
  11.         Next
  12.     Next
  13.     arr = Sheet1.Range("a1:ex41")
  14.     For i = 12 To UBound(arr)
  15.         xm = arr(i, 2)
  16.         If InStr(xm, "成本") = 0 Then   '不含成本行
  17.             For j = 81 To UBound(arr, 2) Step 4
  18.                 zl = arr(4, j - 2)      '纸类
  19.                 arr(i, j) = d(xm & zl)
  20.             Next
  21.         End If
  22.     Next
  23.     Sheet1.Range("a1:ex41") = arr
  24. End Sub

复制代码
回复

使用道具 举报

 楼主| 发表于 2014-9-22 18:15 | 显示全部楼层
谢谢老师们的热心解答,问题已解决!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 08:40 , Processed in 0.295281 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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