Làm sao lập hàm gom dữ liệu trong nhiều cột còn 1 cột?

Liên hệ QC

ngocnam

Thành viên mới
Tham gia
22/10/06
Bài viết
12
Được thích
2
Ví dụ em có 1 bảng gồm 3 cột họ tên HS (vd như cột họ tên HS giỏi, Khá, Tb), làm sao chỉ dùng hàm có thể gom lại còn 1 cột mà hiển thị hết họ tên HS loại giỏi rồi mới tới họ tên HS loại khá rồi đến loại Tb v.v..?
Em xin cảm ơn
 
Bạn làm theo cách sau nha!
| A| B| C| D| E| F | Công thức
1 | Họ| Tên| Học lực| Hạnh kiểm|...|...
2 | Nguyễn Thị| Thắm| Tốt| Khá|...| Nguyễn Thị Thắm Tốt-Khá| =A2&" "&B2&" "&C2&"-"&D2
3 | Trần Minh| Thông| Khá| Khá|...| Trần Minh Thông Khá-Khá| =A3&" "&B3"&" "&C3&"-"&D3
 
Bạn hiểu nhầm ý mình, mình đưa 1 file minh họa để bạn hiểu ý mình nha
 

File đính kèm

  • gom cot.xls
    13.5 KB · Đọc: 42
Ví dụ em có 1 bảng gồm 3 cột họ tên HS (vd như cột họ tên HS giỏi, Khá, Tb), làm sao chỉ dùng hàm có thể gom lại còn 1 cột mà hiển thị hết họ tên HS loại giỏi rồi mới tới họ tên HS loại khá rồi đến loại Tb v.v..?
Em xin cảm ơn
Nếu chỉ có 3 cột sao không copy, paste cho lẹ?
Bạn nói chính xác dử liệu của bạn như thế nào, sẽ có người giúp bạn hoàn tất việc này (có lẽ bằng VBA)
 
Mình đã nói là ví dụ thôi mà, có thể hàng mấy trăm HS và nhiều cột, thực ra nếu không được thì chỉ còn cách copy, paste
 
Thử code này xem:
PHP:
Option Explicit
Sub Gop()
  Dim i As Long, Er As Long, Sd As Long
  Dim Rng As Range
  Application.ScreenUpdating = False
  [F3:G10000].ClearContents
  For i = 1 To [A2].End(xlToRight).Column
    Er = [F65536].End(xlUp).Row + 1
    Set Rng = Range(Cells(3, i), Cells(10000, i)).SpecialCells(2, 23)
    Sd = Rng.Rows.Count
    With Cells(Er, 6).Resize(Sd, 1)
      .Value = Rng.Value
      .Offset(, 1).Value = Cells(2, i)
    End With
  Next
  Application.ScreenUpdating = True
End Sub
Xem file đính kèm!
Nếu dử liệu của bạn có khác hơn thì tốt nhất nên đưa toàn bộ file lên để làm luôn 1 thể (vụ này không khó khăn gì)
 

File đính kèm

  • GopDulieu_01.xls
    34 KB · Đọc: 39
Lần chỉnh sửa cuối:
Mình đã nói là ví dụ thôi mà, có thể hàng mấy trăm HS và nhiều cột, thực ra nếu không được thì chỉ còn cách copy, paste

Bạn xem file đính kèm nhé. 40.000 dòng copy chưa tới 2 giây, huống hồ gì vài trăm.
PHP:
Sub MyProcess()
Dim RWGioi, RWKha, RWTB As Long
RWgioi = Sheets("Data").[A65000].End(xlUp).Row
RWKha = Sheets("Data").[B65000].End(xlUp).Row
RWTB = Sheets("Data").[C65000].End(xlUp).Row
'---------------------------------------------------
With Sheets("Data")
.Columns("F:G").ClearContents
.[F1] = "Ho va Ten"
.[G1] = "Xep Loai"
.Range("A2:A" & RWgioi).Copy .[F2]
.Range("B2:B" & RWKha).Copy .Cells(RWgioi + 1, 6)
.Range("C2:C" & RWTB).Copy .Cells(RWgioi + RWKha + 0, 6)
.Range("G2:G" & RWgioi) = "Gioi"
.Range("G" & RWgioi + 1 & ":G" & RWgioi + RWKha) = "Kha"
.Range("G" & (RWgioi + RWKha) & ":G" & (RWgioi + RWKha + RWTB - 2)) = "TB"
End With
End Sub
 

File đính kèm

  • SapXepDuLieu_cadafi.zip
    193 KB · Đọc: 59
Lần chỉnh sửa cuối:
Gom cột

gởi bạn phần này thử xem nhe ! Bạn có thể sửa chữa lại!
 

File đính kèm

  • gom cot.xls
    23 KB · Đọc: 23
Ví dụ em có 1 bảng gồm 3 cột họ tên HS (vd như cột họ tên HS giỏi, Khá, Tb), làm sao chỉ dùng hàm có thể gom lại còn 1 cột mà hiển thị hết họ tên HS loại giỏi rồi mới tới họ tên HS loại khá rồi đến loại Tb v.v..?
Em xin cảm ơn
Bạn xem đã đúng chưa
 

File đính kèm

  • GOM.xls
    21 KB · Đọc: 23
Thêm 1 tham khảo, có thể tăng tốc phần nào chăng(!)

Dữ liệu theo của NDU96081631

PHP:
Option Explicit
Sub TgHop()
 Dim Ff As Byte, lRow As Long
 Application.ScreenUpdating = False:          [G1] = "XepLoai"
 Range([f2], [g1000]).Clear:                 [f1] = "HoTen"
 For Ff = 1 To 3
   lRow = Cells(65432, Ff).End(xlUp).Row - 2
   [f65432].End(xlUp).Offset(1).Resize(lRow) = Range(Cells(3, Ff), Cells(65432, Ff)).Value
   [G65432].End(xlUp).Offset(1).Resize(lRow) = Cells(2, Ff).Value
 Next Ff
End Sub
 
Bạn xem thử nhé

dùng code là nhanh nhất, but ban thử cách dùng hàm của mình nhé, mình count mỗi loại hs trước, sau đó lặp cột STT -->cột xếp loại --> cột tên. Công thức hơi rối một chút, hehe, bạn tham khảo nhé.
 

File đính kèm

  • Gop cot bang ham.xls
    17 KB · Đọc: 14
dùng code là nhanh nhất, but ban thử cách dùng hàm của mình nhé, mình count mỗi loại hs trước, sau đó lặp cột STT -->cột xếp loại --> cột tên. Công thức hơi rối một chút, hehe, bạn tham khảo nhé.

hoặc đơn giản dùng Vlookup là được
kết hợp số thứ tự
.
 
Web KT
Back
Top Bottom