当公司里的财务对office并不精通的时候,对,你就得给与支持!office也没有专门研究过,也是一点一点的去找、去试;目前将所用过的office的命令及宏记录下来:
例:
表一 | 表二 | |||||||
编号 | 数值一 | 数值二 | 数值三 | 编号 | 数值一 | 数值二 | 数值三 | |
a001 |
12345 | 34567 | 78901 | a002 | 6666 | 7112 | 2323 | |
a002 | 123 | 5555 | 6666 | a003 | 3334 | 5678 | 9867 | |
a003 | 7777 | 812 | 345 | a004 | 123 | 4445 | 66443 |
1、取左、右边的值
取左=right(b2,2) "选取B2单元格左边二位数值" =45
取右=left(b2,2) "选取B2单元格右边二位数值" =12
取值不要后两位=left(b2,len(b2)-2)=123 //其中len(b2)是显示当前字符长度
2、数据合并
将表一、表二列中的单元格相加,在表三中显示;如表一.b2+表二b2=表三.b2
自己的方法:首先使用VLOOKUP将相应单元格数值提取出来,那么问题来了有数值会正确显示,如没有数值则会显示一个错误信息,这们相加得出的结果也会是错误信息,所以要对得出来的值做判断。
表三.B2 = IF(ISNA(VLOOKUP(A2,‘表一‘!$A$2:$D$4,2,0)),0,VLOOKUP(A2,‘表一‘!$A$2:$D$4,2,0))+IF(ISNA(VLOOKUP(A2,‘表二‘!$A$2:$D$5,2,0)),0,VLOOKUP(A2,‘表二‘!$A$2:$D$4,2,0))
这个方法有点长,但看起来很有清楚,能想明白,一看就是菜鸟写的,下面是高手写的,
表三.B2 = SUMIF(表一!A:A,A2,表一!B:B)+SUMIF(表二!A:A,A2,表二!B:B)
简单明了,表示很好用。。
3、vlookup数据查找
这个函数经常用到,之前有时突然想不起来怎么用,所以记录一下
查找表一的B4=vlookup(a4,a2:d4,2,0) //查找a4在a2:b4区域中第2列的数值
4、同列相同数据筛选
例:编号列出现多个相同的值,如多个a001、a002,想要只保留一个,其它的筛选出来
辅助列=if(countif(A$1:A1,A1)=1,A1,"")
5、从列a与列b列对比,若a1与b1不同,则b1下移一格再与a2对比,相同则跳过对比下一单元格,并将不同的填充红色数值为0
Sub test()
Dim a, b, c As Integer
a = Range("a65536").End(xlUp).Row
For b = 1 To a
If Cells(b, 1) <> Cells(b, 2) Then
Cells(b, 2).Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
ActiveCell.FormulaR1C1 = "0"
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
End If
Next
End Sub
网上找的,很有用,比如两个相同报表对比,想找到两个报表中缺失的几行,使用这个就可以。
6、删除两列中相同数据
Sub RemoveSame()
Dim col1, col2 As String
col1 = "A"
col2 = "B"
Dim row1, row2, i, j As Integer
Dim finded As Boolean
row1 = ActiveSheet.Range(col1 & "65536").End(xlUp).Row
row2 = ActiveSheet.Range(col2 & "65536").End(xlUp).Row
For i = 1 To row1
finded = False
If (Range(col1 & i) <> "") Then
For j = 1 To row2
If (Range(col1 & i) = Range(col2 & j)) Then
Range(col2 & j) = ""
finded = True
End If
If (finded) Then
Range(col1 & i) = ""
End If
Next
End If
Next
End Sub
有时想删除两个报表中相同的数据,可以使用这个宏