Xin cho em hỏi cách xắp xếp dữ liệu rời rạc từ ! Bảng exel thành 1 cột (1 người xem)

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

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

ohho84

Thành viên chính thức
Tham gia
11/8/11
Bài viết
94
Được thích
2
:( Tình hình là em có 1 bảng dữ liệu nhưng trong đó có những ô trống, xin mọi người giúp em hàm lọc những dữ liệu ra thành 1 cột với ạ. Em có đọc được 1 hàm của anh NDU nhưng quả thực em ko hiểu gì cả. Xin mọi người kiên nhẫn giúp em . À dữ liệu của em có cả giá trị bằng 0 và em vẫn cần lấy sang cột, xin đừng giết nhầm em nó ạ**~**

Em có đính kèm file đấy ạ. Mong mọi người giải thích giùm em một chút về ý nghĩa của các ký tự trong hàm với nhé. --=0 Em xin đa tạ
 

File đính kèm

p/s: Dữ liệu khi chuyển sang cột liền nhau nhé mọi người tức là bỏ qua những ô trống đấy ạ
 
Tks bác ^^ Cách này xem ra nhọc nhỉ vì dat của em gồm 350 dòng x 7 cột :(. Có ai có cao kiến gì ko giúp em với
Loại bài này chỉ có cách dùng lập trình VBA mới là nhanh gọn nhất thôi
Nếu đồng ý thì chúng ta tiếp tục
 
Đúng là bài này dùng VBA thì rất nhanh gọn và lẹ, Chuyển vùng chứa dữ liệu về mảng 2 chiều, sau đó đưa về mảng 1 chiều và sắp xếp lại dữ liệu và loại bỏ ô trống rồi in ra theo dạng cột
 
Loại bài này chỉ có cách dùng lập trình VBA mới là nhanh gọn nhất thôi
Nếu đồng ý thì chúng ta tiếp tục

Hi em săn anh cả ngày hum nay trên yahoo mà ko thấy ^^. Em thì em chưa hiểu VBA là gì nhưng nếu là VBA thì có thể chạy trên Excel được ko ạ. Em đã đọc 1 file của anh NDU lúc anh làm ( có dữ liệu là TEST01, TEST02,TEST03,... đấy ạ) nhưng em ko thể nào áp dụng được vì em ko hiểu hết được các định dạng trong đó ví dụ như DS, DK... *_* xin anh NDU chỉ tận tình lại cho em với ạ. Chứ chạy êm trên Excel thì VBA hay MBA em cũng bao hết ạ ^^ Mong anh và mọi người chỉ thêm cho em với ạ

Đúng là bài này dùng VBA thì rất nhanh gọn và lẹ, Chuyển vùng chứa dữ liệu về mảng 2 chiều, sau đó đưa về mảng 1 chiều và sắp xếp lại dữ liệu và loại bỏ ô trống rồi in ra theo dạng cột
Xin hỏi anh theo đúng như nội dung với bác NDU ạ :D nếu áp dụng được trên Eel thì em ôm hết ạ. Mong anh chỉ bảo thêm :(

Em đã đọc và đã vật nhau với từng công thức và đến giờ em vẫn phải vật tiếp :(

Loại bài này chỉ có cách dùng lập trình VBA mới là nhanh gọn nhất thôi
Nếu đồng ý thì chúng ta tiếp tục

Đây rồi, file này em đính kèm chính là của bác NDU làm là cái em cần nhưng em ko thể áp dụng được vì em ko hiểu được hết các định dạng trong đó. Xin mọi người đặc biệt là bác NDU chỉ giúp em rõ hơn về các ký tự trong đó ạ, đặc biệt em ko hiểu DS DK là gì ạ :( **~** xin mọi người chỉ giùm em. Em toàn bị báo lỗi Number thui -+*/
 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
Đây rồi, file này em đính kèm chính là của bác NDU làm là cái em cần nhưng em ko thể áp dụng được vì em ko hiểu được hết các định dạng trong đó. Xin mọi người đặc biệt là bác NDU chỉ giúp em rõ hơn về các ký tự trong đó ạ, đặc biệt em ko hiểu DS DK là gì ạ :( **~** xin mọi người chỉ giùm em. Em toàn bị báo lỗi Number thui -+*/
Bài này tôi làm lâu rồi (cũng chẳng nhớ)
Giờ sửa lại theo dữ liệu trên file của bạn nhé
1> Đặt name cho vùng dữ liệu
PHP:
DS =Sheet1!$C$7:$G$17
2> Đặt name xác định vị trí
PHP:
VT =IF(DS="","",ROW(INDIRECT("1:"&ROWS(DS)))*COLUMNS(DS)+TRANSPOSE(ROW(INDIRECT("1:"&COLUMNS(DS)))))
3> Công thức trích lọc
PHP:
=IF(ROWS($1:1)>COUNT(VT),"",INDEX(DS,INT((SMALL(VT,ROWS($1:1))-1)/COLUMNS(DS)),MOD(SMALL(VT,ROWS($1:1))-1,COLUMNS(DS))+1))
Xong!
Việc của bạn là xác định cho đúng dữ liệu của bạn nằm ở đâu (trong name đầu tiên)... Còn name thứ 2 và công thức thì cứ việc copy paste vào (khỏi chỉnh sửa gì cả)
Tuy nhiên, vẫn khuyên bạn nên dùng phương pháp lập trình VBA, vì nếu dùng công thức cho dữ liệu lớn thì file của bạn sẽ rất nặng
 

File đính kèm

Lần chỉnh sửa cuối:
Bài này tôi làm lâu rồi (cũng chẳng nhớ)
Giờ sửa lại theo dữ liệu trên file của bạn nhé
1> Đặt name cho vùng dữ liệu
PHP:
DS =Sheet1!$C$7:$G$17
2> Đặt name xác định vị trí
PHP:
VT =IF(DS="","",ROW(INDIRECT("1:"&ROWS(DS)))*COLUMNS(DS)+TRANSPOSE(ROW(INDIRECT("1:"&COLUMNS(DS)))))
3> Công thức trích lọc
PHP:
=IF(ROWS($1:1)>COUNT(VT),"",INDEX(DS,INT((SMALL(VT,ROWS($1:1))-1)/COLUMNS(DS)),MOD(SMALL(VT,ROWS($1:1))-1,COLUMNS(DS))+1))
Xong!
Việc của bạn là xác định cho đúng dữ liệu của bạn nằm ở đâu (trong name đầu tiên)... Còn name thứ 2 và công thức thì cứ việc copy paste vào (khỏi chỉnh sửa gì cả)
Tuy nhiên, vẫn khuyên bạn nên dùng phương pháp lập trình VBA, vì nếu dùng công thức cho dữ liệu lớn thì file của bạn sẽ rất nặng
^^ Thanks anh ạ, nhưng em xin hỏi 1 câu tối dạ là anh cất 2 công thức xác định DS với VT ở chỗ nào đấy ạ vì em tìm mãi ko ra :(. Xin hay chỉ rõ hơn giúp em như kiểu chỉ tận tay day tận mặt ấy ạ.-+*/. Vì rõ ràng em ko thấy công thức anh xác định name và vị trí ở đâu cả +-+-+-+
File của em dữ liệu nặng anh ạ khoảng 2000 dòng và 20 cột thì anh chỉ giùm em VBA với ạ ( thú thực là em cũng chưa bít VBA nó là cái gì!$@!! nên em quan niệm là bất cứ cái gì Excel mà nhai được thì em vớt hết ạ. Anh chỉ cho em cái VBA với anh nhé.
 
^^ Thanks anh ạ, nhưng em xin hỏi 1 câu tối dạ là anh cất 2 công thức xác định DS với VT ở chỗ nào đấy ạ vì em tìm mãi ko ra :(. Xin hay chỉ rõ hơn giúp em như kiểu chỉ tận tay day tận mặt ấy ạ.-+*/. Vì rõ ràng em ko thấy công thức anh xác định name và vị trí ở đâu cả +-+-+-+
.
Đã nói là NAME thì đương nhiên nó nằm trong Define Name rồi ---> Bấm Ctrl + F3 sẽ thấy
File của em dữ liệu nặng anh ạ khoảng 2000 dòng và 20 cột thì anh chỉ giùm em VBA với ạ ( thú thực là em cũng chưa bít VBA nó là cái gì!$@!! nên em quan niệm là bất cứ cái gì Excel mà nhai được thì em vớt hết ạ. Anh chỉ cho em cái VBA với anh nhé.
Nếu dùng VBA thì đã có đường link cho ở trên rồi còn gì (bài số 7)
 
Đã nói là NAME thì đương nhiên nó nằm trong Define Name rồi ---> Bấm Ctrl + F3 sẽ thấy

Nếu dùng VBA thì đã có đường link cho ở trên rồi còn gì (bài số 7)

Thanks anh, em đã làm được rồi anh ạ, nhưng lại phát sinh một vấn đề là dữ liệu rời rạc của em gồm tất cả 50 bảng excel ( kỳ kục ở chỗ mỗi bảng của em lại gồm có 1 cột thôi ạ -+*/ ) nếu làm theo cách này vị chi là em sẽ phải deine 50 cái name từ DS1,... đến DS 50 cộng với 50 cái TS TS1,... đến TS50 **~** chưa kể đến việc em phải chỉnh sửa name trong 3 công thức vì không thể copy/paste được. Nghĩ đến đây là em muốn... +-+-+-++-+-+-++-+-+-+ rùi anh ạ.
Dùng VBA giải quyết êm hơn đúng ko ạ nhưng em đọc bài viết anh chỉ em ko hiểu gì. Em đính kèm 1 file gồm 1 phần dữ liệu y chang dữ liệu em đang có mong anh NDU có thể thao tác trực tiếp trên đó và giải thích giúp em được ko ạ. --=0 Thanks anh nhiều nhiều. Hix
 

File đính kèm

Thanks anh, em đã làm được rồi anh ạ, nhưng lại phát sinh một vấn đề là dữ liệu rời rạc của em gồm tất cả 50 bảng excel ( kỳ kục ở chỗ mỗi bảng của em lại gồm có 1 cột thôi ạ -+*/ ) nếu làm theo cách này vị chi là em sẽ phải deine 50 cái name từ DS1,... đến DS 50 cộng với 50 cái TS TS1,... đến TS50 **~** chưa kể đến việc em phải chỉnh sửa name trong 3 công thức vì không thể copy/paste được. Nghĩ đến đây là em muốn... +-+-+-++-+-+-++-+-+-+ rùi anh ạ.
Dùng VBA giải quyết êm hơn đúng ko ạ nhưng em đọc bài viết anh chỉ em ko hiểu gì. Em đính kèm 1 file gồm 1 phần dữ liệu y chang dữ liệu em đang có mong anh NDU có thể thao tác trực tiếp trên đó và giải thích giúp em được ko ạ. --=0 Thanks anh nhiều nhiều. Hix
Theo dữ liệu trong file của bạn thì đâu phải là chuyển bảng thành cột đâu. Nó là trích lọc dữ liệu, bỏ qua cell rổng
Bài này có đầy trên mạng rồi ---> Tìm đi
 
Dù sao thì bài làm bằng công thức cũng dở mà lập trình cũng dở!
Chỉ bạn cách đơn giản nhất (dùng công cụ Find and Replace) ---> Xem video clip dưới đây nhé:

[video=youtube;bsIH45KeezM]http://www.youtube.com/watch?v=bsIH45KeezM&feature=youtu.be[/video]
 
^^ Thanks anh ạ, nhưng em xin hỏi 1 câu tối dạ là anh cất 2 công thức xác định DS với VT ở chỗ nào đấy ạ vì em tìm mãi ko ra :(. Xin hay chỉ rõ hơn giúp em như kiểu chỉ tận tay day tận mặt ấy ạ.-+*/. Vì rõ ràng em ko thấy công thức anh xác định name và vị trí ở đâu cả +-+-+-+
File của em dữ liệu nặng anh ạ khoảng 2000 dòng và 20 cột thì anh chỉ giùm em VBA với ạ ( thú thực là em cũng chưa bít VBA nó là cái gì!$@!! nên em quan niệm là bất cứ cái gì Excel mà nhai được thì em vớt hết ạ. Anh chỉ cho em cái VBA với anh nhé.
Name được cất trong insert/name, hoặc bạn có thể dùng ctrl-F3 để mở nhanh.
Còn VBA thì dùng Alt-F11 để xem
 
Hi em làm được rồi ^^. Thanks mọi người nhiều nhé--=0--=0--=0
 
Web KT

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

Back
Top Bottom