Hàm groupby và pivot_table của Python trong Excel

Liên hệ QC

Hai Lúa Miền Tây

❆❆❆❆❆❆❆❆
Thành viên BQT
Administrator
Tham gia
18/3/08
Bài viết
8,304
Được thích
15,840
Giới tính
Nam
Nghề nghiệp
Làm ruộng.
Các bạn không lạ gì về GroupBy và Pivot Table trong Excel, để thêm một sự lựa chọn cho người dùng, hôm nay tôi xin giới thiệu 2 hàm groupby và pivot_table như sau:
1. Hàm groupby:
Cú pháp cộng tổng và gom nhóm: VungDuLieuNapVao.groupby('TenCotCanGomNhom')['CotCanTinhToan'].sum()
1730122395476.png
Lưu ý: Nếu bạn muốn gom nhóm nhiều cột thì phần ('TenCotCanGomNhom') thêm 2 dấu [ ] bao quanh tên cột.
Ví dụ: VungDuLieuNapVao.groupby(['TenCotCanGomNhom1','TenCotCanGomNhom2','TenCotCanGomNhom3')['CotCanTinhToan'].sum()
1730122504448.png
2. Hàm pivot_table:
Cú pháp cơ bản như sau: VungDuLieuNapVao.pivot_table(values='CotCanTinhToan',index='CotCanGroup',columns='CotCanPivot',aggfunc='HamCanTinhToan',fill_value=0,margins=True,margins_name='Grand Total',sort=True)

1730122612502.png

Các bạn xem thêm file nhé.
 

File đính kèm

  • groupby - pivot_table.xlsx
    14.3 KB · Đọc: 14
Nó giống giống hàm GroupBy và PivotBy của Excel 365

1. =GROUPBY(B1:B50,F1:F50,SUM,3)
2. =GROUPBY(HSTACK(B1:B50,H1:H50),F1:F50,SUM,3)
3. =PIVOTBY(H1:H50,B1:B50,F1:F50,SUM,3)
Về cơ bản thì giống nhau nhưng 2 hàm mà em giới thiệu nó có thể nạp dữ liệu từ Connections của Power Query Data.
 
Bài viết anh đang đề cập đến viết Python trong Excel 365, nhưng không thấy anh nhắc đến từ 'Python'.

Muốn viết được các thư viện Python trong Excel thì mọi người cần học qua thư viện tương ứng.

Các từ khóa đại diện cho mỗi thư viện:

pd - là từ khóa đại diện cho thư viện pandas
np - là numpy
plt - là matplotlib.pyplot
sm - là statsmodels
sns - là seaborn
...

Với Python cách viết hướng đối tượng rất phổ biến, nhanh, dễ hiểu, ví dụ:
xxx.pivot_table().sum()....

Python hiện tại là ngôn ngữ lập trình hiện đại và phổ biến nhất, và là ngôn ngữ dễ học nhất, là ngôn ngữ được cập nhật theo thời gian. Và được tận dụng để phát triển AI. Python xử lý được dữ liệu lớn. Python có rất nhiều thư viện nguồn mở, rất nhiều giải pháp xử lý dữ liệu.
Tuy là ngôn ngữ dễ học nhưng để học các thư viện là cả một vấn đề, việc học để nắm bắt cũng giống như học các hàm các phương thức Excel.

Python hiện tại chỉ được hỗ trợ trên Excel 365 và Excel doanh nghiệp.

Bắt đầu với Python trong Excel
 
Từ ngữ liên quan tới kỹ thuật phải hết sức cẩn trọng và chính xác.

View attachment 305098

Cái đó được gọi là DataFrame, một đối tượng (object) của thư viện pandas. Không phải là "VungDuLieuNapVao".

View attachment 305099

Xem chi tiết: https://support.microsoft.com/en-us...taframes-a10495b2-8372-4f0f-9179-32771fe0dc04
Em cũng biết là anh không phải dân kỹ thuật mà. Anh chỉ thấy nó có thể tham chiếu trực tiếp đến vùng dữ liệu thì anh gọi nôm na nó là vùng dữ liệu nhập vào cho dễ hiểu với người dùng thôi em.

1730167500190.png
 
Từ ngữ liên quan tới kỹ thuật phải hết sức cẩn trọng và chính xác.

View attachment 305098

Cái đó được gọi là DataFrame, một đối tượng (object) của thư viện pandas. Không phải là "VungDuLieuNapVao".

View attachment 305099

Xem chi tiết: https://support.microsoft.com/en-us...taframes-a10495b2-8372-4f0f-9179-32771fe0dc04
Hình như phài cài pyhton nữa mới sử dụng được. thấy Ms giới thiệu bắt đầu từ bản 2405 còn hình sau là bản 2409

1730169628602.png
 
Tôi chưa cài Python nhưng vẫn có thể dùng được đó bạn.
mới xem lại dùng tốt trên 365 như bài tôi viết trước đó ... tí rảnh thử tắt Module Mạng xem nó ra cái gì thì chưa biết

15 ngày chưa tắt Module tiện thử luôn nó tịt liền
1730193003230.png

vậy là rõ code Ms để máy chủ .. còn Excel 365 là máy khách call hàm máy chủ phản hồi lại .. vậy nhanh hay chậm còn liên quan mạng nữa
 
Lần chỉnh sửa cuối:
vậy là rõ code Ms để máy chủ .. còn Excel 365 là máy khách call hàm máy chủ phản hồi lại .. vậy nhanh hay chậm còn liên quan mạng nữa
Bạn cho mình hỏi về câu này , nếu vậy có phải trong file excel 365 mà mình có sử dụng python , mình viết công thức xong mà gởi file đó qua cho 1 máy khác (cũng excel 365) , nhưng nếu lúc đó, máy khác đó mà không có mạng internet thì mấy cái công thức của mình sẽ bị báo lỗi hết phải không ạ ?
 
Bạn cho mình hỏi về câu này , nếu vậy có phải trong file excel 365 mà mình có sử dụng python , mình viết công thức xong mà gởi file đó qua cho 1 máy khác (cũng excel 365) , nhưng nếu lúc đó, máy khác đó mà không có mạng internet thì mấy cái công thức của mình sẽ bị báo lỗi hết phải không ạ ?
rõ hơn ban ngày rồi .. thử rút cáp mạng ra thử đi là biết thôi

Nói chung Ms triển khai khởi đầu trên Office 365 bản doanh nghiệp hổ trợ python là ngon đấy ...
còn ai ứng dụng vào gì thì tuỳ theo khả năng và cách của người đó

Nó là mô hình đám mây hay máy chủ máy khách yêu cầu nếu sử dụng nó phải có mạng

bên cạnh đó Ms điều chỉnh hay bổ sung hàm ngay trên máy chủ của họ

Trích dẫn chatGPT ... cần gì hỏi nó

1730200057817.png
 
rõ hơn ban ngày rồi .. thử rút cáp mạng ra thử đi là biết thôi

Nói chung Ms triển khai khởi đầu trên Office 365 bản doanh nghiệp hổ trợ python là ngon đấy ...
còn ai ứng dụng vào gì thì tuỳ theo khả năng và cách của người đó
Cũng đang mới tập tành tìm hiểu về python nhưng đúng là không nghĩ đến tình huống này , hôm nay vô tình đọc được bài viết này của bạn , xem như 1 kiến thức mới được tiếp thu , hihihihi.
Thường khi gởi file cho người khác đa số là paste value hết , nhưng đúng là thỉnh thoảng cũng phải có 1 vài vùng / sheet vẫn phải để công thức , nên vấn đề online để python có thể hoạt động như này là cần phải dự trù trước, chứ nếu không mà họ offline rồi lỗi , mình không biết vụ này thì lại đi mò xem công thức sai ở đâu thì mất thời gian.
Cảm ơn bạn rất nhiều.
 
Sử dụng một đối tượng cung cấp từ một nền tảng nào đó không có nghĩa là viết theo hướng đối tượng.
VBA vẫn sử dụng đối tượng Application (tính đa hình), Excel (các giao diện/interfaces),... Nhưng VBA không thể hướng đối tượng.
Nếu không sử dụng tính chất di truyền (inheritance) thì không thể gọi code là hướng đối tượng.

Ngữ pháp xxx.pivot_table().sum().... chỉ có nghĩa là bạn dựng một đối tượng xxx với class DataFrame. Vì trong giao diện của class này có pivot_table() cho nên bạn có thể dùng xxx làm không gian ngữ cảnh (namespace) cho pivot_table(). Như vậy, trong ngữ pháp trên: tôi muốn nói tới cái pivot_table được khai báo trong cái class DataFrame (thành hình qua đối tượng xxx). Và cái sum() trong pivot_table()
 
Web KT

Bài viết mới nhất

Back
Top Bottom