就因為這個問題,我設定的庫存表格是「進、出、存」同一張表格。
就進料而言,進料次數無法確定,出料更不確定。簡單用“=”填寫庫存表會有很多空格。
可以使用陣列公式來傳回符合條件的品名(編號、規格等)的數值。但要注意的是,陣列公式必須有具體的區域,且區域內不能有空值。當無法確定行數時,公式就無法引用。
回答者: Stcxj - 榜眼 十三級 2009-8-25 15:58
就補充吧:
就是因為分拆成三個表使「存」表中的品名不能自動回傳。所以我說,我設定的是「進、出、存」同一張表格。關鍵是在「儲存」欄(列)的設定:
A列品名(查找條件)、B列進、C列出、D列存。
從最末行D列(假設是第100行)即D100輸入
=IF(AND(A100"",COUNTIF(A100:A$100,A100)=1),SUMIF(A:A,A100,B:B)-SUMIF(A:A,A100,C :C),"")回車並向上填充!
在這裡講可能很難理解,Hi我或留個地址吧,我傳一份給你。
「zopey」講的用「VLOOKUP」函數,你可能沒有接觸過「進出存」問題吧?同一天可以「進和出」很多「筆」相同品名規格的貨物,回傳的只能是最上面的一個數據。
假設 表格只有30列 庫存量、出庫量、入庫量類別分別是庫存、出庫、入庫
點選開發工具-VB編輯器或按ALT F11-雙擊sheet1-將以下程式碼複製到視窗
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.End(xlUp) "出庫" And Target.End(xlUp) "入庫" Then Exit Sub '如果更改非出庫或庫存列不執行該程式
If Target.Cells.Count > 1 Then Exit Sub '如果更改的單元格大於1不運行該程式
If Not Application.WorksheetFunction.IsNumber(Target) Then Exit Sub '如果更改的單元格不是數值不運行該程式
Dim rng As Range, k%
##For Each rng In Range("A1:AD1")
If rng = "庫存" Then
k = rng.Column
Exit For
End If
Next
Application.EnableEvents = False
If Target.End(xlUp) = "出庫" Then '更改出庫時
Cells(Target.Row, k) = Cells(Target.Row, k) - Target '庫存=原始庫存-出庫量
Else '更改入庫時
Cells(Target.Row, k) = Cells(Target.Row, k) Target '庫存=原始庫存-出庫量
End If
Application.EnableEvents = True
#End Sub
#以上是解決庫存表格問題:遇到的若干問題及函數解決方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!