请教EXCEL高手!!

来源:百度知道 编辑:UC知道 时间:2024/06/07 12:36:11
在此小弟也想请教一下关于EXCEL技巧的问题,请帮忙解答下,万分感激!
用EXCEL作成“电子元件库存”管理台账,其中:A列为位置,B列对应为零件名称,C列对应为在库数量。如果要提取零件时,我想在D列输入或粘贴上几十种零件名称时,就可以从几千种库存零件列表中对应筛选出我想提取这几十零件在库的情况(位置及数量),然后,在E列对应输入该种零件提取的数量后,库存数量(即C列)对应减去提取数量,更新为最新的库存量。(注:D,E两列只是用来每回提取零件输入数据的区域)。简单表示如下:

A位置---------B名称---------C数量---------D---------E
区1----------BCNA00006------1000
区2----------BCML95858------2000
区3----------BCNB94994------500
....
三楼的回答有少少的误差,位置列的公式应该是:b2=IF(COUNTIF(Sheet1!B:B,A2),INDEX(Sheet1!A:A,MATCH(A2,Sheet1!B:B,0)),"无此零件") 才是我想要的结果.但问题最终还是解决了.

设库存表在sheet1,建议在sheet2提取。
表头:
名称 位置 库存量 提取数量

名称列粘贴或输入;
位置列公式 b2=IF(COUNTIF(Sheet1!B:B,A2),INDEX(Sheet1!A:A,MATCH(A2,Sheet1!A:A,0)),"无此零件")
库存列公式 c2=if(countif(sheet1!b:b,a2),vlookup(a2,sheet1!b:c,2,0),"无此零件")
提取数量粘贴或输入

sheet1中库存自动更新,需用VBA。
在sheet2中建一个按钮,双击之,粘贴以下代码:

Private Sub CommandButton1_Click()
sums = 0
sums = WorksheetFunction.CountA(Sheets(2).Range("a:a"))
For i = 2 To sums
r = WorksheetFunction.Match(Cells(i, 1), Sheets(1).Columns(2), 0)
Sheets(1).Cells(r, 3) = Sheets(1).Cells(r, 3) - Cells(i, 4)
Next
End Sub

vlookup函数

E列输入值去改c列的值,
1。会把E列的公式干掉了,2。会造成循环嵌套,excel 不允许。
3。在f列对应输入该种零件提取的数量,也需要在c列(库存)写公式。
c列(c2格)
=c2-f2
e列(e2格)
=vlookup(d2,b:c,2)
下拉复制公式。