Xin giúp đỡ nối giá trị liên tiếp của cột 1,2,3...n thành 1 cột duy nhất (1 người xem)

Liên hệ QC

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

Cô Bé Dễ Thương

Thành viên thường trực
Tham gia
30/9/16
Bài viết
223
Được thích
48
Giới tính
Nữ
Mình cần giúp đỡ giải pháp dùng công thức (không dùng VBA) để nối liên tiếp danh sách trong nhiều cột thành 1 cột duy nhất.
Chi tiết ở file đính kèm,xin giúp đỡ.Cảm ơn nhiều!
 

File đính kèm

Lần chỉnh sửa cuối:
Mình cần giúp đỡ giải pháp dùng công thức (không dùng VBA) để nối liên tiếp danh sách trong nhiều cột thành 1 cột duy nhất.
Chi tiết ở file đính kèm,xin giúp đỡ.Cảm ơn nhiều!
Gửi bạn cách làm cũng khá nhức đầu:
 

File đính kèm

Mình cần giúp đỡ giải pháp dùng công thức (không dùng VBA) để nối liên tiếp danh sách trong nhiều cột thành 1 cột duy nhất.
Chi tiết ở file đính kèm,xin giúp đỡ.Cảm ơn nhiều!
Thử:
PHP:
H4=INDEX(N(OFFSET($B$4,MOD((ROW($1:$28)-1),7),INT((ROW($1:$28)-1)/7))),MATCH(0,INDEX(COUNTIF($I$3:I3,N(OFFSET($B$4,MOD((ROW($1:$28)-1),7),INT((ROW($1:$28)-1)/7))))+COUNTIF((OFFSET($B$4,MOD((ROW($1:$28)-1),7),INT((ROW($1:$28)-1)/7))),""),),0))
Enter fill xuống

Chúc bạn ngày vui
 

File đính kèm

Thử:
PHP:
H4=INDEX(N(OFFSET($B$4,MOD((ROW($1:$28)-1),7),INT((ROW($1:$28)-1)/7))),MATCH(0,INDEX(COUNTIF($I$3:I3,N(OFFSET($B$4,MOD((ROW($1:$28)-1),7),INT((ROW($1:$28)-1)/7))))+COUNTIF((OFFSET($B$4,MOD((ROW($1:$28)-1),7),INT((ROW($1:$28)-1)/7))),""),),0))
Enter fill xuống

Chúc bạn ngày vui
hạn chế count anh ơi, haizz hàm này quá nặng luôn
đang tính kêu anh xem hề hề
 
hạn chế count anh ơi, haizz hàm này quá nặng luôn
Mỗi công thức có hạn chế của nó, của em thì phải nhấn CSE, của anh thì không, dùng COUNTIF() lúc nào cũng nhẹ hơn SMALL(), vì SMALL() bê nguyên cả mảng ra chơi, trong khi COUNTIF() là Vùng.
 
Mỗi công thức có hạn chế của nó, của em thì phải nhấn CSE, của anh thì không, dùng COUNTIF() lúc nào cũng nhẹ hơn SMALL(), vì SMALL() bê nguyên cả mảng ra chơi, trong khi COUNTIF() là Vùng.
lại thêm kiến thức khà khà, có một đề tài em đang suy nghĩ là đếm không trùng theo 1 điều kiện nhất định, nhưng khó là dùng countifs 2 điều kiện trở lên với so sánh thêm với mảng khiến nó nặng quá, anh có giải pháp khác không.
ở đây thì nó sát nhau dùng offset được giả sử vị trí tùy ý thì anh xử lý thế nào ạ
 

File đính kèm

lại thêm kiến thức khà khà, có một đề tài em đang suy nghĩ là đếm không trùng theo 1 điều kiện nhất định, nhưng khó là dùng countifs 2 điều kiện trở lên với so sánh thêm với mảng khiến nó nặng quá, anh có giải pháp khác không.
ở đây thì nó sát nhau dùng offset được giả sử vị trí tùy ý thì anh xử lý thế nào ạ
Em muốn yêu cầu gì cho file này?
 
một cách giải tìm không trùng theo ngày điều kiện là số máy.
yêu cầu tìm trên 1 vùng rộng có thể không sát nhau.
nhanh là ưu tiên hàng đầu khà khà
Thứ nhất: dữ liệu >1000 dòng mà dùng công thức mảng là dại, vì sẽ làm chậm tốc đô máy.
Thứ hai: Cái này dùng Pivot Table, rồi kết hợp dùng công thức sau thì nhẹ nhàng hơn.
=SUMPRODUCT((Data!$A$2:$A$2022=A2)/COUNTIFS(Data!$A$2:$A$2022,Data!$A$2:$A$2022,Data!$D$2:$D$2022,Data!$D$2:$D$2022))
Không cần dùng name.

Hoặc dùng Pivot Table, Máy và Ngày. Sau đó dùng bảng này Count lại Ngày.

Ngoài ra, để nhẹ hơn nữa chỉ có dùng cột phụ, và cuối cùng là chọn VBA.
 
Lần chỉnh sửa cuối:
Thứ nhất: dữ liệu >1000 dòng mà dùng công thức mảng là dại, vì sẽ làm chậm tốc đô máy.
Thứ hai: Cái này dùng Pivot Table, rồi kết hợp dùng công thức sau thì nhẹ nhàng hơn.
=SUMPRODUCT((Data!$A$2:$A$2022=A2)/COUNTIFS(Data!$A$2:$A$2022,Data!$A$2:$A$2022,Data!$D$2:$D$2022,Data!$D$2:$D$2022))
Không cần dùng name.

Hoặc dùng Pivot Table, Máy và Ngày. Sau đó dùng bảng này Count lại Ngày.

Ngoài ra, để nhẹ hơn nữa chỉ có dùng cột phụ, và cuối cùng là chọn VBA.
sao cột số máy anh lại dùng count cả mảng với mảng thế ạ, chỉ cần count với 1 ô số máy thôi, dĩ nhiên dữ liệu lớn thì cứ pivote cho nó lành. Trên 1 ngàn dòng count muốn đứng máy
 
hạn chế count anh ơi, haizz hàm này quá nặng luôn
đang tính kêu anh xem hề hề
Gửi bạn cách làm cũng khá nhức đầu:
Cảm ơn mọi người đã giúp đỡ.
Hiện vẫn còn 1 hạn chế nữa đó là dữ liệu nó là text thì công thức báo lỗi.
Với hàm có thể sửa nó nhảy đúng cả với dữ liệu là text hoặc số có chiều lớn nhỏ bất kỳ.
Xin giúp đỡ!
 
Cảm ơn mọi người đã giúp đỡ.
Hiện vẫn còn 1 hạn chế nữa đó là dữ liệu nó là text thì công thức báo lỗi.
Với hàm có thể sửa nó nhảy đúng cả với dữ liệu là text hoặc số có chiều lớn nhỏ bất kỳ.
Xin giúp đỡ!
Bạn xem file này thử:
 

File đính kèm

Lần chỉnh sửa cuối:
Cảm ơn mọi người đã giúp đỡ.
Hiện vẫn còn 1 hạn chế nữa đó là dữ liệu nó là text thì công thức báo lỗi.
Với hàm có thể sửa nó nhảy đúng cả với dữ liệu là text hoặc số có chiều lớn nhỏ bất kỳ.
Xin giúp đỡ!
 
Lần chỉnh sửa cuối:
Tuyệt vời mình nghĩ đã full op với hàm của bạn rồi.Mình đã thử với ô là giá trị trống (rỗng nhưng vẫn có công thức) và ô không có gì trong đó nó đã nhảy đúng.Cảm ơn bạn nhiều.Tối ưu rồi bạn ạ!
 
Thực ra thế là chưa dài đâu, lắm cao thủ viết công thức dài mấy nghìn ký tự, mà toàn dùng hàm if mới tài.

Được cái là nó dùng name, thay đổi vùng nguồn thoải mái mà công thức không phải chỉnh gì mấy.
ôi cao thủ xài if mấy ngàn dòng nghe mà muốn quỳ, trong 3 tháng vào hội thấy toàn cao thủ hỏi bài không, mức độ phức tạp ghê thật :D
 
Góp vui cách khác, hơi dài
Góp vui với chị, không dùng transpose:
Mã:
=INDEX($B$4:$E$28,MOD(SMALL(IF($B$4:$E$28<>"",--($B$3:$E$3&"."&TEXT(ROW($A$1:$A$25),"000"))),ROW(A1)),1)*1000,SMALL(IF($B$4:$E$28<>"",--($B$3:$E$3&"."&TEXT(ROW($A$1:$A$25),"000"))),ROW(A1)))
Ctrl+Shift+Enter!!!
 
Góp vui với chị, không dùng transpose:
Mã:
=INDEX($B$4:$E$28,MOD(SMALL(IF($B$4:$E$28<>"",--($B$3:$E$3&"."&TEXT(ROW($A$1:$A$25),"000"))),ROW(A1)),1)*1000,SMALL(IF($B$4:$E$28<>"",--($B$3:$E$3&"."&TEXT(ROW($A$1:$A$25),"000"))),ROW(A1)))
Ctrl+Shift+Enter!!!
Bỏ hàm text, với cả nên tính đến loại bỏ những ô không liên quan, chỉ viết công thức thao tác trực tiếp trên vùng dữ liệu thì hay hơn.
Mã:
=INDEX($B$4:$E$28,MOD(SMALL(IF($B$4:$E$28<>"",($B$3:$E$3+ROW($A$1:$A$25)/1000)),ROW(A1)),1)*1000,SMALL(IF($B$4:$E$28<>"",($B$3:$E$3+ROW($A$1:$A$25)/1000)),ROW(A1)))

Về công nghệ thì cũng la lá nhau là dùng một con số để định vị địa chỉ của mỗi ô.
 
Bỏ hàm text, với cả nên tính đến loại bỏ những ô không liên quan, chỉ viết công thức thao tác trực tiếp trên vùng dữ liệu thì hay hơn.
Mã:
=INDEX($B$4:$E$28,MOD(SMALL(IF($B$4:$E$28<>"",($B$3:$E$3+ROW($A$1:$A$25)/1000)),ROW(A1)),1)*1000,SMALL(IF($B$4:$E$28<>"",($B$3:$E$3+ROW($A$1:$A$25)/1000)),ROW(A1)))

Về công nghệ thì cũng la lá nhau là dùng một con số để định vị địa chỉ của mỗi ô.
các cao thủ thội tụ, bữa nào bí quá cũng phải để ý tới chị Hien :D
 
Vẫn còn 1 tý nữa bạn ạ.Nếu có thể sửa thêm được phần này thì trở thành hàm hiệu quả nhất cho vấn đề này.Cụ thể như ảnh bạn xử lý giúp mình với
ApDdjQ.jpg
[/IMG]
ApDdjQ.jpg
[/IMG]
 

File đính kèm

  • refefence.JPG
    refefence.JPG
    112.6 KB · Đọc: 7
Vẫn còn 1 tý nữa bạn ạ.Nếu có thể sửa thêm được phần này thì trở thành hàm hiệu quả nhất cho vấn đề này.Cụ thể như ảnh bạn xử lý giúp mình với
ApDdjQ.jpg
[/IMG]
ApDdjQ.jpg
[/IMG]
các đối số row() này là chỉ chiều dài của dòng hoặc cột, nếu muốn tự động thì phải xem file của bạn muốn công thức như thế nào:
có phải bạn muốn tạo 1 mảng dữ liệu động không cố định ??
 
các đối số row() này là chỉ chiều dài của dòng hoặc cột, nếu muốn tự động thì phải xem file của bạn muốn công thức như thế nào:
có phải bạn muốn tạo 1 mảng dữ liệu động không cố định ??
Mảng của mình 50 cột 820 dòng tổng bằng 41000 giá trị.Nhưng trong bảng này thường chỉ có vài cột là có giá trị.Mình nghĩ nếu cáo Refence của Row() mà tham chiếu được thì ngon quá
 
Mảng của mình 50 cột 820 dòng tổng bằng 41000 giá trị.Nhưng trong bảng này thường chỉ có vài cột là có giá trị.Mình nghĩ nếu cáo Refence của Row() mà tham chiếu được thì ngon quá
41000 giá trị thì nhờ ai làm VBA đi bạn công thức này rất nặng đấy
 
OK rồi
các đối số row() này là chỉ chiều dài của dòng hoặc cột, nếu muốn tự động thì phải xem file của bạn muốn công thức như thế nào:
có phải bạn muốn tạo 1 mảng dữ liệu động không cố định ??
Ok rồi bạn.Mình xem hàm của NguyenNgocThuHien và hàm của bạn có hiệu chỉnh được rồi.Chắc lần này là full rồi.Topnick này 2 trang bằng iem đọc diễn đàn Tây cả tuần. Bên mình giỏi hơn bên nó hè
 
Tà đạo :D
Mã:
=IFERROR(INDIRECT("R"&MID(REPT(TEXT(SMALL(IF(LEN($B$4:$E$10);COLUMN($B$4:$E$10)+ROW($B$4:$E$10)/1000);ROW(A1));"00,000")&"C";2);4;6););"")
 
anh cho em xin file đi chứ ";" nó không có ra, em đổi thành dấu "," rồi. nó ra:
=IFERROR(INDIRECT({"R002C00"},),"")
Bạn sửa dấu ";" thành dấu "," thì phải sửa dấu "," thành dấu "." mới được. Thôi sửa công thức lại khỏi lăn tăn vụ dấu ","
Mã:
=IFERROR(INDIRECT("R"&MID(REPT(TEXT(SMALL(IF(LEN($B$4:$E$10);COLUMN($B$4:$E$10)*1000+ROW($B$4:$E$10));ROW(A1));"000000")&"C";2);4;7););"")
 

File đính kèm

Bạn sửa dấu ";" thành dấu "," thì phải sửa dấu "," thành dấu "." mới được. Thôi sửa công thức lại khỏi lăn tăn vụ dấu ","
Mã:
=IFERROR(INDIRECT("R"&MID(REPT(TEXT(SMALL(IF(LEN($B$4:$E$10);COLUMN($B$4:$E$10)*1000+ROW($B$4:$E$10));ROW(A1));"000000")&"C";2);4;7););"")
Cái ";" "." là chỉnh trong excel hay trên hệ thống đó anh.
 
Bạn sửa dấu ";" thành dấu "," thì phải sửa dấu "," thành dấu "." mới được. Thôi sửa công thức lại khỏi lăn tăn vụ dấu ","
Mã:
=IFERROR(INDIRECT("R"&MID(REPT(TEXT(SMALL(IF(LEN($B$4:$E$10);COLUMN($B$4:$E$10)*1000+ROW($B$4:$E$10));ROW(A1));"000000")&"C";2);4;7););"")
Công thức này hay, nhưng ít người sài dạng "RC" ngoài bảng tính nên ít người hiểu!!!
 
=SUBSTITUTE(IF(A$1=1," ",B13&IFERROR(", "&INDEX(B$3:B$10,SMALL(IF(A$3:A$10=A13,ROW($1:$8)),A$1-1)),""))," , ","")
hê hê :D
Ah cái bài sử dụng Iter cal đó hả, em nghĩ đâu cần phải xóa dấu , cuối chi, để luôn cũng được mà, mà chắc cách anh ngắn nhất rồi đó, mà anh hiểu nó chạy không??? :p:p:p
 
Lạc đề rồi các bạn. Vi phạm nội quy đó :D
4. Trong những chủ đề thảo luận nghiêm túc, tránh nói bâng quơ, sa đà vào chuyện riêng tư.
5. Bài viết phải được gửi (post) ở đúng vị trí, đúng mục (box) và đúng chủ đề (topic).
 
Bạn sửa dấu ";" thành dấu "," thì phải sửa dấu "," thành dấu "." mới được. Thôi sửa công thức lại khỏi lăn tăn vụ dấu ","
Mã:
=IFERROR(INDIRECT("R"&MID(REPT(TEXT(SMALL(IF(LEN($B$4:$E$10);COLUMN($B$4:$E$10)*1000+ROW($B$4:$E$10));ROW(A1));"000000")&"C";2);4;7););"")
hãi thật. thank
 

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

Back
Top Bottom