Board logo

標題: 累計加總數量及每週加總數量 [打印本頁]

作者: rakefrank    時間: 2014-4-18 11:38     標題: 累計加總數量及每週加總數量

[attach]18064[/attach]

人員會每日輸入每日產量C8~AG8
1.請問如何撰寫C9~AG9公式,以計算累計加總數量?
2.C10~AG10的每週產量想要只顯示一筆資料在最中間的欄位,公式該如何撰寫呢?

請各位大大指導
作者: rakefrank    時間: 2014-4-18 13:55

[attach]18066[/attach]

自己想的
不過沒辦法解決置中
再請大大指導
作者: yen956    時間: 2014-4-18 16:35

本帖最後由 yen956 於 2014-4-18 16:39 編輯

回復 2# rakefrank
試試看:
1. c9公式 =C8
D9公式 =C9+D8 向左拉(複製)

2.
(A)D10公式
=SUM(C8:E8)
(B)i10公式 =SUM(F8:L8)
複製到 各週 週四
作者: rakefrank    時間: 2014-4-18 16:46

回復 3# yen956

感謝回復
但其實我的目的是要做一個自動格式化的表格
可以用在每個月
不用每個月都調整格式
作者: yen956    時間: 2014-4-19 12:39

回復 4# rakefrank
試試看:

格式稍改, 請下載試試看:
累計加總數量及每週加總數量.7z
http://www.mediafire.com/download/kat4hzm9srrsxqc/%E7%B4%AF%E8%A8%88%E5%8A%A0%E7%B8%BD%E6%95%B8%E9%87%8F%E5%8F%8A%E6%AF%8F%E9%80%B1%E5%8A%A0%E7%B8%BD%E6%95%B8%E9%87%8F.7z
作者: yen956    時間: 2014-4-19 12:54

補VBA
  1. Private Sub CommandButton1_Click()
  2.     Dim Mdays
  3.     Dim i As Integer
  4.    
  5.     '陽曆每月有幾天
  6.     Mdays = Array(0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)
  7.    
  8.     [C2].Resize(3, 31) = ""
  9.     [C6].Resize(2, 31) = ""
  10.    
  11.     '3月1日的前一天, 即為2月的最後一天, 也是2月的天數
  12.     '這也是 Excel 判別陽曆y年是否為閏年的另一方法
  13.     Mdays(2) = Day(DateSerial([N1], 3, 1) - 1)
  14.         
  15.     [C6] = [C5]
  16.         
  17.     For i = 1 To Mdays([Q1])
  18.         Cells(2, i + 2) = [N1] & "/" & [Q1] & "/" & i
  19.         Cells(3, i + 2) = i
  20.         Cells(4, i + 2) = Weekday(Cells(2, i + 2), vbMonday)
  21.             
  22.         '輸入累計公式
  23.         If i <> Mdays([Q1]) Then
  24.             Cells(6, i + 3) = "=RC[-1]+R[-1]C"
  25.         End If
  26.             
  27.         '計算中間每週生產量
  28.         If Cells(4, i + 2) = 7 And i + 2 - 6 > 1 Then
  29.             Cells(7, i + 2) = "=SUM(R[-2]C[-6]:R[-2]C)"
  30.               
  31.         '計算第一週生產量
  32.         ElseIf Cells(4, i + 2) = 7 Then
  33.             Cells(7, i + 2) = "=SUM(R[-2]C[" & [C4] - 7 & "]:R[-2]C)"
  34.         End If
  35.     Next
  36.         
  37.     '計算最後一週生產量
  38.     If Cells(4, Mdays([Q1]) + 2) < 7 Then
  39.         Cells(7, Mdays([Q1]) + 2) = "=SUM(R[-2]C[-" & Cells(4, Mdays([Q1]) + 2) - 1 & "]:R[-2]C)"
  40.     End If
  41. End Sub
複製代碼

作者: GBKEE    時間: 2014-4-19 15:20

回復 6# yen956
  1. '3月1日的前一天, 即為2月的最後一天, 也是2月的天數
  2.          '這也是 Excel 判別陽曆y年是否為閏年的另一方法
  3.         Mdays(2) = Day(DateSerial([N1], 3, 1) - 1)
複製代碼
這也是3月1日的前一天
  1. Day(DateSerial([N1], 3, 0))
複製代碼

作者: yen956    時間: 2014-4-19 15:48

回復 7# GBKEE
了解, 原來直接在日期-1就可以了,
不必求出DateSerial再-1, 謝謝!!
作者: GBKEE    時間: 2014-4-19 16:24

回復 8# yen956
也可以如此
  1. Private Sub EX()
  2.     Dim i As Integer, Rng  As Range, MoDay As Date
  3.     MoDay = DateSerial([n1], [q1], 1)
  4.     With Range("C2:C4")
  5.         .Resize(, 31) = ""
  6.         With .Offset(3).Resize(, 31)
  7.             .UnMerge
  8.             .Rows("2:3") = ""
  9.         End With
  10.         i = 1
  11.        Do While Month(MoDay + i - 1) = Month(MoDay)     '同一月份
  12.             .Cells(1, i) = MoDay + i - 1
  13.             .Cells(2, i) = i
  14.             .Cells(3, i) = Weekday(MoDay + (i - 1), 2)
  15.             .Cells(5, i) = Application.Evaluate("Sum(" & .Cells(4, 1).Resize(, i).Address & ")")
  16.             If .Cells(3, i) = 7 Or i = Day(DateAdd("M", 1, MoDay) - 1) Then '或是 此月份最後一天
  17.                 If i <= 7 Then                                  '第一週
  18.                     Set Rng = .Cells(6, i).Offset(, -(i - 1)).Resize(, i)
  19.                 ElseIf .Cells(3, i) = 7 Then                    '每週
  20.                     Set Rng = .Cells(6, i).Offset(, -6).Resize(, 7)
  21.                 ElseIf i = Day(DateAdd("M", 1, MoDay) - 1) Then  '月底
  22.                     Set Rng = .Cells(6, i).Offset(, -(.Cells(3, i) - 1)).Resize(, .Cells(3, i))
  23.                 End If
  24.                 With Rng
  25.                     .Merge
  26.                     .Cells(1) = Application.Evaluate("Sum(" & .Offset(-2).Cells(1).Resize(, .Columns.Count).Address & ")")
  27.                     .HorizontalAlignment = xlCenter
  28.                     .VerticalAlignment = xlCenter
  29.                     .WrapText = True
  30.                 End With
  31.             End If
  32.             i = i + 1
  33.        Loop
  34.     End With
  35. End Sub
複製代碼

作者: yen956    時間: 2014-4-19 19:32

回復 9# GBKEE
對我來說, 有點抽象(太多相對位置的相對位置), 有點難,
正在研究中, 謝謝再三指教!!謝謝!!
作者: Hsieh    時間: 2014-4-20 22:36

回復 4# rakefrank
試試看
[attach]18099[/attach]
作者: softsadwind    時間: 2014-4-22 08:56

回復 1# rakefrank


    參考看看...
    多了一列輔助
   [attach]18108[/attach]
作者: rakefrank    時間: 2014-4-22 11:31

回復 11# Hsieh

感謝回復
不過版大的公式會出現錯誤
好像是WEEKNUM此含數的傳回類類型11的關係
但若修改成2會導致全部的數值都相同
不知道是不是EXCEL版本所致

自己嘗試用WEEKNUM來寫
發現真是一個好用的含數

[attach]18109[/attach]
作者: rakefrank    時間: 2014-4-22 11:35

回復 12# softsadwind

感覺OR的用法真的是很令人吃驚
感謝回復




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)