Cách dùng Công thức Excel sang SQL
- 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à SQL, và bạn có thể đổi bất cứ lúc nào.
- Đổi tên các tham chiếu ô được phát hiện thành tên biến dễ hiểu, 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ề. Các hàm phụ trợ sẽ tự động được thêm khi công thức cần đến.
Từ công thức bảng tính sang SQL
Khi một báo cáo vượt quá khả năng của Excel, các công thức của nó thường được chuyển thành SQL: cột tính toán trong SELECT, tổng có điều kiện trong truy vấn dashboard hoặc view trong kho dữ liệu. SQL làm việc theo cột và hàng thay vì ô, nên bộ chuyển đổi này coi mỗi tham chiếu ô là một cột của hàng hiện tại, và mỗi vùng là một cột cần tổng hợp.
=SUMIFS(D2:D100, B2:B100, "North", C2:C100, ">=1000")
SELECT
SUM(CASE WHEN col_b = 'North' AND col_c >= 1000 THEN col_d ELSE 0 END) AS result
FROM my_table;
Đổi tên các tham chiếu thành tên cột thực tế của bạn, ví dụ B2:B100 → region, và truy vấn đã sẵn sàng để chạy.
Hàm Excel tương ứng với SQL như thế nào
| Excel | SQL |
|---|---|
IF(c, a, b) | CASE WHEN c THEN a ELSE b END |
IFS / SWITCH | CASE WHEN … END |
AND, OR, NOT | AND, OR, NOT |
= and <> | = and <> |
a & b | CONCAT(a, b) |
a ^ b | POWER(a, b) |
SUM(A2:A10) | SUM(col_a) |
ROUND(x, 2) | ROUND(x, 2) |
MOD(a, b) | MOD(a, b) — sign differs |
SUMIFS / COUNTIF… | SUM(CASE WHEN … THEN … END) |
VLOOKUP / XLOOKUP | not translated — use a JOIN |
IFERROR(x, y) | COALESCE(x, y) (NULL only) |
LEFT / MID / LEN | LEFT, SUBSTRING, CHAR_LENGTH |
TODAY() / NOW() | CURRENT_DATE, CURRENT_TIMESTAMP |
Tiêu chí trở thành điều kiện
Chuỗi tiêu chí của Excel được biên dịch thành điều kiện SQL: ">=1000" thành col >= 1000, "<>closed" thành col <> 'closed', và ký tự đại diện thành mẫu LIKE. Ví dụ "*@example.com" được chuyển thành LIKE '%@example.com'. Cách này áp dụng cho SUMIF, SUMIFS, COUNTIF, COUNTIFS, AVERAGEIF và AVERAGEIFS.
Khác biệt giữa các phương ngữ
| Excel | MySQL | PostgreSQL | SQL Server |
|---|---|---|---|
LEN | CHAR_LENGTH | LENGTH | LEN |
FIND | LOCATE | POSITION … IN | CHARINDEX |
REPLACE | INSERT | OVERLAY | STUFF |
DATE(y, m, d) | STR_TO_DATE(CONCAT…) | MAKE_DATE | DATEFROMPARTS |
YEAR(d) | YEAR(d) | EXTRACT(YEAR FROM d) | YEAR(d) |
TODAY() | CURRENT_DATE | CURRENT_DATE | CAST(GETDATE() AS DATE) |
Những gì không chuyển đổi được
Các hàm tra cứu (VLOOKUP, XLOOKUP, INDEX/MATCH) trong SQL là phép JOIN, nên chúng được đánh dấu thay vì đoán mò. IFERROR thành COALESCE, hàm này chỉ thay thế giá trị NULL, vì vậy hãy bọc mẫu số bằng NULLIF(x, 0) để tránh lỗi chia cho 0. PostgreSQL và SQL Server chia số nguyên cho số nguyên và trả về số nguyên, nên khi cần hãy ép một vế sang DECIMAL.
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 (không gồm các hàm tra cứu). Hãy nạp bảng tính vào một bảng trước bằng CSV & Excel sang SQL, rồi làm gọn truy vấn bằng SQL Formatter.
Cũng được tìm dưới tên: chuyển excel if sang sql case, sumifs trong sql, countif trong sql, chuyển công thức excel sang mysql, excel sang sql query, công thức excel sang postgresql.
Các công cụ dùng kèm tốt với Công thức Excel sang SQL
- Chuyển công thức Excel sang Python — Dán công thức Excel hoặc Google Sheets và nhận ngay một hàm Python với tên biến rõ ràng, đúng các thư viện cần thiết cùng hàm hỗ trợ cho SUMIFS, VLOOKUP và cách làm tròn kiểu Excel.
- 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.
- Trình tạo CREATE TABLE — Thiết kế bảng theo từng cột — kiểu dữ liệu, khóa chính, NOT NULL, UNIQUE, tự tăng và giá trị mặc định — rồi nhận cú pháp CREATE TABLE đúng cho cơ sở dữ liệu của bạn.
- Excel sang JSON — Mở file .xlsx hoặc dán trực tiếp các ô từ Excel hay Google Sheets để nhận JSON sạch.
Câu hỏi thường gặp
Làm thế nào để viết câu lệnh IF của Excel bằng SQL?
CASE WHEN condition THEN value ELSE other END. Các IF lồng nhau và IFS sẽ trở thành một CASE duy nhất với nhiều nhánh WHEN, và bộ chuyển đổi này tạo ra điều đó tự động.SUMIFS tương đương với gì trong SQL?
SUM(CASE WHEN region = 'North' AND total >= 1000 THEN amount ELSE 0 END). Nếu chỉ có một điều kiện, bạn cũng có thể dùng WHERE kết hợp với SUM thông thường.Làm thế nào để thực hiện VLOOKUP trong SQL?
SELECT o.*, p.price FROM orders o LEFT JOIN products p ON p.sku = o.sku. LEFT JOIN trả về NULL khi không có khớp, tương tự IFERROR(VLOOKUP(…), "").