Đánh số thứ tự theo Pivot

anpha_omega

Thành viên mới
Tham gia ngày
14 Tháng ba 2010
Bài viết
29
Được thích
5
Điểm
665
Tuổi
29
Em có danh sách kết quả thi của học sinh đã lọc theo Pivot. Cơ mà đến bước đánh số thứ tự (cột màu xanh) thì không biết dùng hàm gì để đánh tự động. Mỗi lần em lọc ra kết quả khác là phải đánh tay cột này lại từ đầu. Nhờ các bác giúp đỡ với ạ.
 

File đính kèm

xuongrongdat

Có bao giờ bạn tự hỏi "Tôi là ai?"
Tham gia ngày
30 Tháng sáu 2008
Bài viết
818
Được thích
685
Điểm
860
Nơi ở
Mỹ Tho- Tiền Giang
Em có danh sách kết quả thi của học sinh đã lọc theo Pivot. Cơ mà đến bước đánh số thứ tự (cột màu xanh) thì không biết dùng hàm gì để đánh tự động. Mỗi lần em lọc ra kết quả khác là phải đánh tay cột này lại từ đầu. Nhờ các bác giúp đỡ với ạ.
Phải bạn đánh STT từ 1,2,3,... chỉ là "Số thứ tự" không thôi thì mình còn ráng. Chứ bạn đánh STT xen kẽ các kiểu số La Mã I, II,... và kiểu chữ a,b,c,... nữa thì quả là căng luôn đấy ạ. :)
 

ptm0412

Bad Excel Member
Thành viên BQT
Super Moderator
Tham gia ngày
4 Tháng mười một 2007
Bài viết
9,923
Được thích
29,648
Điểm
1,910
Tuổi
58
Nơi ở
Gò Vấp
Phải bạn đánh STT từ 1,2,3,... chỉ là "Số thứ tự" không thôi thì mình còn ráng. Chứ bạn đánh STT xen kẽ các kiểu số La Mã I, II,... và kiểu chữ a,b,c,... nữa thì quả là căng luôn đấy ạ. :)
Dùng hàm Roman để đánh số la mã
 

ptm0412

Bad Excel Member
Thành viên BQT
Super Moderator
Tham gia ngày
4 Tháng mười một 2007
Bài viết
9,923
Được thích
29,648
Điểm
1,910
Tuổi
58
Nơi ở
Gò Vấp
Thủ tục đánh số:
PHP:
Sub STT3Level()
Dim Lama As Long, SeqNum As Long, AlphaNum As Long, GradeNum As Long
Dim Country As Range, LastRw As Long, Grade As String
Grade = "L" & ChrW(7899) & "p"
LastRw = Sheet1.[I1000].End(xlUp).Row
Application.ScreenUpdating = False
Sheet1.Range("H2:H10000").Clear
For i = 2 To LastRw
    Set Country = Sheet1.Range("N2:N6").Find(Cells(i, 9))
    If Not Country Is Nothing Then 'So La mã'
        AlphaNum = 96
        GradeNum = 0
        Lama = Lama + 1
        Cells(i, 8) = Application.Roman(Lama)
        Cells(i, 8).Font.Bold = True
    ElseIf Left(Cells(i, 9), 3) Like Grade Then 'So tang'
        AlphaNum = 96
        GradeNum = GradeNum + 1
        Cells(i, 8).Value = GradeNum
        Cells(i, 8).Font.Bold = True
        Cells(i, 8).Font.Italic = True
        Cells(i, 8).HorizontalAlignment = xlCenter
    Else 'abc'
        AlphaNum = AlphaNum + 1
        Cells(i, 8).Value = ChrW(AlphaNum)
        Cells(i, 8).HorizontalAlignment = xlRight
    End If
Next
Sheet1.Range("H2:J" & LastRw).Borders.LineStyle = 1
Application.ScreenUpdating = True
End Sub
Đưa vào sự kiện PivotTableUpdate
PHP:
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
   STT3Level
End Sub
1601992770775.png
 

File đính kèm

Lần chỉnh sửa cuối:

anpha_omega

Thành viên mới
Tham gia ngày
14 Tháng ba 2010
Bài viết
29
Được thích
5
Điểm
665
Tuổi
29
@ptm0412 Khiếp, mặc dù em không hiểu VBA lắm nhưng thật bái phục bác. Theo bác món này thì có thể dùng hàm đơn thuần được không ạ?
 
Top Bottom