在数据分析中经常需要对数据进行排序、排名,观察指标排名变化情况,手工处理的话不是太困难,但经常使用,还是编写宏比较方便。
宏命令比较简单,不多解释,只说一下注意事项:
1、有合并单元格,比如列、行合并后,直接选择会全选合并的列/行,这时候,不用管选择,直接进行插入、删除、或者格式化就可
Columns(nCol).Insert
2、输入格式化公式时,需要固定单元格$,可以使用FormulaR1C1,R[1]C[1]标示当前行、列加1,R1C1标示$a$1,使用时还要注意
把数字转换成字符串。
Sub 排序()
'
' 排序 宏
' 123
'
' 快捷键: Ctrl+p
Dim nCol As Long
Dim nRow As Long
nCol = Selection.Column
nRow = Selection.Row
Columns(nCol).Insert
Columns(nCol).NumberFormatLocal = "G/通用格式"
Cells(nRow, nCol).Select
ActiveCell.FormulaR1C1 = "=RANK(RC[-1],R" & CStr(nRow) & "C[-1]:R" & CStr(nRow + 16) & "C[-1])"
Selection.AutoFill Destination:=Range(Cells(nRow, nCol), Cells(nRow + 16, nCol)), Type:=xlFillDefault
End Sub