注册 登录
编程论坛 VFP论坛

如何实现对工作表的VLOOKUP处理工作

ls_y041 发布于 2022-02-09 16:55, 2123 次点击
只有本站会员才能查看附件,请 登录

同一个工作薄中的两个表一个是订货的,一个是到货的,想实现一下实际到货的和订货的区别。这样的订货表在一个目录下是多个表,能不能实现一下,谢谢
只有本站会员才能查看附件,请 登录

当有替换号时以替换号为准,当到货不全时写不全。

[此贴子已经被作者于2022-2-9 17:02编辑过]

13 回复
#2
mywisdom882022-02-10 08:31
你是在EXCEL中处理,还是在用VFP处理
#3
mywisdom882022-02-10 08:41
同一个工作薄中的两个表一个是订货的,一个是到货的,想实现一下实际到货的和订货的区别。
用VLOOKUP时,有几个问题,要注意的;
1.订货,到货,两个表的相同零部件代码的记录,要只能有1行;如果,不同时期到货,有多行,是不能简单处理的
2.订货表是比较先出来的,所以要用订货表的记录,去到货表中找
3.从到货表中找到数据后,把到货数量,写到订货表中去,就实现你要的功能了
#4
mywisdom882022-02-10 09:14
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录

到货数量,这里写 =IF(ISERROR(VLOOKUP(A3,到货!A$3:C$65536,3,FALSE)),0,VLOOKUP(A3,到货!A$3:C$65536,3,FALSE))
到货情况,这里写 =IF(E3=0,"未到",IF(C3=E3,"到货","不全"))
#5
mywisdom882022-02-10 09:22
到货数量,这里写 =IF(ISERROR(VLOOKUP(A3,到货!A$3:C$65536,3,FALSE)),0,VLOOKUP(A3,到货!A$3:C$65536,3,FALSE))

VLOOKUP(A3,到货!A$3:C$65536,3,FALSE)
A3:表示
在到货表中,查找,订货表的A3单元格的值
到货!A$3:C$65536:表示
查找区域固定从A第3行开始,C第65536行结束
3:表示
到货表的A,B,C区域中的第3列,也就是C列的值
FALSE:表示,精确匹配
#6
mywisdom882022-02-10 09:34
你自己表中,还多了个可以代替部件的,就比较麻烦了,还没想到方法
可以从你代码表来做文章,如
71101-TS6-H10ZZ,71101-TS6-H10
改一下到货表
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录

同时,改一下,语句
=IF(ISERROR(VLOOKUP(A3,到货!A$3:D$65536,4,FALSE)),0,VLOOKUP(A3,到货!A$3:D$65536,4,FALSE)) + IF(ISERROR(VLOOKUP(A3,到货!B$3:D$65536,3,FALSE)),0,VLOOKUP(A3,到货!B$3:D$65536,3,FALSE))

[此贴子已经被作者于2022-2-10 09:52编辑过]

#7
ls_y0412022-02-10 10:30
感谢您的回复,真实的情况是这样的,一个目录下放订货单 ,一个目录下放到货单 ,
只有本站会员才能查看附件,请 登录
#8
laowan0012022-02-10 11:12
这种工作在VFP里不算事,可能的话,还是导入VFP加工吧
#9
mywisdom882022-02-10 11:43
以下是引用ls_y041在2022-2-10 10:30:20的发言:

感谢您的回复,真实的情况是这样的,一个目录下放订货单 ,一个目录下放到货单 ,

改为,其他相同
=IF(ISERROR(VLOOKUP(A3,'E:\到货\[到货.xlsx]Sheet1'!A$3:D$65525,4,FALSE)),0,VLOOKUP(A3,'E:\到货\[到货.xlsx]Sheet1'!A$3:D$65525,4,FALSE)) +IF(ISERROR(VLOOKUP( A3,'E:\到货\[到货.xlsx]Sheet1'!B$3:D$65525,3,FALSE)),0,VLOOKUP(A3,'E:\到货\[到货.xlsx]Sheet1'!B$3:D$65525,3,FALSE))

其中
E:\到货\到货.xlsx
E:\订货\订货.xlsx
只有本站会员才能查看附件,请 登录


[此贴子已经被作者于2022-2-10 11:45编辑过]

#10
ls_y0412022-02-10 13:03
这个是可以的,就是有点麻烦了,能不能用VFP来实现一下,
#11
mywisdom882022-02-10 13:52
用VFP,就简单了,就不是你标题说的 VLOOKUP 问题了
有很多方法,你可以完全把2个EXCEL表转为DBF,这时候,你想怎么处理都可以。
#12
ls_y0412022-02-10 16:09
Sub 新旧比较() 'bajifeng
ofn = Array("表1.xlsx", "表2.xlsx")
Application.DisplayAlerts = False
Workbooks.Open ThisWorkbook.Path & "" & ofn(0)
arr = ActiveWorkbook.ActiveSheet.UsedRange
ActiveWorkbook.Close
Workbooks.Open ThisWorkbook.Path & "" & ofn(1)
brr = ActiveWorkbook.ActiveSheet.UsedRange
crr = ActiveWorkbook.ActiveSheet.UsedRange
ActiveWorkbook.Close
[a1].Resize(UBound(brr), 7) = crr
For i = 2 To UBound(brr)
    For j = 1 To 7
        If arr(i, j) <> "" And brr(i, j) <> "" And arr(i, j) <> brr(i, j) Then Cells(i, j).Font.ColorIndex = 3
        If arr(i, j) = "" And brr(i, j) <> "" Then Cells(i, j).Font.ColorIndex = 4
        If arr(i, j) <> "" And brr(i, j) = "" Then
        Cells(i, j).Value = arr(i, j)
        Cells(i, j).Font.ColorIndex = 15
        End If
    Next
Next
Application.DisplayAlerts = True
End Sub
#13
ls_y0412022-02-10 16:09
找个段代码,不太会处理
#14
gs25367856782022-02-13 16:28
EXCEL总有二个缺点:
第一是公式复杂,难于掌握
第二是表达公式的文字太小,时间一长眼睛吃力。
1