標題:
累計加總數量及每週加總數量
[打印本頁]
作者:
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
Private Sub CommandButton1_Click()
Dim Mdays
Dim i As Integer
'陽曆每月有幾天
Mdays = Array(0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)
[C2].Resize(3, 31) = ""
[C6].Resize(2, 31) = ""
'3月1日的前一天, 即為2月的最後一天, 也是2月的天數
'這也是 Excel 判別陽曆y年是否為閏年的另一方法
Mdays(2) = Day(DateSerial([N1], 3, 1) - 1)
[C6] = [C5]
For i = 1 To Mdays([Q1])
Cells(2, i + 2) = [N1] & "/" & [Q1] & "/" & i
Cells(3, i + 2) = i
Cells(4, i + 2) = Weekday(Cells(2, i + 2), vbMonday)
'輸入累計公式
If i <> Mdays([Q1]) Then
Cells(6, i + 3) = "=RC[-1]+R[-1]C"
End If
'計算中間每週生產量
If Cells(4, i + 2) = 7 And i + 2 - 6 > 1 Then
Cells(7, i + 2) = "=SUM(R[-2]C[-6]:R[-2]C)"
'計算第一週生產量
ElseIf Cells(4, i + 2) = 7 Then
Cells(7, i + 2) = "=SUM(R[-2]C[" & [C4] - 7 & "]:R[-2]C)"
End If
Next
'計算最後一週生產量
If Cells(4, Mdays([Q1]) + 2) < 7 Then
Cells(7, Mdays([Q1]) + 2) = "=SUM(R[-2]C[-" & Cells(4, Mdays([Q1]) + 2) - 1 & "]:R[-2]C)"
End If
End Sub
複製代碼
作者:
GBKEE
時間:
2014-4-19 15:20
回復
6#
yen956
'3月1日的前一天, 即為2月的最後一天, 也是2月的天數
'這也是 Excel 判別陽曆y年是否為閏年的另一方法
Mdays(2) = Day(DateSerial([N1], 3, 1) - 1)
複製代碼
這也是3月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
也可以如此
Private Sub EX()
Dim i As Integer, Rng As Range, MoDay As Date
MoDay = DateSerial([n1], [q1], 1)
With Range("C2:C4")
.Resize(, 31) = ""
With .Offset(3).Resize(, 31)
.UnMerge
.Rows("2:3") = ""
End With
i = 1
Do While Month(MoDay + i - 1) = Month(MoDay) '同一月份
.Cells(1, i) = MoDay + i - 1
.Cells(2, i) = i
.Cells(3, i) = Weekday(MoDay + (i - 1), 2)
.Cells(5, i) = Application.Evaluate("Sum(" & .Cells(4, 1).Resize(, i).Address & ")")
If .Cells(3, i) = 7 Or i = Day(DateAdd("M", 1, MoDay) - 1) Then '或是 此月份最後一天
If i <= 7 Then '第一週
Set Rng = .Cells(6, i).Offset(, -(i - 1)).Resize(, i)
ElseIf .Cells(3, i) = 7 Then '每週
Set Rng = .Cells(6, i).Offset(, -6).Resize(, 7)
ElseIf i = Day(DateAdd("M", 1, MoDay) - 1) Then '月底
Set Rng = .Cells(6, i).Offset(, -(.Cells(3, i) - 1)).Resize(, .Cells(3, i))
End If
With Rng
.Merge
.Cells(1) = Application.Evaluate("Sum(" & .Offset(-2).Cells(1).Resize(, .Columns.Count).Address & ")")
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = True
End With
End If
i = i + 1
Loop
End With
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/)