就因为这个问题,我设置的库存表格是“进、出、存”同一张表格。
就进料而言,进料次数无法确定,出料更不确定。简单用“=”填写库存表会有很多空格。
可以使用数组公式来返回符合条件的品名(编号、规格等)的数值。但需要注意的是,数组公式必须有具体的区域,并且区域内不能有空值。当无法确定行数时,公式就无法引用。
回答者: 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中文网其他相关文章!