Để đổi hàng thành cột trong Excel, gõ =TRANSPOSE(A1:D3) vào ô nơi kết quả bắt đầu: hàng đầu tiên của A1:D3 trở thành cột đầu tiên của kết quả. Kết quả vẫn liên kết với nguồn, nên đổi một số trong nguồn thì bản sao cũng đổi theo. Thử đổi B2 thành 50 và xem B6 thay đổi theo.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Rep | Q1 | Q2 | Q3 |
| 2 | Ann | 10 | 12 | 9 |
| 3 | Ben | 8 | 11 | 14 |
| 4 | ||||
| 5 | Rep | Ann | Ben | |
| 6 | Q1 | 10 | 8 | |
| 7 | Q2 | 12 | 11 | |
| 8 | Q3 | 9 | 14 |
Nguồn có 3 hàng và 4 cột, nên kết quả có 4 hàng và 3 cột. Trong Excel 2021 và Microsoft 365, TRANSPOSE tự tràn kết quả (spill): bạn chỉ gõ vào một ô rồi nhấn Enter.
Cách chuyển hàng thành cột bằng Paste Special
Khi bạn chỉ cần bảng đã đảo một lần, Paste Special nhanh hơn và không để lại công thức nào:
- Chọn vùng dữ liệu và sao chép (Ctrl+C, trên Mac là Cmd+C).
- Bấm vào ô trên cùng bên trái của nơi đặt kết quả, nằm ngoài vùng đã sao chép.
- Trên thẻ Home, bấm mũi tên dưới Paste rồi chọn Transpose, hoặc nhấn Ctrl+Alt+V (trên Mac là Cmd+Ctrl+V), đánh dấu Transpose và bấm OK.
Trên Windows, đường phím tắt sau khi sao chép là Alt, H, V, T. Bản dán giữ nguyên định dạng nhưng không liên kết: khi nguồn thay đổi, bạn phải dán lại. Excel điều chỉnh các công thức trong vùng sao chép theo vị trí mới; hãy kiểm tra những công thức dùng tham chiếu tương đối, hoặc dán dưới dạng giá trị nếu bạn chỉ cần các con số.
Cú pháp TRANSPOSE
=TRANSPOSE(array)
Đối số duy nhất là vùng hoặc mảng cần lật. TRANSPOSE có trong Excel từ lâu, nhưng trước Excel 2021 nó là công thức mảng: chọn trước một vùng đích đúng kích thước (4 hàng x 3 cột cho ví dụ trên), gõ công thức rồi nhấn Ctrl+Shift+Enter (Cmd+Shift+Enter trên Mac). Khi đó Excel hiển thị công thức trong dấu ngoặc nhọn, {=TRANSPOSE(A1:D3)}. Trong Excel 2021 và Microsoft 365 chỉ cần Enter, và nếu có giá trị chắn đường thì bạn nhận lỗi #SPILL!.
Google Sheets cũng có TRANSPOSE và tràn kết quả theo cùng cách.
Chuyển một cột thành một hàng
Cùng hàm này lật một cột đơn thành một hàng, ví dụ một danh sách tên thành tiêu đề cột:
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Name | ||||||
| 2 | Ann | Ann | Ben | Cara | Dan | Eve | |
| 3 | Ben | ||||||
| 4 | Cara | ||||||
| 5 | Dan | ||||||
| 6 | Eve |
C2 tràn từ Ann tới Eve trên C2:G2. Thêm một tên vào A7 thì tên đó không được đưa vào, vì công thức đọc A2:A6; hãy mở rộng vùng thành A2:A7 hoặc lớn hơn để lấy cả tên đó.
Vì sao TRANSPOSE hiện 0 ở ô trống
Công thức trỏ tới một ô trống sẽ trả về 0, TRANSPOSE cũng vậy. Bên dưới, tháng 3 không có doanh số, nên phiên bản thông thường hiện 0 ở chỗ nguồn bị trống:
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Month | Jan | Feb | Mar | Apr |
| 2 | Sales | 120 | 95 | 150 | |
| 3 | |||||
| 4 | Month | Sales | Month | Sales | |
| 5 | Jan | 120 | Jan | 120 | |
| 6 | Feb | 95 | Feb | 95 | |
| 7 | Mar | 0 | Mar | ||
| 8 | Apr | 150 | Apr | 150 |
B7 hiện 0 cho Mar. Công thức thứ hai trước tiên dùng IF để đổi mỗi ô trống thành chuỗi rỗng, nên E7 vẫn để trống. Gõ một số vào D2 và cả hai công thức đều hiện số đó.
Chuyển nhiều hàng thành một cột
Để xếp cả một lưới ô vào một cột duy nhất, dùng TOCOL (Microsoft 365 và Excel 2024). Hàm đọc vùng theo từng hàng; TOROW làm tương tự nhưng xếp vào một hàng:
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Rep | Q1 | Q2 | Q3 | All values | |
| 2 | Ann | 10 | 12 | 9 | 10 | |
| 3 | Ben | 8 | 11 | 14 | 12 | |
| 4 | 9 | |||||
| 5 | 8 | |||||
| 6 | 11 | |||||
| 7 | 14 |
F2 liệt kê 10, 12, 9 từ hàng của Ann rồi 8, 11, 14 từ hàng của Ben. Để đọc dọc theo từng cột, đặt đối số thứ ba là TRUE: =TOCOL(B2:D3,,TRUE). =TOCOL(B2:D3,1) bỏ qua ô trống.
Luyện tập: các tháng xếp dọc thay vì ngang
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Month | Jan | Feb | Mar | Apr |
| 2 | Sales | 120 | 95 | 80 | 150 |
| 3 | |||||
| 4 | Months down |
Đến lượt bạn: Trong A5, xoay bảng ở A1:E2 sao cho các tháng chạy dọc cột A và doanh số chạy dọc cột B.
TRANSPOSE hay tra cứu theo hàng
Nhiều người lật một bảng ngang chỉ để chạy VLOOKUP trên đó. Việc này không cần thiết: HLOOKUP và XLOOKUP tìm thẳng trên một hàng. =XLOOKUP("Mar",B1:E1,B2:E2) trả về doanh số tháng 3 từ bảng ngang ở trên mà không cần lật gì cả. Chỉ dùng TRANSPOSE khi chính bố cục phải thay đổi, cho biểu đồ, báo cáo hay một hệ thống cần mỗi hàng là một bản ghi.
Câu hỏi thường gặp
Làm sao chuyển hàng thành cột trong Excel?
Sao chép vùng dữ liệu, bấm chuột phải vào ô nơi kết quả bắt đầu rồi chọn Paste Special > Transpose (Ctrl+Alt+V, rồi E và Enter). Cách này dán một bản sao cố định. Để có bản sao cập nhật theo dữ liệu nguồn, gõ =TRANSPOSE(A1:D3) vào ô đích.
Vì sao TRANSPOSE hiện 0 ở ô trống?
Công thức tham chiếu tới một ô trống sẽ trả về 0, và TRANSPOSE cũng không ngoại lệ. Hãy đổi ô trống thành chuỗi rỗng trước: =TRANSPOSE(IF(A1:E2="","",A1:E2)).
Làm sao dùng TRANSPOSE trong Excel 2019 trở về trước?
Chọn một vùng đích có số hàng và số cột hoán đổi cho nhau (4 hàng x 3 cột cho nguồn 3 hàng x 4 cột), gõ =TRANSPOSE(A1:D3) rồi nhấn Ctrl+Shift+Enter (Cmd+Shift+Enter trên Mac). Từ Excel 2021 trở đi chỉ cần nhấn Enter.
Làm sao gộp nhiều hàng thành một cột?
Dùng TOCOL trong Microsoft 365 hoặc Excel 2024: =TOCOL(B2:D3) đọc vùng theo từng hàng và xếp mọi giá trị vào một cột. =TOCOL(B2:D3,1) bỏ qua ô trống, còn TOROW làm tương tự nhưng xếp vào một hàng.