Làm thế nào để chuyển dữ liệu hàng ngang thành cột dọc? (1 người xem)

  • Thread starter Thread starter longg75
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

longg75

Thành viên mới
Tham gia
16/8/06
Bài viết
2
Được thích
28
Hi Bros.,
Các pác cho em hỏi làm thế nào để chuyển dữ liệu hàng ngang thành cột dọc và ngược lại?
 
B1 - Chọn vùng dữ liệu ban đầu
B2 - Thực hiện Copy
B3 - Đặt trỏ ô tại vùng đích
B4 - Edit\Paste Special...
B5 - [v] Transpose --> OK => Yes
 
Mình xem chủ đề này trên cả hai forum nhưng có lẽ vẫn còn một cách làm nữa; mình nghĩ nó cũng khá hay, sau khi chuyển đổi nó vẫn link được với dữ liệu lúc đầu (khi dữ liệu lúc đầu thay đổi nó cũng tự thay đổi theo).
Đó là dùng hàm Transpose có sẵn của Excel.
Chú ý: phải nhớ số hàng và số cột của vùng cần chuyển đổi (từ m x n -> n x m)
 
Ngoài ra bạn cũng có thể chuyển dữ liệu theo kiểu đặc biệt này nữa (dùng VBA):

Bấm vào
 
Mình xem chủ đề này trên cả hai forum nhưng có lẽ vẫn còn một cách làm nữa; mình nghĩ nó cũng khá hay, sau khi chuyển đổi nó vẫn link được với dữ liệu lúc đầu (khi dữ liệu lúc đầu thay đổi nó cũng tự thay đổi theo).
Đó là dùng hàm Transpose có sẵn của Excel.
Chú ý: phải nhớ số hàng và số cột của vùng cần chuyển đổi (từ m x n -> n x m)

MÌnh xin nói rõ hơn về cách làm này.
Giả sử ta có vùng dữ liệu A1:J1, bầy giờ muốn chuyển vùng dữ liệu này thành cột thì làm như sau :
Bôi đen vùng A2 đến A11, gõ Transpose(A1:J1), nhấn Ctrl+Shift+Enter (dùng cho công thức mảng)
vùng A2:A11 sẽ cập nhật dữ liệu tương ứng với vùng A1:J1
ta không thể xóa 1 hay 1 vài phần tử trong vùng A2:A11, trừ khi xóa hết vùng dữ liệu từ A2:A11.
Nếu như bạn chọn vùng A2:A12 thì ô A12 sẽ bị #N/A (vì ô này nằm ngoài vùng dữ liệu chuyển đổi)
 
Lần chỉnh sửa cuối:
ta không thể xóa 1 hay 1 vài phần tử trong vùng A2:A11, trừ khi xóa hết vùng dữ liệu từ A2:A11.
Điều này đương nhiên vì hàm TRANPOSE là 1 công thức mãng... và mọi công thức mãng điều tính năng KO PHÂN CHIA này chứ ko riêng gì TRANSPOSE
Thêm 1 điều nữa... 1 hàm TRANSPOSE trọn vẹn chỉ chứa tối đa 256 phần tử (ko thể lớn hơn dc)... Vì vậy khi sử dụng nó phải hiểu thật rõ và hết sức cẩn thận về điều này
Mến
ANH TUẤN
 
MÌnh xin nói rõ hơn về cách làm này.
Giả sử ta có vùng dữ liệu A1:J1, bầy giờ muốn chuyển vùng dữ liệu này thành cột thì làm như sau :
Bôi đen vùng A2 đến A11, gõ Transpose(A1:J1), nhấn Ctrl+Shift+Enter (dùng cho công thức mảng)
vùng A2:A11 sẽ cập nhật dữ liệu tương ứng với vùng A1:J1
ta không thể xóa 1 hay 1 vài phần tử trong vùng A2:A11, trừ khi xóa hết vùng dữ liệu từ A2:A11.
Nếu như bạn chọn vùng A2:A12 thì ô A12 sẽ bị #N/A (vì ô này nằm ngoài vùng dữ liệu chuyển đổi)
Mình đang tham khảo công thức chuyển vùng dữ liệu của hoangdanh82vn, xin hỏi bạn kỹ hơn một chút nhé, mình chưa hiểu sẽ gõ công thức transpose(A1:J1) trong vùng đã bôi đen từ A2:A11 là gõ vào từng ô một hay làm thế nào để gõ được transpose như bạn giải thích?
Bạn có thể nói kỹ hơn phần này được không?
Mình cảm ơn bạn nhiều
 
Mình đang tham khảo công thức chuyển vùng dữ liệu của hoangdanh82vn, xin hỏi bạn kỹ hơn một chút nhé, mình chưa hiểu sẽ gõ công thức transpose(A1:J1) trong vùng đã bôi đen từ A2:A11 là gõ vào từng ô một hay làm thế nào để gõ được transpose như bạn giải thích?
Bạn có thể nói kỹ hơn phần này được không?
Mình cảm ơn bạn nhiều

bạn thức hiện theo bước sau

1) lựa chọn (bôi đen) A2:A11
2) gõ công thức =transpose(A1:J1)
3) bấm Ctrl+Shift+Enter (vì đây là công thức mảng)

thế là OK
 
Lần chỉnh sửa cuối:
Mình đang tham khảo công thức chuyển vùng dữ liệu của hoangdanh82vn, xin hỏi bạn kỹ hơn một chút nhé, mình chưa hiểu sẽ gõ công thức transpose(A1:J1) trong vùng đã bôi đen từ A2:A11 là gõ vào từng ô một hay làm thế nào để gõ được transpose như bạn giải thích?
Bạn có thể nói kỹ hơn phần này được không?
Mình cảm ơn bạn nhiều

Bạn bôi đen vùng muốn chuyển, sau đó gõ vào thì mặc nhiên nó nhập vào ô đầu tiên, chỉ cần ô này là đủ. Xong nhấn Ctrl+shift+enter
 
Mình đang tham khảo công thức chuyển vùng dữ liệu của hoangdanh82vn, xin hỏi bạn kỹ hơn một chút nhé, mình chưa hiểu sẽ gõ công thức transpose(A1:J1) trong vùng đã bôi đen từ A2:A11 là gõ vào từng ô một hay làm thế nào để gõ được transpose như bạn giải thích?
Bạn có thể nói kỹ hơn phần này được không?
Mình cảm ơn bạn nhiều
Bôi đen vùng cần tạo công thức rồi gõ công thức lên thanh Formula ấy
 
Bạn bôi đen vùng muốn chuyển, sau đó gõ vào thì mặc nhiên nó nhập vào ô đầu tiên, chỉ cần ô này là đủ. Xong nhấn Ctrl+shift+enter
Cảm ơn bạn. Tuy nhiên có 1 cái rất bất lợi là không thể xóa dữ liệu cũ vì như thế sẽ mất hết dữ liệu đã transpose, không thể copy sang chỗ khác đc. Không biết bạn nào có cách làm khác không?
 
Cảm ơn bạn. Tuy nhiên có 1 cái rất bất lợi là không thể xóa dữ liệu cũ vì như thế sẽ mất hết dữ liệu đã transpose, không thể copy sang chỗ khác đc. Không biết bạn nào có cách làm khác không?

THì bạn copy giá trị và xoay


1 - Chọn vùng dữ liệu ban đầu
2 - Thực hiện Copy
3 - Đặt trỏ ô tại vùng đích
4 - Edit\Paste Special... - Tích vào (v) Value và tích [v] Transpose --> OK => YES

thế là được
 
THì bạn copy giá trị và xoay

1 - Chọn vùng dữ liệu ban đầu
2 - Thực hiện Copy
3 - Đặt trỏ ô tại vùng đích
4 - Edit\Paste Special... - Tích vào (v) Value và tích [v] Transpose --> OK => YES

thế là được
Thật tuyệt . Cảm ơn bạn Tiger (bạn thích bia tiger __--__ hay .... tiếp thị tiger)
 
Lần chỉnh sửa cuối:
Xin trợ giúp

Các ban hay trợ giúp cho tôi. Tôi hay phải làm trong excel nhưng nhiều mẫu khác nhau làm thế nào để nhập 1 bảng mà có thể vào được nhiều bảng khác nhau khác mẫu cùng một lúc.
 
Có mem nào giúp mình làm cách nào để chuyển hàng thành cột cách nhanh nhât như file đính kèm không nhé.( trong file chỉ là ví dụ, còn thực tế nó là một dãy dài. Hjxxxxx
 

File đính kèm

  • 2010y08m05d_224105750.jpg
    2010y08m05d_224105750.jpg
    68.2 KB · Đọc: 457
Lần chỉnh sửa cuối:
=,.= Xin lỗi vì đã đào mộ nhưng cho mình hỏi, có cách nào chuyển dữ liệu từ nhiều hàng mà gộp lại trong 1 cột thôi ko ?

VD : như mình có bảng dữ liệu 3x3 A1:C3, h muốn chuyển sang thành 1 cột/1 hàng theo thứ tự dữ liệu từ trái sang, từ trên xuống vào trong cột D1:D9/ hàng D1:L1 chẳng hạn.

1 2 3
4 5 6
7 8 9

chuyển thành 1 2 3 4 5 6 7 8 9
 
=,.= Xin lỗi vì đã đào mộ nhưng cho mình hỏi, có cách nào chuyển dữ liệu từ nhiều hàng mà gộp lại trong 1 cột thôi ko ?

VD : như mình có bảng dữ liệu 3x3 A1:C3, h muốn chuyển sang thành 1 cột/1 hàng theo thứ tự dữ liệu từ trái sang, từ trên xuống vào trong cột D1:D9/ hàng D1:L1 chẳng hạn.

1 2 3
4 5 6
7 8 9

chuyển thành 1 2 3 4 5 6 7 8 9

Gửi bạn file này, bạn tham khảo nhé.
 

File đính kèm

Gửi bạn file này, bạn tham khảo nhé.

Cảm ơn bạn nhiều lắm!:) Bạn có thể giải thích giúp mình ý nghĩa chuỗi hàm này ko?

Mình có thử bỏ $ ở phầm tham số thì kết quả lại ra khác, lúc thì lấy cột, lúc thì lấy theo đg chéo... 8-}
Tại mình muốn cải tiến dãy số thu đc để vừa xếp hàng dọc, vừa xếp hàng ngang với điều kiện kèm theo.

Chả hạn mình VD sau :

05 , 33 , 36
12 , 44 , 66
25 , 01 , 73

H mình muốn xếp nó theo thứ tự từng hàng ngang một, với điều kiện kèm theo là : nếu số sau so với số trước cùng <37 hoặc cùng lớn >37 thì xếp theo hàng ngang, khi nào kết quả này sai, tức là số sau và số trước đó ko cùng >/< 37 thì xuống dòng.

Như vậy, kết quả thu đc vs đk so sánh vs 37 sẽ là :
05 , 33 , 36 , 12
44 , 66
25 , 01
73

và với điều kiện số chẵn, số lẻ thì kết quả thu đc sẽ là :
05 , 33
36 , 12 , 44 , 66
25 , 01 , 73

Mình biết vs Excel có thể rất khó làm hàm dài vs điều kiện phức tạp như vậy nhưng vẫn nuôi hy vọng :) mọng bạn có thể giúp mình. Thanks !
 
Xin lỗi chen ngang, giả sử như mình muốn điền dữ liệu từ bảng dọc ở bên phải vào bảng ngang ở bên trái theo mẫu đính kèm, thì làm sao? Cám ơn bạn nhiều
bảng dữ liệu: a 1
b 1
c 2
d 3
e 1
f 2


Bảng điền vào:(điền vào phía dưới)
1 2 3
a c d
b f
e

Xin lỗi vì mình ít vào forum, không biết cách up dữ liệu
 
Nhưng nếu mảng dữ liệu của em thế này thì làm thế nào? Em có file đính kèm mong được các bác trên diễn đàn giúp em với
 

File đính kèm

em cũng có thắc mắc giống bạn này, có ai cao tay chỉ giúp e với, em cám ơn nhiều. Em có file đính kèm, mong anh chị giúp em ah, cám ơn anh chị nhiều.
 
em cũng có thắc mắc giống bạn này, có ai cao tay chỉ giúp e với, em cám ơn nhiều. Em có file đính kèm, mong anh chị giúp em ah, cám ơn anh chị nhiều.
 
Lần chỉnh sửa cuối:
Mình nhớ là chọn vùng dự liệu rồi "Transpose" là xong mà
 
Mọi người giúp em file này với ạ.
1. Chuyển dữ liệu từ sheet Báo cáo -> giống như Sheet "Tổng hợp"
2. àm phiếu in tự động dữ liệu nằm ngang giống sheet "IN"

Em xin cảm ơn mọi người
 

File đính kèm

Mọi người giúp em file này với ạ.
1. Chuyển dữ liệu từ sheet Báo cáo -> giống như Sheet "Tổng hợp"
2. làm phiếu in tự động dữ liệu nằm ngang giống sheet "IN"

Em xin cảm ơn mọi người

Chỉ có thể giúp được bạn câu 1
Câu hai nhìn đơn giản nhưng tôi chịu bạn chịu khó gõ tay nhá.Kha kha
PHP:
Sub TEST()
   On Error Resume Next
Dim I As Integer, Crits As Range, Extrs As Range, Data As Range
          Sheet2.Range("3:6000").Clear
  For I = 1 To Sheet1.UsedRange.Columns.Count - 5
           Sheet1.Range("E2").Resize(Sheet1.UsedRange.Rows.Count, 1).Value = Sheet1.Range("E1").Offset(, I).Value
       With Sheet2
          .Range("N1") = Sheet1.Range("E1").Offset(, I)
          .Range("N2") = ">0"
          .Range("B6500").End(3).Offset(, 5) = Sheet1.Range("E1").Offset(, I).Value
           Set Data = Sheet1.Range("A1").CurrentRegion
           Set Crits = Sheet2.Range("N1").CurrentRegion
           Set Extrs = Sheet2.Range("B6500").End(3).Resize(1, 6)
           Data.AdvancedFilter 2, Crits, Extrs, False
          .Range("B2:G2").Copy .Range("B6500").End(3).Offset(1)
        End With
   Next
        With Sheet2
          .Range("N1:N2").Clear
          .Range("B2").CurrentRegion.Borders.LineStyle = 1
          .Range("B2").CurrentRegion.AutoFilter 1, "Ngày"
          .Range("B2").CurrentRegion.Offset(1).Delete (3)
          .Range("B2").CurrentRegion.AutoFilter
          .Range("G2") = "S" & ChrW(7889) & " L" & ChrW(432) & ChrW(7907) & "ng"
          .Range("B2").Select
       End With
End Sub
 

File đính kèm

Chỉ có thể giúp được bạn câu 1
Câu hai nhìn đơn giản nhưng tôi chịu bạn chịu khó gõ tay nhá.Kha kha
PHP:
Sub TEST()
   On Error Resume Next
Dim I As Integer, Crits As Range, Extrs As Range, Data As Range
          Sheet2.Range("3:6000").Clear
  For I = 1 To Sheet1.UsedRange.Columns.Count - 5
           Sheet1.Range("E2").Resize(Sheet1.UsedRange.Rows.Count, 1).Value = Sheet1.Range("E1").Offset(, I).Value
       With Sheet2
          .Range("N1") = Sheet1.Range("E1").Offset(, I)
          .Range("N2") = ">0"
          .Range("B6500").End(3).Offset(, 5) = Sheet1.Range("E1").Offset(, I).Value
           Set Data = Sheet1.Range("A1").CurrentRegion
           Set Crits = Sheet2.Range("N1").CurrentRegion
           Set Extrs = Sheet2.Range("B6500").End(3).Resize(1, 6)
           Data.AdvancedFilter 2, Crits, Extrs, False
          .Range("B2:G2").Copy .Range("B6500").End(3).Offset(1)
        End With
   Next
        With Sheet2
          .Range("N1:N2").Clear
          .Range("B2").CurrentRegion.Borders.LineStyle = 1
          .Range("B2").CurrentRegion.AutoFilter 1, "Ngày"
          .Range("B2").CurrentRegion.Offset(1).Delete (3)
          .Range("B2").CurrentRegion.AutoFilter
          .Range("G2") = "S" & ChrW(7889) & " L" & ChrW(432) & ChrW(7907) & "ng"
          .Range("B2").Select
       End With
End Sub

Lý do câu 2 chẳng thể làm vì không có điều kiện lọc.
Chẳng biết lọc theo ngày hay theo cái gì, điều kiện nằm ở đâu.
Gõ tay là "khà khà".............
 
Lý do câu 2 chẳng thể làm vì không có điều kiện lọc.
Chẳng biết lọc theo ngày hay theo cái gì, điều kiện nằm ở đâu.
Gõ tay là "khà khà".............

Thưa anh, phiếu xuất em sẽ lọc theo ngày từ sheet "Tổng hợp" ạ. Có cách nào giúp em được không ạ? Chứ đánh tay thì khà khà tới khuya mất ạ

Cảm ơn các anh đã giúp đỡ.
 
Thưa anh, phiếu xuất em sẽ lọc theo ngày từ sheet "Tổng hợp" ạ. Có cách nào giúp em được không ạ? Chứ đánh tay thì khà khà tới khuya mất ạ

Cảm ơn các anh đã giúp đỡ.

Lọc theo ngày thì phải có 1 "chỗ" nào đó để xác định được là theo ngày nào?
Trong sheet của bạn có chỗ nào để biết là bạn muốn in ngày nào?
Mấy cột #35, #36.... bạn ghi trong mẫu không đầy đủ thì sao lọc được.
Tôi "chế" lại như trong file, lấy dữ liệu từ Báo Cáo. (Vì Tổng hợp cũng lấy từ Báo cáo). Nếu bạn xài không được thì "chịu" luôn.
Nhập ngày vào Ô S1 code sẽ chạy.
 

File đính kèm

Lần chỉnh sửa cuối:
Lọc theo ngày thì phải có 1 "chỗ" nào đó để xác định được là theo ngày nào?
Trong sheet của bạn có chỗ nào để biết là bạn muốn in ngày nào?
Mấy cột #35, #36.... bạn ghi trong mẫu không đầy đủ thì sao lọc được.
Tôi "chế" lại như trong file, lấy dữ liệu từ Báo Cáo. (Vì Tổng hợp cũng lấy từ Báo cáo). Nếu bạn xài không được thì "chịu" luôn.
Nhập ngày vào Ô S1 code sẽ chạy.

Em chưa học công thức anh đã làm giúp em, nên khi phát sinh thêm vấn đề em ko biết cách chỉnh sửa. Em làm lại file, mong anh Ba Tê giúp em thêm lần nữa.
1, Điều kiện lọc phiếu xuất là cột: khách hàng, Cont, và ngày tháng
2, Nếu số dòng của dữ liệu lọc được lớn hơn số dòng của phiếu xuất thì em phải sửa công thức như thế nào để hợp lý ạ? (cái này em gặp khi lọc phiếu ngày 24, có tới 47 dòng, mà phiếu có 30 dòng nên em chụp lại hình ảnh báo lỗi ở "sheet 2")
3, Trong trường hợp phát sinh thêm cột size hàng hóa thì sẽ sửa công thức ở chỗ nào ạ.?

Cảm ơn anh,
P/s: Bể dốt mênh mông, em đang quay đầu đấy ạ
 

File đính kèm

Lần chỉnh sửa cuối:
Anh Ba Tê, File này ạ, File trên em chưa có cột Cont
 

File đính kèm

Anh Ba Tê, File này ạ, File trên em chưa có cột Cont

Có cột Cont cũng có mấy dòng. lọc làm sao đây? Ngày 24 cột Cont trống rỗng.
Bạn cũng tôn trọng "cái file" của bạn một chút chứ.
Khách hàng là lấy cột nào, nếu khách hàng là cột Người nhận thì cũng phải nói rõ để người khác hiểu, khỏi phải mò.
 
Lần chỉnh sửa cuối:
Có cột Cont cũng có mấy dòng. lọc làm sao đây? Ngày 24 cột Cont trống rỗng.
Bạn cũng tôn trọng "cái file" của bạn một chút chứ.
Khách hàng là lấy cột nào, nếu khách hàng là cột Người nhận thì cũng phải nói rõ để người khác hiểu, khỏi phải mò.

Nhờ anh giúp vì File quá dung lượng e ko up lên được nữa ạ
 
Nhờ anh giúp vì File quá dung lượng e ko up lên được nữa ạ

- Hết dung lượng thì trở lên mấy bài trước, vào Sửa bài viết, Đổi sang khung lớn, Tải file từ máy, Remove tập tin đã đính kèm mà bây giờ đã không còn phù hợp.
- Đã thêm cho bạn 5 cột nếu có thêm size (từ côt P-T), nếu có thêm thì Unhide nó ra.
- Tạo 3 ô điều kiện chọn và 1 nút bấm.
 

File đính kèm

- Hết dung lượng thì trở lên mấy bài trước, vào Sửa bài viết, Đổi sang khung lớn, Tải file từ máy, Remove tập tin đã đính kèm mà bây giờ đã không còn phù hợp.
- Đã thêm cho bạn 5 cột nếu có thêm size (từ côt P-T), nếu có thêm thì Unhide nó ra.
- Tạo 3 ô điều kiện chọn và 1 nút bấm.
Cái vụ này thì anh bate nên làm 2 xị rồi "long vễn" đi thôi . chứ sẽ còn kéo thêm 2 trang nữa đó
 
Chào cả nhà!
Nhờ mọi người chỉ giúp em cách sắp xếp dữ liệu từ hàng ngang thành dọc như sau:
a 1
b 2
c 3
d 4
e 5
f 6
...

thành:
a b c
1 2 3
d e f
4 5 6
...
Em cám ơn cả nhà!
 
Chào cả nhà!
Nhờ mọi người chỉ giúp em cách sắp xếp dữ liệu từ hàng ngang thành dọc như sau:
a 1
b 2
c 3
d 4
e 5
f 6
...

thành:
a b c
1 2 3
d e f
4 5 6
...
Em cám ơn cả nhà!
với dữ liệu nầy, không có gì đơn giản hơn là bạn nhập từng ô. nếu muốn rối hơn thì bạn gởi file gần giống thực tế lên
 
=,.= Xin lỗi vì đã đào mộ nhưng cho mình hỏi, có cách nào chuyển dữ liệu từ 1 hàng mà hành nhiều hàng được không ?

VD :

1 2 3 4 5 6 7 8 9

chuyển thành
1 2 3
4 5 6
7 8 9
Bài đã được tự động gộp:

Gửi bạn file này, bạn tham khảo nhé.
anh có lệnh nào làm cái này được kg anh

vd :1 2 3 4 5 6 7 8 9

chuyển thành
1 2 3
4 5 6
7 8 9
 
Lần chỉnh sửa cuối:
B3 =INDEX($A$1:$I$1,1,(ROW(A1)-1) * 3 + MOD(COLUMN(A1)-1,3)+1)

1730248778979.png
 
=,.= Xin lỗi vì đã đào mộ nhưng cho mình hỏi, có cách nào chuyển dữ liệu từ 1 hàng mà hành nhiều hàng được không ?

VD :

1 2 3 4 5 6 7 8 9

chuyển thành
1 2 3
4 5 6
7 8 9
Bài đã được tự động gộp:


anh có lệnh nào làm cái này được kg anh

vd :1 2 3 4 5 6 7 8 9

chuyển thành
1 2 3
4 5 6
7 8 9
Bạn thử dùng hàm này trên Office365
Mã:
=WRAPROWS(A1:I1, 3)
 
Lần chỉnh sửa cuối:

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

Back
Top Bottom