Tìm 10 nhóm dòng

Liên hệ QC

hcl_pt

Thành viên thường trực
Tham gia
21/10/10
Bài viết
208
Được thích
11
Mong GPE xem giúp em trường hợp đau đầu này ạ. Xin chân thành cảm ơn rất nhiều!
- Dữ liệu ở sheet1: 4 dòng đầu tiên là ngày tháng năm; 39 dòng tiếp theo là dữ liệu từ 1 cho đến 39.
- Xét 10 nhóm dòng, mỗi nhóm có 5 dòng khác nhau được ghép lại với nhau, sao cho trong cùng 1 ngày nào đó thì trong 10 nhóm dòng có ít nhất 1 nhóm chứa tối thiểu 3 dòng có dữ liệu là ngày đó thỏa mãn.
Lưu ý: Một dòng dữ liệu có thể có mặt ở nhiều nhóm khác nhau.
- Làm thế nào để tìm được 10 nhóm dòng đó theo từng trường hợp yêu cầu khi mình nhập điều kiện tìm:
Nhập 0: Tìm tất cả các trường hợp 10 nhóm dòng mà ngày nào cũng thỏa mãn (có 0 ngày không thỏa mãn)
Nhập 1: Tìm tất cả các trường hợp 10 nhóm dòng mà có tối đa 1 ngày liên tiếp không thỏa mãn
Nhập 2: Tìm tất cả các trường hợp 10 nhóm dòng mà có tối đa 2 ngày liên tiếp không thỏa mãn
Nhập 3: Tìm tất cả các trường hợp 10 nhóm dòng mà có tối đa 3 ngày liên tiếp không thỏa mãn
..v.v.v..
Nhập 50: Tìm tất cả các trường hợp 10 nhóm dòng mà có tối đa 50 ngày liên tiếp không thỏa mãn
- Kết quả tìm được xuất sang sheet2.
 

File đính kèm

  • Timnhomdong_codieukien.xlsx
    35.4 KB · Đọc: 13
cho mình hỏi thêm, bạn nói là:
- Xét 10 nhóm dòng, mỗi nhóm có 5 dòng khác nhau được ghép lại với nhau, sao cho trong cùng 1 ngày nào đó thì trong 10 nhóm dòng có ít nhất 1 nhóm chứa tối thiểu 3 dòng có dữ liệu là ngày đó thỏa mãn.
Lưu ý: Một dòng dữ liệu có thể có mặt ở nhiều nhóm khác nhau.
nếu chỉ dựa vào điều kiện này, thì có rất nhiều cách làm và đương nhiên ra rất nhiều đáp án
chẳng hạn như ở sheet CSDL, từ ngày một mình filter bỏ đi blank, và chép các dòng có dữ liệu qua sheet 2, mình làm 10 ngày sẻ có được 10 nhóm.
bạn xem file đính kèm (mình chỉ làm tay thôi, để hiểu ý bạn đó mà)
 

File đính kèm

  • timnhom.rar
    22 KB · Đọc: 7
cho mình hỏi thêm, bạn nói là:

nếu chỉ dựa vào điều kiện này, thì có rất nhiều cách làm và đương nhiên ra rất nhiều đáp án
chẳng hạn như ở sheet CSDL, từ ngày một mình filter bỏ đi blank, và chép các dòng có dữ liệu qua sheet 2, mình làm 10 ngày sẻ có được 10 nhóm.
bạn xem file đính kèm (mình chỉ làm tay thôi, để hiểu ý bạn đó mà)
Vâng, cảm ơn bạn rất nhiều! Như bạn nói đấy có thể có nhiều cách làm mà mình không biết. Với cách của bạn mình đã xem và thấy ban đã gần hiểu ý mình rồi ạ! Nhưng điều kiện chỉ cần là trong 1 nhóm có tối thiểu 3 dòng dữ liệu trở lên là thỏa mãn thôi (3-4-5 dòng có dữ liệu trong 1 nhóm là được ạ), còn của bạn là trong 1 nhóm cả 5 dòng đều có dữ liệu. Nhưng cái khó nhất là khi tìm được 10 nhóm dòng theo cách tìm với điều kiện đưa ra như:
- Làm thế nào để tìm được 10 nhóm dòng đó theo từng trường hợp yêu cầu khi mình nhập điều kiện tìm:
Nhập 0: Tìm tất cả các trường hợp 10 nhóm dòng mà ngày nào cũng thỏa mãn (có 0 ngày không thỏa mãn)
Nhập 1: Tìm tất cả các trường hợp 10 nhóm dòng mà có tối đa 1 ngày liên tiếp không thỏa mãn
Nhập 2: Tìm tất cả các trường hợp 10 nhóm dòng mà có tối đa 2 ngày liên tiếp không thỏa mãn
Nhập 3: Tìm tất cả các trường hợp 10 nhóm dòng mà có tối đa 3 ngày liên tiếp không thỏa mãn
..v.v.v..
Nhập 50: Tìm tất cả các trường hợp 10 nhóm dòng mà có tối đa 50 ngày liên tiếp không thỏa mãn
- Kết quả tìm được xuất sang sheet2.
Mong các bạn xem giúp!
 
Vâng, cảm ơn bạn rất nhiều! Như bạn nói đấy có thể có nhiều cách làm mà mình không biết. Với cách của bạn mình đã xem và thấy ban đã gần hiểu ý mình rồi ạ! Nhưng điều kiện chỉ cần là trong 1 nhóm có tối thiểu 3 dòng dữ liệu trở lên là thỏa mãn thôi (3-4-5 dòng có dữ liệu trong 1 nhóm là được ạ), còn của bạn là trong 1 nhóm cả 5 dòng đều có dữ liệu. Nhưng cái khó nhất là khi tìm được 10 nhóm dòng theo cách tìm với điều kiện đưa ra như:
- Làm thế nào để tìm được 10 nhóm dòng đó theo từng trường hợp yêu cầu khi mình nhập điều kiện tìm:
Nhập 0: Tìm tất cả các trường hợp 10 nhóm dòng mà ngày nào cũng thỏa mãn (có 0 ngày không thỏa mãn)
Nhập 1: Tìm tất cả các trường hợp 10 nhóm dòng mà có tối đa 1 ngày liên tiếp không thỏa mãn
Nhập 2: Tìm tất cả các trường hợp 10 nhóm dòng mà có tối đa 2 ngày liên tiếp không thỏa mãn
Nhập 3: Tìm tất cả các trường hợp 10 nhóm dòng mà có tối đa 3 ngày liên tiếp không thỏa mãn
..v.v.v..
Nhập 50: Tìm tất cả các trường hợp 10 nhóm dòng mà có tối đa 50 ngày liên tiếp không thỏa mãn
- Kết quả tìm được xuất sang sheet2.
Mong các bạn xem giúp!

rất khó bạn ạ, mình nghĩ câu thứ 2 thì phải dựa vào câu thứ nhất, mà điều kiện để giải câu thứ nhất thì mung lung quá.
hy vọng bạn sẻ tìm được câu trả lời từ các vị cao thủ
 
Mong GPE xem giúp em trường hợp đau đầu này ạ. Xin chân thành cảm ơn rất nhiều!
- Dữ liệu ở sheet1: 4 dòng đầu tiên là ngày tháng năm; 39 dòng tiếp theo là dữ liệu từ 1 cho đến 39.
- Xét 10 nhóm dòng, mỗi nhóm có 5 dòng khác nhau được ghép lại với nhau, sao cho trong cùng 1 ngày nào đó thì trong 10 nhóm dòng có ít nhất 1 nhóm chứa tối thiểu 3 dòng có dữ liệu là ngày đó thỏa mãn.
.
Không hiểu hết ý bạn, vậy phải chăng nói ngắn gọn lại là trong 39 dòng đó thì tìm 5 dòng khác nhau thỏa mãn điều kiện X:
Với X=0 Cột nào cũng có ít nhất 3 số
X=1 Cho phép 1 cột có ít hơn 3 số, các cột khác vẫn phải có ít nhất 3 số
....
X=50...
(vì tìm 10 nhóm mà chỉ cần ít nhất 1 nhóm thỏa mãn điều kiện, các nhóm lại có thể trùng nhau thì tìm 9 nhóm còn lại làm gì?)
 
Đọc yêu cầu của bạn mình không rõ lắm về yêu cầu. Bạn giải thích 1 số khái niệm
1/ Thỏa mãn là như thế nào?
2/ Nhập 0, 1, 2... là nhập ở đâu bạn?
3/ Khi tìm được các dòng thỏa mãn "điều kiện" thì phân bổ chúng vào các nhóm và "bắt buộc" trong "mỗi nhóm" phải có tối thiểu 3 dòng thỏa mãn => Nếu chỉ có 1 hoặc 2 nhóm ... thỏa mãn còn lại không tìm được thì xử lý như thế nào?
4/ 1 dòng có thể xuất hiện trong nhiều nhóm thì nếu tôi có số dòng tối thiểu thỏa mãn => trong 10 nhóm nếu tôi add số dòng tối thiểu thỏa mãn vào còn các dòng khác thì ngẫu nhiên có được không?
=> Bạn có thể nói rõ hơn 1 chút, kể cả mục đích để có kết quả tốt nhất
 
Không hiểu hết ý bạn, vậy phải chăng nói ngắn gọn lại là trong 39 dòng đó thì tìm 5 dòng khác nhau thỏa mãn điều kiện X:
Với X=0 Cột nào cũng có ít nhất 3 số
X=1 Cho phép 1 cột có ít hơn 3 số, các cột khác vẫn phải có ít nhất 3 số
....
X=50...
(vì tìm 10 nhóm mà chỉ cần ít nhất 1 nhóm thỏa mãn điều kiện, các nhóm lại có thể trùng nhau thì tìm 9 nhóm còn lại làm gì?)

Vâng, cảm ơn bạn đã quan tâm!
"...nói ngắn gọn lại là trong 39 dòng đó thì tìm 5 dòng khác nhau thỏa mãn điều kiện X:
Với X=0 Cột nào cũng có ít nhất 3 số. (đúng)
X=1 Cho phép 1 cột có ít hơn 3 số, các cột khác vẫn phải có ít nhất 3 số. (nếu cứ xuất hiện 1 cột nào đó có ít hơn 3 số thì cột liền kề ngay nó phải có ít nhất 3 số)
....
X=50..."
"...vì tìm 10 nhóm mà chỉ cần ít nhất 1 nhóm thỏa mãn điều kiện, các nhóm lại có thể trùng nhau thì tìm 9 nhóm còn lại làm gì?" (Vì nếu chỉ tìm 1 nhóm thôi thì sẽ khó có 1 nhóm nào thỏa mãn được, nên cần tìm 10 nhóm khác nhau để nhóm nọ bù trừ cho nhóm kia)
 
Đọc yêu cầu của bạn mình không rõ lắm về yêu cầu. Bạn giải thích 1 số khái niệm
1/ Thỏa mãn là như thế nào?
2/ Nhập 0, 1, 2... là nhập ở đâu bạn?
3/ Khi tìm được các dòng thỏa mãn "điều kiện" thì phân bổ chúng vào các nhóm và "bắt buộc" trong "mỗi nhóm" phải có tối thiểu 3 dòng thỏa mãn => Nếu chỉ có 1 hoặc 2 nhóm ... thỏa mãn còn lại không tìm được thì xử lý như thế nào?
4/ 1 dòng có thể xuất hiện trong nhiều nhóm thì nếu tôi có số dòng tối thiểu thỏa mãn => trong 10 nhóm nếu tôi add số dòng tối thiểu thỏa mãn vào còn các dòng khác thì ngẫu nhiên có được không?
=> Bạn có thể nói rõ hơn 1 chút, kể cả mục đích để có kết quả tốt nhất

Vâng! Mình xin giải thích từng vấn đề cho bạn, mong bạn giúp đỡ!
1/ Thỏa mãn là như thế nào?
- Thỏa mãn là trong cùng 1 cột thì có ít nhất 1 nhóm 5 dòng có chứa 3 số trở lên. Nếu không có nhóm nào chứa 3 số trở lên là cột đó không thỏa mãn.
2/ Nhập 0, 1, 2... là nhập ở đâu bạn?
- 0, 1, 2...là số cột liên tiếp tối đa không thỏa mãn. Mình làm một cái box nhập con số đó vào và tìm 10 nhóm theo điều kiện của con số mình nhập (cái này là mình chỉ đưa ra ý tưởng làm)
3/ Khi tìm được các dòng thỏa mãn "điều kiện" thì phân bổ chúng vào các nhóm và "bắt buộc" trong "mỗi nhóm" phải có tối thiểu 3 dòng thỏa mãn => Nếu chỉ có 1 hoặc 2 nhóm ... thỏa mãn còn lại không tìm được thì xử lý như thế nào?
- Không phải "bắt buộc" trong "mỗi nhóm" phải có tối thiểu 3 dòng thỏa mãn mà là chỉ cần ít nhất 1 nhóm phải có tối thiểu 3 dòng là được. Mình tìm 10 nhóm để nó hỗ trợ bù trừ cho nhau, nhóm này không có thì nhóm khác có.
4/ 1 dòng có thể xuất hiện trong nhiều nhóm thì nếu tôi có số dòng tối thiểu thỏa mãn => trong 10 nhóm nếu tôi add số dòng tối thiểu thỏa mãn vào còn các dòng khác thì ngẫu nhiên có được không?
- Chỉ cần 10 nhóm khác nhau là được: ví dụ 2 nhóm: có 4 dòng giống nhau nhưng có 1 dòng khác nhau thì vẫn là 2 nhóm khác nhau.
* Rất mong bạn giúp đỡ, xin cảm ơn rất nhiều!
 
Thật khó hiểu theo bạn mô tả

Và chắc bạn cũng chưa làm bằng lựa chọn (do người) làm bao giờ, đúng k?

Bài toán này ứng dụng gì cho thực tế vậy bạn, trong lĩnh vực ngành nào? (nói ra có thể tìm được cách khác?)
 
Mình xin trình bày lại mong GPE giúp đỡ: CSDL ở sheet(CSDL) gồm có 39 dòng dữ liệu. Từ 39 dòng dữ liệu này tìm các dòng ghép lại với nhau thành 10 nhóm dòng khác nhau, mỗi nhóm dòng gồm 5 dòng dữ liệu (1 dòng dữ liệu có thể ở nhiều nhóm dòng). Xét cột của 10 nhóm dòng này: nếu trong cùng 1 cột mà không có nhóm dòng nào chứa 3 dữ liệu trở lên thì cột đó là không thỏa mãn.
- Tìm 10 nhóm dòng thỏa mãn các trường hợp sau:
+ Trường hợp 1: có tối đa 1 cột liên tiếp không thỏa mãn => kết quả xuất sang sheet(KQ)
+ Trường hợp 2: có tối đa 2 cột liên tiếp không thỏa mãn => kết quả xuất sang sheet(KQ)
+ Trường hợp 3: có tối đa 3 cột liên tiếp không thỏa mãn => kết quả xuất sang sheet(KQ)
….
+ Trường hợp 50: có tối đa 50 cột liên tiếp không thỏa mãn => kết quả xuất sang sheet(KQ)
( Trong trường hợp không tìm thấy kết quả thì phần kết quả báo: không có)

* Mình xin gửi file minh họa cho 3 trường hợp đầu (vì là minh họa nên dữ liệu có thể không hợp lí): trong đó cột không thỏa mãn là cột màu đen, số màu đỏ
* Rất mong GPE giúp đỡ. Xin chân thành cảm ơn rất nhiều!
 

File đính kèm

  • Timnhomdong_codieukien.rar
    881.9 KB · Đọc: 12
Thử với File đầu tiên, cách "dò" theo kiểu thứ tự nên bạn Test thử xem với các dữ liệu khác có đáp ứng không? Vì theo "dò theo thứ tự" nên bỏ sót rất nhiều trường hợp" có khả năng xáy ra. Nếu không đáp ứng thì...."làm lại"
 

File đính kèm

  • GPE - La qua.zip
    33.3 KB · Đọc: 6
Thử với File đầu tiên, cách "dò" theo kiểu thứ tự nên bạn Test thử xem với các dữ liệu khác có đáp ứng không? Vì theo "dò theo thứ tự" nên bỏ sót rất nhiều trường hợp" có khả năng xáy ra. Nếu không đáp ứng thì...."làm lại"
Cảm ơn bạn rất nhiều! Mình đã test và kiểm tra thì thấy như sau ạ:
1/ Ý tưởng nhập số ( chính là số cột liên tiếp không thỏa mãn) để tìm 10 nhóm dòng, làm như vậy: đúng rồi ạ
2/ Kết quả mình kiểm tra:
+ Khi mình nhập số 1 để tìm: thì kết quả 10 nhóm dòng đó có tới 16 cột đầu tiên là không thỏa mãn (không có nhóm nào chứa từ 3 dữ liệu trở lên): Kết quả chưa đúng ạ.
+ Khi nhập số 2 để tìm: thì kết quả 10 nóm dòng đó vẫn có tới 16 cột đầu tiên là không thỏa mãn: kết quả chưa đúng ạ!
....
- Mong bạn có thể xem giúp lại được ạ! Xin cảm ơn bạn rất nhiều!
 
Có lẽ là Excel không làm nổi việc này. Thử làm một phép tính đơn giản thôi. Bạn có 39 dòng, mỗi nhóm là 5 dòng vậy số nhóm 5 dòng là tổ hợp chập 5 của 39 phần tử, tức là 575.757 nhóm. Từ 575.757 nhóm này lại xét tiếp mỗi 10 nhóm, số trường hợp phải xét là tổ hợp chập 10 của 575.757 phần tử, tức là hơn 11*10^50 trường hợp. Chạy trên Excel không biết 1 tháng có xong không.
 
Có lẽ là Excel không làm nổi việc này. Thử làm một phép tính đơn giản thôi. Bạn có 39 dòng, mỗi nhóm là 5 dòng vậy số nhóm 5 dòng là tổ hợp chập 5 của 39 phần tử, tức là 575.757 nhóm. Từ 575.757 nhóm này lại xét tiếp mỗi 10 nhóm, số trường hợp phải xét là tổ hợp chập 10 của 575.757 phần tử, tức là hơn 11*10^50 trường hợp. Chạy trên Excel không biết 1 tháng có xong không.
Thân gửi bạn Huuthang_bd, bạn có biết phần mềm nào có thể giải quyết được vấn đề này không ạ?
- Nếu 10 nhóm không làm được thì theo bạn có giảm bớt xuống bao nhiêu nhóm có thể làm được? (9; 8; 7;...1 nhóm đều được ạ) rất mong sự giúp đỡ cả bạn! Xin chân thành cảm ơn!
 
Thân gửi bạn Huuthang_bd, bạn có biết phần mềm nào có thể giải quyết được vấn đề này không ạ?
- Nếu 10 nhóm không làm được thì theo bạn có giảm bớt xuống bao nhiêu nhóm có thể làm được? (9; 8; 7;...1 nhóm đều được ạ) rất mong sự giúp đỡ cả bạn! Xin chân thành cảm ơn!

1 nhóm mới càng khó đó - như bạn nói đó,

sao không trả lời câu hỏi
Và chắc bạn cũng chưa làm bằng lựa chọn (do người) làm bao giờ, đúng k?

Bài toán này ứng dụng gì cho thực tế vậy bạn, trong lĩnh vực ngành nào? (nói ra có thể tìm được cách khác?)
 
1 nhóm mới càng khó đó - như bạn nói đó,

sao không trả lời câu hỏi

- Bạn vodoi2x ơi bạn đã có phương án nào chưa ạ? Mong phương án của bạn quá!
- Bạn Huuthang_bd ơi, bạn bảo có phương án nào đó mà chạy một tháng trời, vậy đó là phương án nào vậy bạn? Bạn có thể giúp đỡ được không? (Không biết với con máy tính này thì có chạy nhanh hơn được không:
[h=1](Asus Lamborghini VX7-SZ055Z (VX7-1ASZ) (Intel Core i7-2630QM 2.0GHz, 16GB RAM, 1.5TB HDD, VGA NVIDIA GeForce GTX 460M, 15.6 inch, Windows 7 Home Premium 64 bit)[/h]- Rất mong sự giúp đỡ của các bạn! Xin cảm ơn!
 
- Bạn vodoi2x ơi bạn đã có phương án nào chưa ạ? Mong phương án của bạn quá!
- Bạn Huuthang_bd ơi, bạn bảo có phương án nào đó mà chạy một tháng trời, vậy đó là phương án nào vậy bạn? Bạn có thể giúp đỡ được không? (Không biết với con máy tính này thì có chạy nhanh hơn được không:
[h=1](Asus Lamborghini VX7-SZ055Z (VX7-1ASZ) (Intel Core i7-2630QM 2.0GHz, 16GB RAM, 1.5TB HDD, VGA NVIDIA GeForce GTX 460M, 15.6 inch, Windows 7 Home Premium 64 bit)[/h]- Rất mong sự giúp đỡ của các bạn! Xin cảm ơn!

Bài này khó hỉu, mà lại còn nhiều số, tui không dám đụng vào,

nếu có phương án tôi sẽ đưa lên ngay, tiếc là không
 
Web KT

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

Back
Top Bottom