Làm sao để duyệt bảng số và sắp xếp thành từng hàng theo 1 đk cho trước?

Liên hệ QC

VVinterSnow

Thành viên mới
Tham gia
3/5/12
Bài viết
14
Được thích
0
Ai giúp mình giải thích ý nghĩa chuỗi hàm này ko?
=OFFSET($G$4,INT((ROWS($4:4)-1)/3),MOD(ROWS($4:4)-1,3))

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... rất khó hiểu.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 lọc số kèm theo.

Chả hạn mình có VD sau :

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

Với chuỗi hàm mình hỏi ở trên, mình có kết quả là :
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 :) Mong bạn nào am hiểu về phần này có thể giúp mình. Thanks các bạn!:)
 
hix, khó quá ko bạn nào giúp đc mình ah?
Vậy có cách nào để đẩy 1 số từ hàng dọc xếp lên hàng ngang tiếp theo trên đó ko?
VD : mình có cột số
02
16
47
58
69
33
41
54
...
Giờ mình muốn sắp xếp chúng với đk, nếu số ở hàng dưới và hàng trên cùng > hoặc < số 37 thì đẩy lên xếp thành hàng ngang tiếp theo cạnh số trên đó
ở vd trên kết quả sẽ là :
02 - 16 (cùng <37)
47 - 58 - 69 (cùng >37)
33 (ko cùng số nào)
41 - 54 (cùng >37)
...
 
thanks bro! Đây là file mình đã giải thích tường tận, chi tiết về cách mà mình muốn làm.
Mình nghĩ dùng hàm: =if(or(and(A2>37.5,A1>37.5),and(A2<37.5,A1<37.5),"xếp A2 thành hàng ngang với A1","xếp A2 thành hàng dọc với A1"). Nếu điều kiện trên đúng thì A2 cùng hàng ngang với A1 và ngc lại, điều kiện sai thì A2 xếp xuống dòng tiếp theo so với A1. Vấn đề ở đây là mình ko biết dùng hàm gì để sắp xếp đc số thành thứ tự cùng 1 hàng ngang và xuống dòng như vậy.
Hy vọng bạn nào thành thạo về bố cục, sắp xếp mảng dữ liệu thì giúp mình. Mình sẽ thanks nhiệt tình, hết khả năng.--=0
 

File đính kèm

  • HD lap do thi.xlsx
    11.9 KB · Đọc: 3
Phân hoạch tập số liệu

Đây là bài toán phân hoạch tập số liệu theo điều kiện cho trước.
Tôi không viết được công thức, chỉ viết được dưới dạng sub hoặc function (dùng VBA), nếu bạn muốn tôi có thể gửi file lên!
Sơ lược là như thế này:
Với 1 vùng dữ liệu (liên tục) - tôi giả định đã đặt tên là DATA, trên sheet, tạo một nút lệnh và 1 vùng để nhập điều kiện cần phân hoạch (ví dụ: >37.5, hoặc MOD(?, 2) - xét chẵn lẻ, LEN(?) > 3 để tách chuỗi theo độ dài.... Chọn 1 vị trí trống, click nút lệnh => dữ liệu sau khi phân hoạch sẽ tự động chèn vào sheet tại vị trí hiện thời.

- Dữ liệu có thể nhập trong 1 vùng (nhiều hàng, nhiều cột)
- Điều kiện phân hoạch phong phú
Bạn xem thông tin trong file đính kèm.
 

File đính kèm

  • PhanHoachTapSoLieu.zip
    56.5 KB · Đọc: 11
Lần chỉnh sửa cuối:
thanks bro! Đây là file mình đã giải thích tường tận, chi tiết về cách mà mình muốn làm.
Mình nghĩ dùng hàm: =if(or(and(A2>37.5,A1>37.5),and(A2<37.5,A1<37.5),"xếp A2 thành hàng ngang với A1","xếp A2 thành hàng dọc với A1"). Nếu điều kiện trên đúng thì A2 cùng hàng ngang với A1 và ngc lại, điều kiện sai thì A2 xếp xuống dòng tiếp theo so với A1. Vấn đề ở đây là mình ko biết dùng hàm gì để sắp xếp đc số thành thứ tự cùng 1 hàng ngang và xuống dòng như vậy.
Hy vọng bạn nào thành thạo về bố cục, sắp xếp mảng dữ liệu thì giúp mình. Mình sẽ thanks nhiệt tình, hết khả năng.--=0
Do bạn chỉ đưa ra điều kiện >37.5 hoặc <37.5, thiếu trường hợp =37.5 nên tôi chia lại thành 2 trường hợp >37.5 hoặc<=37.5
Với trường hợp số chẵn, số lẻ thì thuật toán cũng tương tự.
Bạn xem file.
 

File đính kèm

  • HD lap do thi.rar
    12.4 KB · Đọc: 17
Tuyệt quá!:D thanks cả 2 bạn rất nhiều!!!
- bản phân hoạch tập số liệu của bạn hoangvuluan khá tiện + chuẩn, ứng dụng đc vào nhiều trường hợp. Tuy nhiên sau khi đổi điều kiện khác và thực thi thì bảng kết quả cho ra tuy đúng nhưng bị sắp xếp lệch hàng, lệch dòng, trông hơi lộn xộn @@ chưa hiểu đây đây là lỗi do máy hay do vị trí bảng kết quả. 1 yếu tố nữa là mình ko thể copy đc cách làm của bạn vào bảng tính của mình, hix!
- bản của bạn huuthang-bd thì thân thiện, đơn giản, dễ copy. Mình đang dùng bản của bạn nhưng chỉ biết copy sang xài chứ nhìn vào cái hàm loằng ngoằng thực sự là ko hiểu gì cả???8-} Tại mấy hàm dạng phức tạp này, gà như mình chưa có cơ hội tiếp xúc, học hỏi.

Cho mình hỏi thêm bạn huuthang là trg hợp số chẵn số lẻ, sửa điều kiện thế nào vậy? Mình sửa đoạn trong ngoặc kép ">37.5" thành "mod(?,2)" thì ko đc.=,.= Loay hoay mãi vẫn chưa đặt đc điều kiện số chẵn/lẻ, mong bạn giúp mình nốt!^^
 
Tuyệt quá!:D thanks cả 2 bạn rất nhiều!!!
- bản phân hoạch tập số liệu của bạn hoangvuluan khá tiện + chuẩn, ứng dụng đc vào nhiều trường hợp. Tuy nhiên sau khi đổi điều kiện khác và thực thi thì bảng kết quả cho ra tuy đúng nhưng bị sắp xếp lệch hàng, lệch dòng, trông hơi lộn xộn @@ chưa hiểu đây đây là lỗi do máy hay do vị trí bảng kết quả. 1 yếu tố nữa là mình ko thể copy đc cách làm của bạn vào bảng tính của mình, hix!
- bản của bạn huuthang-bd thì thân thiện, đơn giản, dễ copy. Mình đang dùng bản của bạn nhưng chỉ biết copy sang xài chứ nhìn vào cái hàm loằng ngoằng thực sự là ko hiểu gì cả???8-} Tại mấy hàm dạng phức tạp này, gà như mình chưa có cơ hội tiếp xúc, học hỏi.

Cho mình hỏi thêm bạn huuthang là trg hợp số chẵn số lẻ, sửa điều kiện thế nào vậy? Mình sửa đoạn trong ngoặc kép ">37.5" thành "mod(?,2)" thì ko đc.=,.= Loay hoay mãi vẫn chưa đặt đc điều kiện số chẵn/lẻ, mong bạn giúp mình nốt!^^
Ở trường hợp trước, tôi kiểm tra hai số liền kề có cùng lớn hơn hay cùng bé hơn 37.5 hay không bằng hàm COUNTIF(...,">37.5"). Nếu kết quả của hàm COUNTIF() này là 1 thì sẽ có 1 số lớn hơn 37.5 và một số bé hơn 37.5 (xuống hàng). Nếu kết quả khác 1 thì hoặc cả hai số đều lớn hơn 37.5 (COUNTIF()=2) hoặc cả hai số đều bé hơn 37.5 (COUNTIF()=0).

Bây giờ để kiểm tra hai số có cùng chẵn hay cùng lẻ hay không thì bạn phải kiểm tra tổng của 2 số đó là số chẵn hay số lẻ. Nếu tổng là số lẻ thì chắc chắn có 1 số chẵn và một số lẻ (xuống hàng). Nếu tổng là một số chẵn thì hai số là cùng chẵn hoặc cùng lẻ. Vậy công thức phải sửa lại như thế này:
Mã:
=IF(MOD(SUM(OFFSET($B$2,COUNT($D$1:$O1)+COUNT($D2:D2)-1,,2)),2),"",OFFSET($B$2,COUNT($D$1:$O1)+COUNT($D2:D2),))
Bạn copy công thức này vào ô E2 trong file tôi gửi ở bài #6. Sau đó copy ô E2 cho các ô trong các cột E:O. Công thức cột D vẫn giữ nguyên.
 
thanks bạn rất nhiều!^^ mình làm đc hết rồi và cũng hiểu đc khá khá ý nghĩa các hàm heee :D
 
Sorry! Mình muốn hỏi thêm 1 câu lạc đề ngoài lề:p
Mình mắc phải vấn đề như trong hình, những ô trống I178:K202 khi chưa nhập số liệu nó tự nhận mặc định là số 0, dẫn đến việc các cell chứa phép tính liên quan đến chúng báo kết quả tương ứng với số 0, trông hơi rối mắt.
Mình muốn hỏi có cách nào để n~ cell trống này ko mặc định dữ liệu là số 0 nữa cho tới khi mình tự nhập số vào ko? Hoặc có cách nào để các hàm ko hoạt động với số 0 ko?
Mình mò mẫm đủ cách mà ko ra, search GG thì vấn đề này ko phổ biến lắm nên search với đủ từ khóa vẫn ko có kết quả như mong muốn.=,.= Hy vọng các bạn có thể giúp đỡ thêm lần nữa!heee^^



Quên nữa mình muốn dùng 1 row / colum như 1 thanh tiêu đề cố định ko bị ảnh hưởng khi cuộn thanh cuộn xuống thì làm cách nào zậy? Để nó cố định luôn hiển thị như thanh định vị ABCD... 12345... đó.:) Vấn đề này rất phổ biến nhưng ko biết phải tả thế nào để search GG nên tiện hỏi luôn các bạn ở đây, mod thông cảm! :)
 

File đính kèm

  • Untitled.jpg
    Untitled.jpg
    20.3 KB · Đọc: 5
  • Untitled.jpg
    Untitled.jpg
    16.8 KB · Đọc: 3
Lần chỉnh sửa cuối:
Sorry! Mình muốn hỏi thêm 1 câu lạc đề ngoài lề:p
Mình mắc phải vấn đề như trong hình, những ô trống I178:K202 khi chưa nhập số liệu nó tự nhận mặc định là số 0, dẫn đến việc các cell chứa phép tính liên quan đến chúng báo kết quả tương ứng với số 0, trông hơi rối mắt.
Mình muốn hỏi có cách nào để n~ cell trống này ko mặc định dữ liệu là số 0 nữa cho tới khi mình tự nhập số vào ko? Hoặc có cách nào để các hàm ko hoạt động với số 0 ko?
Mình mò mẫm đủ cách mà ko ra, search GG thì vấn đề này ko phổ biến lắm nên search với đủ từ khóa vẫn ko có kết quả như mong muốn.=,.= Hy vọng các bạn có thể giúp đỡ thêm lần nữa!heee^^
Bạn thêm một hàm IF() để kiểm tra nữa là được. Tôi đã làm trong file đính kèm.
Quên nữa mình muốn dùng 1 row / colum như 1 thanh tiêu đề cố định ko bị ảnh hưởng khi cuộn thanh cuộn xuống thì làm cách nào zậy? Để nó cố định luôn hiển thị như thanh định vị ABCD... 12345... đó.:) Vấn đề này rất phổ biến nhưng ko biết phải tả thế nào để search GG nên tiện hỏi luôn các bạn ở đây, mod thông cảm! :)
Đây là chức năng Freeze Panes. Nó ở Ribbon View, trong nhóm công cụ Window.
 

File đính kèm

  • HD lap do thi.rar
    14.3 KB · Đọc: 7
Hi! thanks bạn nhiều lắm! mình copy hàm của bạn sang và đc kết quả rất ok rùi, nhưng mình ko hiểu tại sao 1 bên bạn dùng hàm if(), 1 bên lại thêm hàm or() @@

Mình muốn copy để dùng cho hàm sau nhưng ko đc :
=OFFSET($I$4,INT((ROWS($4:5)-1)/3),MOD(ROWS($4:5)-1,3))
-> hàm này dùng để chuyển 1 bảng dữ liệu thành 1 cột dữ liệu, và nó cũng bị lỗi chuyển n~ cell trống ở bảng ra kết quả số 0 ở cột.
Bạn làm ơn sửa và giải thích giúp mình phải thêm hàm if() thế nào để ko bị nhận số 0 nữa. Mình bị vướng lỗi này ở rất nhiều hàm mà ko biết cách khắc phục, nó cứ tự cho ra kết quả tương ứng với số 0 từ n~ ô trống chưa nhập dữ liệu vào, nhìn rất khó chịu. =,.=
 

File đính kèm

  • Book1.xls
    25.5 KB · Đọc: 4
Lần chỉnh sửa cuối:
bro nào giúp mình nốt hàm offset trên với!=,.= Chỉ còn mỗi hàm này bị lỗi nhập dữ liệu từ cell trống thành số 0 thôi.
 
Hi! thanks bạn nhiều lắm! mình copy hàm của bạn sang và đc kết quả rất ok rùi, nhưng mình ko hiểu tại sao 1 bên bạn dùng hàm if(), 1 bên lại thêm hàm or() @@

Mình muốn copy để dùng cho hàm sau nhưng ko đc :
=OFFSET($I$4,INT((ROWS($4:5)-1)/3),MOD(ROWS($4:5)-1,3))
-> hàm này dùng để chuyển 1 bảng dữ liệu thành 1 cột dữ liệu, và nó cũng bị lỗi chuyển n~ cell trống ở bảng ra kết quả số 0 ở cột.
Bạn làm ơn sửa và giải thích giúp mình phải thêm hàm if() thế nào để ko bị nhận số 0 nữa. Mình bị vướng lỗi này ở rất nhiều hàm mà ko biết cách khắc phục, nó cứ tự cho ra kết quả tương ứng với số 0 từ n~ ô trống chưa nhập dữ liệu vào, nhìn rất khó chịu. =,.=
Cái này thì bạn chỉ cần đưa vào hàm IF() là được thôi mà. Bạn làm như thế này:
Mã:
=IF([CongThucCuaBan]="","",[CongThucCuaBan])
 
Web KT

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

Back
Top Bottom