Menu

App script quản lý rủi ro cho cá nhân & doanh nghiệp với báo cáo chuẩn định dạng biểu đồ

Tự động đánh số thứ tự (STT) theo nhóm khi dùng Pivot Table

Viên Giáo Hạ 18/03/2026 13:20 140 lượt xem 3 trả lời

Chào các anh em trong diễn đàn,

Dạo này mình hay làm việc với Pivot Table để tổng hợp dữ liệu bán hàng. Tuy nhiên, có một vấn đề nhỏ làm mình hơi đau đầu là làm sao để đánh số thứ tự (STT) cho từng nhóm mặt hàng một cách tự động. Ví dụ, mình có danh sách bán hàng theo từng khu vực, và mình muốn STT sẽ bắt đầu lại từ 1 cho mỗi khu vực khác nhau.

Mình đã thử nhiều cách, kể cả dùng các hàm tính toán trong Pivot Table, nhưng kết quả không như ý. Đôi khi nó đánh STT chung cho toàn bộ bảng, đôi khi lại nhảy lung tung.

Liệu có cao nhân nào trong diễn đàn có kinh nghiệm xử lý vấn đề này không ạ? Có công thức hay kỹ thuật nào để tự động hóa việc đánh STT theo từng nhóm (ví dụ: theo Khu vực, theo Mặt hàng) khi mình phân tích dữ liệu bằng Pivot Table không?

Rất mong nhận được sự giúp đỡ từ mọi người!

Cảm ơn!

0

Chào bạn,

Mình hiểu vấn đề bạn đang gặp phải với việc đánh STT tự động theo nhóm trong Pivot Table. Đây là một yêu cầu khá phổ biến khi làm báo cáo.

Thay vì cố gắng xử lý ngay trong Pivot Table, bạn có thể thử một cách khác là chuẩn bị dữ liệu nguồn trước khi tạo Pivot. Bạn có thể dùng hàm COUNTIFS hoặc SUMPRODUCT để tạo một cột STT riêng cho từng nhóm. Ví dụ, nếu bạn có cột "Khu vực" và "Mã hàng", bạn có thể tạo cột STT như sau:

``excel =COUNTIFS($A$2:A2, A2, $B$2:B2, B2) `` (Giả sử cột Khu vực là A, cột Mã hàng là B, và bạn đang điền công thức ở hàng 2).

Sau đó, khi bạn tạo Pivot Table từ dữ liệu đã được thêm cột STT này, bạn chỉ cần kéo cột STT vào phần Rows hoặc Values là được. Cách này thường cho kết quả ổn định hơn.

Bạn đã thử cách nào tương tự chưa? Nếu có thể chia sẻ thêm về cách bạn đang làm, mình sẽ dễ góp ý hơn nhé!

3

Cách chuẩn bị dữ liệu nguồn trước khi tạo Pivot Table như bạn kia gợi ý là rất hợp lý. Nếu không muốn dùng COUNTIFS, bạn có thể thử dùng hàm ROW() kết hợp với OFFSET() hoặc INDEX() để đánh số thứ tự cho từng nhóm. Tuy nhiên, cách này đòi hỏi bạn phải sắp xếp dữ liệu theo nhóm trước.

Một cách khác nữa là sử dụng VBA. Bạn có thể viết một macro nhỏ để duyệt qua các dòng dữ liệu, khi gặp một nhóm mới thì reset bộ đếm STT. Cách này tuy hơi mất công lúc đầu nhưng rất linh hoạt nếu bạn cần làm nhiều lần.

Bạn đã nghĩ đến việc dùng VBA chưa? Hay bạn muốn tìm một giải pháp chỉ dùng công thức trong Excel thôi?

5

Chào bạn,

Vụ đánh STT tự động theo nhóm trong Pivot Table này đúng là có làm nhiều người đau đầu thật. Mình cũng từng gặp tình huống tương tự.

Thay vì cố "nhồi" nó vào Pivot Table, cách bạn kia gợi ý chuẩn bị dữ liệu nguồn trước là một hướng đi rất hay. Mình thì hay dùng cách kết hợp với Power Query để xử lý phần này. Sau khi tải dữ liệu vào Power Query, bạn có thể Group By (Nhóm theo) cột "Khu vực", rồi thêm một cột Index mới cho mỗi nhóm. Khi đó, dữ liệu nguồn đã có STT chuẩn theo từng nhóm rồi, kéo vào Pivot Table là xong.

Cách này hơi khác một chút, không biết bạn đã thử với Power Query bao giờ chưa? Chia sẻ thêm để anh em mình cùng học hỏi nhé!

4

Bạn cần đăng nhập để trả lời chủ đề này.

Đăng nhập Đăng ký