发布网友 发布时间:2022-04-20 23:18
共3个回答
热心网友 时间:2023-07-17 19:43
F2单元格输入公式=IF(COUNTIF(C$2:C2,C2)>2,LOOKUP(1,0/(C$1:C1=C2),F$1:F1),MAX(F$1:F1)+1)
G2单元格输入公式="D"&TEXT(F2,"0000")
下拉两个公式。将F列隐藏即可。
热心网友 时间:2023-07-17 19:44
日常工作中,经常要在excel表格中进行统计工作,例如,月末根据货品盘点表和库存表,统计未盘点货品,年末根据库存商品和销售商品表格,统计滞销商品等等,为我们的数据分析奠定基础,这种统计性质的工作重复繁杂,时刻考验着有关工作人员的耐心和细心,工作量大且容易出错,其实类似这样的工作表对比的工作,用excel中vba代码进行自动统计,能够大幅的提高工作效率,实现办公的自动化。
下面,我们以excel2010为例,来分享一下自动统计的方法:
开启分步阅读模式
工具材料:
excel2010工作表
操作方法
01
如下图所示:A列是仓库库存商品编码,B列是已经盘点过的商品编码,我们需要统计出尚未盘点的商品编码并将其放置在C列。
首先我们来分析解决这个问题的方法是;先取A列A2单元格,然后分别取B列中的B2到B9单元格中的值跟A2单元格中的值对比,如果有相同的,说明已经盘点过,再取A列中的A3单元格,然后分别取B列中的B2到B9单元格中的值跟A3单元格中的值对比,如果有相同的,说明已经盘点过,继续取值对比,如果没有相同的,说明没有盘点过,将其写入C列单元格中。
02
根据上述分析,我们应该用vba中的for next循环语句解决问题.
点击【开发工具】(如果电脑选项卡中没有【开发工具】,参看下方⑥调出【开发工具】选项卡)选项卡下的【visual basic】,点击【视图】下的【代码窗口】,在代码窗口录入代码:
Sub 统计未盘点货品()
Dim r As Range, rr As Range, k As Integer
For Each r In Sheet2.Range("a2:a19")
a = r.Value
For Each rr In Sheet2.Range("b2:b9")
b = rr.Value
If r = rr Then GoTo line
Next rr
k = k + 1
Sheet2.Cells(k + 1, 3) = r
line:
Next r
End Sub
03
点击如下图所示的vba的运行按钮,或者点击【宏】,在【宏名】右侧选择框内选择【Sub 统计未盘点货品】,点击【执行】按钮。
04
可以看到,尚未盘点的货品编号已经统计出来并被写入C列了。我们可以验证一下是正确的。如果经常执行此代码,大家还可以插入一个快捷按钮来执行。点击【插入】/【形状】,选择一个自己喜欢的形状,例如我们选择一个矩形。
05
鼠标放在矩形上,右键单击,点击【指定宏】,将宏名【Sub 统计未盘点货品】指定给这个矩形,点击【确定】。
点击矩形即可运行此代码了,清除列数据,点击矩形,可以看出,未盘点数据已经统计出来并被写入C列了。
06
如果上述步骤中我们的excel2010中【开发工具】没有调出来,可以通过下述步骤调出:点击excel左上角的【文件】/【选项】,在【excel选项】中点击【自定义功能区】,将【主选项卡】下的【开发工具】前面的勾勾勾选上。点击【确定】即可。
热心网友 时间:2023-07-17 19:44
F2输入 D0001
F3=IF(COUNTIF($C$3:C3,C3)=1,"D"&TEXT(--RIGHT(D2,LEN(D2)-1)+1,"0000"),VLOOKUP(C3,$C$2:D3,2,0))
下拉公式