micro asked in 電腦與網際網路軟體 · 1 decade ago

EXCEL進項-銷項自動巨集VBA..編號相同計算之

進項欄位為

A B C D E

銷項欄位為

F G   H

A和F欄為任意編號

B和G欄為件數

D和H欄為重量

C和E欄為進項-銷項之差額

只要進銷項欄位(A.F)之編號相同時

則自動計算

B-G存入C..

D-H存入E

進項編號不會重覆,可多組,(如12.11.13...)

而銷項編號會重覆,一樣會有多組銷項編號(如11.12.11.13.)

只要銷項編號有資料鍵入,

則C和E欄會自動計算差額.

1 Answer

Rating
  • 1 decade ago
    Favorite Answer

    A B C D E F G H 進 銷 編號 件 件(進銷餘) 重 重(進銷餘) 編號 件 重 11 1000 988 3000 2886 12 32 36 12 2000 (向下拉) 6000 (向下拉) 11 3 33 13 1000

    3000

    13 4 39 14 500

    1500

    11 4 33 15 300

    900

    12 35 36 16 250

    750

    15 10 45 17 400

    1200

    11 5 48 18 60

    180

    C3=B3-SUMIF(F3:F1000,A3,G3:G1000)

    向下拉

    E3=D3-SUMIF(F3:F1000,A3,H3:H1000)

    向下拉

    2009-08-10 08:19:59 補充:

    如果沒銷貨記錄則顯示空白:

    C3=IF(COUNTIF(F3:F1000,A3),B3-SUMIF(F3:F1000,A3,G3:G1000),"")

    E3=IF(COUNTIF(F3:F1000,A3),D3-SUMIF(F3:F1000,A3,H3:H1000),"")

    2009-08-10 08:22:12 補充:

    這兩式,如果沒銷貨則顯示進貨量。

    2009-08-12 07:24:34 補充:

    Sub worksheet_change(ByVal Target As Range)

    R = Target.Row

    C = Target.Column

    S = Cells(R, 6).Value

    Set WSF = WorksheetFunction

    If C <> 7 And C <> 8 Then Exit Sub

    If R < 3 Or S = "" Then Exit Sub

    xSum = WSF.SumIf([F3:F60000], S, Range(Cells(3, C), Cells(60000, C)))

    2009-08-12 07:24:41 補充:

    On Error GoTo warning

    PRow = WSF.Match(S, [A1:A60000], 0)

    Cells(PRow, C * 2 - 11).Value = Cells(PRow, C * 2 - 12) - xSum

    Exit Sub

    warning:

    MsgBox "找不到這個編號:" & Chr(13) & Chr(9) & S

    End Sub

    2009-08-12 07:26:41 補充:

    更正公式:

    C3=B3-SUMIF(F$3:F$1000,A3,G$3:G$1000)

    向下拉

    E3=D3-SUMIF(F$3:F$1000,A3,H$3:H$1000)

    向下拉

    2009-08-12 07:28:44 補充:

    更正意見001公式:

    如果沒銷貨記錄則顯示空白:

    C3=IF(COUNTIF(F$3:F$1000,A3),B3-SUMIF(F$3:F$1000,A3,G$3:G$1000),"")

    E3=IF(COUNTIF(F$3:F$1000,A3),D3-SUMIF(F$3:F$1000,A3,H$3:H$1000),"")

Still have questions? Get your answers by asking now.