返回列表 上一主題 發帖

[發問] excel 判斷加總

回復 1# bill740615


E525 以陣列公式輸入 (CTRL+SHIFT+ENTER 三鍵齊按方式輸入),再複製到其他儲存格
{=SUM(OFFSET(D525,,,LARGE(A$1:A524*ROW($1:524),2)-ROW()-1))}
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 4# bill740615

E525 {=SUM(OFFSET(D525,,,LARGE(A$1:A524*ROW($1:524),2)-ROW()-1))}

F525 =IF(2<FREQUENCY((MOD(C$2:C525,7)<MOD(C$3:C526,7))*ROW($3:526),CHOOSE({1,2,3},ROW(),LOOKUP(1,0/A$2:A525,ROW($2:525)),0)),"",E525)

公式往上複製
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

本帖最後由 ML089 於 2016-2-10 00:27 編輯
  1. Sub ex()
  2.     Dim stauCalc%, nC%(1 To 3), n%, m%, LR%, i%, j%, k%, xR As Range
  3.     ThisWorkbook.Sheets("000").Select

  4.     stauCalc = Application.Calculation
  5.     Application.Calculation = xlCalculationManual

  6.     LR = Cells(Rows.Count, 2).End(xlUp).Row
  7.     Range("G2", "H" & LR).Clear
  8.     nC(1) = LR
  9.     For i = LR To 2 Step -1
  10.         If i = nC(1) Then
  11.             'A欄由下往上找第1個及第2個 "1"
  12.             n = 0
  13.             For j = i - 1 To 2 Step -1
  14.                 If Cells(j, 1) = "1" Then n = n + 1: nC(n) = j
  15.                 If n = 2 Then Exit For
  16.             Next
  17.             '由第1個 "1" 往下找第3個周一(最後一日)
  18.             m = 0: nC(3) = nC(1)
  19.             For k = nC(1) To i
  20.                 Set xR = Cells(k, "C")
  21.                 If Weekday(xR, 2) < Weekday(xR(2), 2) Then m = m + 1
  22.                 If m = 3 Then nC(3) = k: Exit For
  23.             Next
  24.         End If
  25.         If n <> 2 Then: Exit For
  26.         Cells(i, "G") = "=SUM(D$" & nC(2) & ":D" & i & ")"
  27.         If i <= nC(3) Then Cells(i, "H") = "=G" & i
  28.     Next
  29.     Application.Calculation = stauCalc
  30. End Sub
複製代碼
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

        靜思自在 : 能善用時間的人,必能掌握自己努力的方向。
返回列表 上一主題