Cách dùng Chuyển công thức Excel sang Python
- Dán công thức Excel hoặc Google Sheets, hoặc chọn một công thức trong Ví dụ.
- Chọn ngôn ngữ đích — trang mặc định là Python, và bạn có thể đổi bất cứ lúc nào.
- Đổi tên các tham chiếu ô được nhận diện thành tên biến có ý nghĩa, ví dụ
B2→price. - Chọn hàm đầy đủ hoặc chỉ biểu thức, rồi sao chép hoặc tải code về. Hàm hỗ trợ sẽ tự động được thêm khi công thức cần đến.
Chuyển logic bảng tính sang Python
Các nhóm dữ liệu thường xuyên xây dựng lại mô hình Excel bằng Python — để tự động hóa báo cáo hàng tháng, đưa dữ liệu vào pipeline pandas hoặc chuyển một phép tính ra sau API. Gõ lại công thức thì chậm và dễ sai, vì Python và Excel khác nhau ở các chi tiết như làm tròn và so sánh văn bản. Công cụ này phân tích công thức theo thứ tự ưu tiên toán tử của chính Excel và tạo ra đoạn Python tương đương, dễ đọc.
=SUMIFS(D2:D100, B2:B100, "North", C2:C100, ">=1000")
def calculate(d2_d100, b2_b100, c2_c100):
return sum_ifs(d2_d100, b2_b100, 'North', c2_c100, '>=1000')
Hàm sum_ifs() (cùng hàm matches_criteria() mà nó dùng) được đặt sẵn phía trên hàm chính, nên kết quả chạy được ngay.
Cách các hàm Excel tương ứng trong Python
| Excel | Python |
|---|---|
IF(c, a, b) | a if c else b |
IFS / SWITCH | chained conditional expressions |
AND, OR, NOT | and, or, not |
= and <> | == and != |
a & b | str(a) + str(b) |
a ^ b | a ** b |
SUM(A2:A10) | sum(a2_a10) |
ROUND(x, 2) | excel_round() helper — not round() |
MOD(a, b) | a % b |
SUMIFS / COUNTIF… | sum_ifs(), count_if() helpers |
VLOOKUP / XLOOKUP | vlookup(), xlookup() helpers |
IFERROR(x, y) | if_error(lambda: x, y) |
LEFT / MID / LEN | slicing, len() |
TODAY() / NOW() | date.today(), datetime.now() |
Những bẫy mà công cụ xử lý giúp bạn
- Làm tròn kiểu ngân hàng.
round(2.5)của Python trả về 2 vàround(0.125, 2)trả về 0.12; Excel cho ra 3 và 0.13. Kết quả dùng hàmexcel_round()dựa trênDecimalvớiROUND_HALF_UP. - Nối chuỗi.
"Total: " + 5gây raTypeErrortrong Python, nên mọi toán hạng không phải văn bản của&đều được bọc trongstr(). - IF là một biểu thức.
IFtrở thành biểu thức điều kiện của Python (a if c else b), và các IF lồng nhau được nối lại một cách tự nhiên. - Phép chia.
/của Python 3 luôn trả về số thực, giống với Excel. - Lỗi.
IFERRORchuyển thànhif_error(lambda: …, fallback), bắtZeroDivisionError,LookupErrortừ các phép tra cứu và các ngoại lệ khác. - Ngày tháng.
DATE,TODAYvàYEARánh xạ sang moduledatetime. Excel tự điều chỉnh ngày không hợp lệ (tháng 13); Python sẽ báo lỗi, còn công cụ sẽ cảnh báo bạn.
Làm việc với pandas
Các hàm được tạo ra làm việc với giá trị đơn lẻ và danh sách. Để áp dụng công thức theo từng dòng cho DataFrame, hãy gọi df.apply(lambda r: calculate(r.price, r.qty), axis=1); với các phép tổng hợp như SUMIFS, mặt nạ boolean của pandas (df.loc[(df.region == 'North') & (df.total >= 1000), 'amount'].sum()) sẽ nhanh hơn khi xử lý dữ liệu lớn.
Các hàm được hỗ trợ: IF, IFS, SWITCH, AND, OR, NOT, XOR, IFERROR, IFNA, ISBLANK, ISNUMBER, ISTEXT, SUM, AVERAGE, MIN, MAX, COUNT, COUNTA, COUNTBLANK, PRODUCT, MEDIAN, ROUND, ROUNDUP, ROUNDDOWN, INT, TRUNC, ABS, SIGN, MOD, POWER, SQRT, EXP, LN, LOG, LOG10, PI, CEILING, FLOOR, RAND, RANDBETWEEN, SUMIF, SUMIFS, COUNTIF, COUNTIFS, AVERAGEIF, AVERAGEIFS, SUMPRODUCT, VLOOKUP, XLOOKUP, MATCH, INDEX, CONCAT, CONCATENATE, TEXTJOIN, LEFT, RIGHT, MID, LEN, UPPER, LOWER, PROPER, TRIM, SUBSTITUTE, REPLACE, FIND, SEARCH, REPT, VALUE, EXACT, TEXT (định dạng số), TODAY, NOW, DATE, YEAR, MONTH, DAY. Để tải chính file bảng tính, hãy dùng Excel to JSON kết hợp với json.load().
Cũng được tìm dưới tên: excel sang python, công thức excel sang code python, excel formula to python, google sheets sang python, công thức excel pandas, vlookup trong python, chuyển excel sang python online.
Các công cụ dùng kèm tốt với Chuyển công thức Excel sang Python
- Chuyển công thức Excel sang JavaScript — Dán một công thức bảng tính và nhận lại JavaScript dễ đọc: một hàm có tham số được đặt tên, thứ tự ưu tiên toán tử đúng, cùng các hàm phụ nhỏ cho những thứ JavaScript không có sẵn, như SUMIFS và VLOOKUP.
- Công thức Excel sang SQL — Dán công thức Excel và nhận ngay biểu thức SQL tương đương hoặc truy vấn SELECT: IF và IFS thành CASE WHEN, SUMIFS và COUNTIFS thành tổng hợp có điều kiện, cùng các hàm chuỗi và ngày phù hợp với cơ sở dữ liệu của bạn.
- Chuyển Excel Formula sang PHP — Dán một công thức bảng tính và nhận về hàm PHP 8: toán tử ba ngôi có dấu ngoặc, các hàm chuỗi mb_*, và helper cho tra cứu, tổng có điều kiện và MOD kiểu Excel.
- CSV sang JSON — Dán CSV hoặc TSV để nhận mảng JSON gồm các object.
Câu hỏi thường gặp
Tại sao kết quả dùng excel_round() thay vì round()?
round(2.5) cho ra 2. Excel làm tròn số .5 ra xa số 0. Hàm hỗ trợ tái tạo chính xác cách làm tròn của Excel.Công cụ có hoạt động với DataFrame của pandas không?
.tolist(), hoặc áp dụng hàm theo từng dòng bằng df.apply(…, axis=1).VLOOKUP được chuyển đổi như thế nào?
vlookup(value, table, column, approximate), trong đó bảng là danh sách các hàng. Khớp chính xác (FALSE) so sánh văn bản không phân biệt chữ hoa, chữ thường như Excel; nếu không tìm thấy giá trị, hàm sẽ báo LookupError và IFERROR sẽ bắt lỗi này.