Lấy các giá trị thỏa mãn điều kiện

quanthienhan

Thành viên hoạt động
Tham gia ngày
4 Tháng hai 2007
Bài viết
120
Được thích
3
Điểm
670
Tuổi
39
Chào các bạn..các bạn xem giúp mình công thức này nha..mình có các dòng dữ liệu...mình muốn lấy một tập hợp các giá trị....các giá trị được lấy phải có trong các dòng dữ liệu đó....xin các bạn xem file của mình...xin cảm ơn các bạn nhiều..
 

bunbun85

Thành viên mới
Tham gia ngày
13 Tháng bảy 2014
Bài viết
24
Được thích
26
Điểm
0
Tuổi
35
Chào các bạn..các bạn xem giúp mình công thức này nha..mình có các dòng dữ liệu...mình muốn lấy một tập hợp các giá trị....các giá trị được lấy phải có trong các dòng dữ liệu đó....xin các bạn xem file của mình...xin cảm ơn các bạn nhiều..
Hình như là lọc dữ liệu duy nhất từ nhiều vùng, vậy xem tạm file này giúp được gì không nhé!
 

File đính kèm

quanthienhan

Thành viên hoạt động
Tham gia ngày
4 Tháng hai 2007
Bài viết
120
Được thích
3
Điểm
670
Tuổi
39
xin cảm ơn bạn rất nhiều..có điều chắc bạn hiểu sai ý mình muốn hỏi......Mình có mảng giá trị..gồm 20 dòng.....mình muốn lấy 1 tổ hợp các giá trị....sao cho ..các giá trị trong tổ hợp đó..phải có trong các dòng đó...( chỉ cần 1 giá trị trong tổ hợp có trong dòng dữ liệu là được..)..mình làm thủ công thì được tổ hợp các giá trị như dòng 24...mình muốn xin các bạn công thức, để cho số các giá trị trong tổ hợp mình cần lấy là ít nhất....xin cảm ơn bạn nhiều..bạn xem giúp lại mình nha..
 

bunbun85

Thành viên mới
Tham gia ngày
13 Tháng bảy 2014
Bài viết
24
Được thích
26
Điểm
0
Tuổi
35
Tổ hợp ban tìm được :
b7 ở dòng 3
a4 ở dòng 9
i6 ở dòng 12
i5 ở dòng 18
k8 ở dòng 5
a8 ở dòng 9

Chưa hiểu tổ hợp này đươc lấy theo quy luật nào nhưng xem ra chắc công thức không kham nối rồi! (Hội chứng dấu chấm là đây, kekeke)
 

quanthienhan

Thành viên hoạt động
Tham gia ngày
4 Tháng hai 2007
Bài viết
120
Được thích
3
Điểm
670
Tuổi
39
mình không biết nhiều về excell....mình dùng từ tổ hợp chắc không đúng lắm...phải nói là tập hợp..
dòng..1.. có i5
dòng .2.. có a8
dòng 3 có b7..a8.
dòng 4.. có i5..
dòng 5.. có i6..k8....
..........................
...........................
mình viết vậy chắc là bạn đã hiểu ý mình....mình muốn xin công thức...để số lượng các giá trị mình muốn lấy là ít nhất..
 

quanthienhan

Thành viên hoạt động
Tham gia ngày
4 Tháng hai 2007
Bài viết
120
Được thích
3
Điểm
670
Tuổi
39
buồn quá..sao không ai ghé qua hộ em với
 

Let'GâuGâu

Thành viên mới
Tham gia ngày
12 Tháng chín 2013
Bài viết
3,144
Được thích
2,743
Điểm
560
Tuổi
48

quanthienhan

Thành viên hoạt động
Tham gia ngày
4 Tháng hai 2007
Bài viết
120
Được thích
3
Điểm
670
Tuổi
39
cám ơn bạn đã ghé qua...vì mình biết làm tay với dữ liệu nhiều không thể tối ưu..và rất là lâu..nên mới lên đây nhờ các bạn giúp đỡ...mình làm tay bằng cách loại bỏ những giá trị trùng nhau nhiều nhất....
vd: mình có .. dl1....A.b.c.d...dl2...n..b..e.....dl3....g.d.h.f....dl4...a..k..e...như thế mình sẽ lấy ( A.D..E..) nhưng nếu mà có nhiều dữ liệu thì mình không thể làm như thế được..mong được sự giúp đỡ của các bạn trên này...xin cảm ơn rất nhiều..
 

quanthienhan

Thành viên hoạt động
Tham gia ngày
4 Tháng hai 2007
Bài viết
120
Được thích
3
Điểm
670
Tuổi
39
topic này ứng dụng vào việc gì vậy bạn?
có một topic giống như vậy, nhưng chưa có câu trả lời tối ưu (free)
http://www.giaiphapexcel.com/forum/...-hợp-các-giá-trị-duy-nhất&p=590029#post590029

nếu làm tay thì bạn làm như thế nào?
làm sao bạn biết là tập hợp đó đã là tối ưu?
mình đã đọc bài theo đường dẫn của bạn..kết quả như vậy cũng đã được với mình rồi..bạn có thể giúp mình công thức đó theo file mình gửi được không ...xin cảm ơn bạn rất nhiều.
 

quanthienhan

Thành viên hoạt động
Tham gia ngày
4 Tháng hai 2007
Bài viết
120
Được thích
3
Điểm
670
Tuổi
39
topic này ứng dụng vào việc gì vậy bạn?
có một topic giống như vậy, nhưng chưa có câu trả lời tối ưu (free)
http://www.giaiphapexcel.com/forum/...-hợp-các-giá-trị-duy-nhất&p=590029#post590029

nếu làm tay thì bạn làm như thế nào?
làm sao bạn biết là tập hợp đó đã là tối ưu?
bạn có thể giúp mình áp dụng code của bạn vào file của mình được không bạn mình không biết nhiều về excell nên không làm sao áp dụng vào được ..xin chân thành cảm ơn bạn nhiều..
 

File đính kèm

Let'GâuGâu

Thành viên mới
Tham gia ngày
12 Tháng chín 2013
Bài viết
3,144
Được thích
2,743
Điểm
560
Tuổi
48
bạn có thể giúp mình áp dụng code của bạn vào file của mình được không bạn mình không biết nhiều về excell nên không làm sao áp dụng vào được ..xin chân thành cảm ơn bạn nhiều..
đây không phải phương án tối ưu, tôi đang nghiệm cách đi khác, nhưng có vẻ không dể ăn cho lắm.

bạn có thể mô tả kỹ hơn cách làm tay của bạn không?
 

File đính kèm

Lần chỉnh sửa cuối:

quanthienhan

Thành viên hoạt động
Tham gia ngày
4 Tháng hai 2007
Bài viết
120
Được thích
3
Điểm
670
Tuổi
39
đây không phải phương án tối ưu, tôi đang nghiệm cách đi khác, nhưng có vẻ không dể ăn cho lắm.

bạn có thể mô tả kỹ hơn cách làm tay của bạn không?
bạn xem lại nha..sheet1 dữ liệu...sheet2 mình đổi sang số..sau đó xóa giá trị trùng nhau nhiều nhất..cứ thế cho đến hết...nhưng nếu xuất hiện 2 hoặc 3 giá trị trùng bằng nhau..thì ..mình sẽ ngẫu nhiên chọn đại...( không tối ưu được.)..bạn xem file mới này nha.
 

quanthienhan

Thành viên hoạt động
Tham gia ngày
4 Tháng hai 2007
Bài viết
120
Được thích
3
Điểm
670
Tuổi
39
đây không phải phương án tối ưu, tôi đang nghiệm cách đi khác, nhưng có vẻ không dể ăn cho lắm.

bạn có thể mô tả kỹ hơn cách làm tay của bạn không?
bạn ơi..cho mình hỏi làm cách nào để ra được :
kết quả dòng 28
B7.. I6 A4 ..I5 ..N8 ..A8
như file bạn gửi lại cho mình vậy..
và khi mình copy dữ liệu khác vào thì không nhận được kết quả nào..bạn xem giúp mình cái.
 
Lần chỉnh sửa cuối:

Let'GâuGâu

Thành viên mới
Tham gia ngày
12 Tháng chín 2013
Bài viết
3,144
Được thích
2,743
Điểm
560
Tuổi
48
bạn ơi..cho mình hỏi làm cách nào để ra được :
kết quả dòng 28
B7.. I6 A4 ..I5 ..N8 ..A8
như file bạn gửi lại cho mình vậy..
và khi mình copy dữ liệu khác vào thì không nhận được kết quả nào..bạn xem giúp mình cái.
mấy cái cell rổng của bạn nó chứa ký tự đặt biệt gì đó mà ko nhìn thấy được (ko phải cell rổng)
ở mỗi hàng bạn bắt đầu từ cell rổng đâu tiên xoá tới cột S
cho chạy code ra kết quả
B6-H8-I4-O5-M8-G8-F8-A10
===============
cái vụ này lâu quá quên,
bạn nhấn phím Ctrl H (mở hộp thoại find replace)
ở ô find nhấn phím Alt 160, replace để trống nhấn replace all
vậy là xong.
cái này là phím space (nó hay bị khi chép từ internet hay phần mềm khác qua excel)
 
Lần chỉnh sửa cuối:

quanthienhan

Thành viên hoạt động
Tham gia ngày
4 Tháng hai 2007
Bài viết
120
Được thích
3
Điểm
670
Tuổi
39
mấy cái cell rổng của bạn nó chứa ký tự đặt biệt gì đó mà ko nhìn thấy được (ko phải cell rổng)
ở mỗi hàng bạn bắt đầu từ cell rổng đâu tiên xoá tới cột S
cho chạy code ra kết quả
B6-H8-I4-O5-M8-G8-F8-A10
===============
cái vụ này lâu quá quên,
bạn nhấn phím Ctrl H (mở hộp thoại find replace)
ở ô find nhấn phím Alt 160, replace để trống nhấn replace all
vậy là xong.
cái này là phím space (nó hay bị khi chép từ internet hay phần mềm khác qua excel)
cảm ơn bạn nhiều..mình copy nó có cả công thức nên những ô đó không rỗng..mình pate sạng text là ok....mình dang loay hoay vọc vào macro của bạn..để chạy thử dữ liệu khoảng 500 dòng...mà không biết sửa như thế nào...hic.......đúng là có học có hơn.....
 

Let'GâuGâu

Thành viên mới
Tham gia ngày
12 Tháng chín 2013
Bài viết
3,144
Được thích
2,743
Điểm
560
Tuổi
48
cảm ơn bạn nhiều..mình copy nó có cả công thức nên những ô đó không rỗng..mình pate sạng text là ok....mình dang loay hoay vọc vào macro của bạn..để chạy thử dữ liệu khoảng 500 dòng...mà không biết sửa như thế nào...hic.......đúng là có học có hơn.....
bạn vào code khai báo lại vùng dữ liệu
Mã:
Sub thu()
Dim sarr As Variant, KqDuyNhat(), KqChon(), i, j, k, l, stt, dong, cot, n, mymax As Long, dic, d, dachon As Object
[COLOR=#ff0000]sarr = [a1:s20].Value[/COLOR]
................................
..................................
[COLOR=#0000ff][A28:IV28].ClearContents[/COLOR]
            If stt Then
                [COLOR=#0000ff][A28].Resize(, stt).Value = KqChon[/COLOR]
            End If

Erase sarr
Set dic = Nothing
Set d = Nothing
Set dachon = Nothing
End Sub
vùng màu đỏ là vùng dữ liệu của bạn
màu xanh là chổ mà bạn đạt kết quả
...........
trưa nếu có rảnh tôi sẻ làm mõt cái input bõ để bạn chọn
 

quanthienhan

Thành viên hoạt động
Tham gia ngày
4 Tháng hai 2007
Bài viết
120
Được thích
3
Điểm
670
Tuổi
39
cảm ơn bạn nhiều..mình copy nó có cả công thức nên những ô đó không rỗng..mình pate sạng text là ok....mình dang loay hoay vọc vào macro của bạn..để chạy thử dữ liệu khoảng 500 dòng...mà không biết sửa như thế nào...hic.......đúng là có học có hơn.....
bạn ơi ..mình vừa làm thử với dữ liệu khoang 400 dòng..thì nó cho ra kết quả nhiều hơn mình làm bằng tay bạn ah...không biết phải thế nào làm thế nào nữa..bạn xem file mình làm có gì sai không nha
 

Let'GâuGâu

Thành viên mới
Tham gia ngày
12 Tháng chín 2013
Bài viết
3,144
Được thích
2,743
Điểm
560
Tuổi
48
bạn ơi ..mình vừa làm thử với dữ liệu khoang 400 dòng..thì nó cho ra kết quả nhiều hơn mình làm bằng tay bạn ah...không biết phải thế nào làm thế nào nữa..bạn xem file mình làm có gì sai không nha
làm làm đúng rồi, giải pháp của tôi cũng giống bạn mô tả vậy.
bươc1- tôi dictionary lọc ra giá trị duy nhất
2- tôi tính xem mỗi phân tử như vậy xuất hiện trên bao nhiêu hàng
3- lấy phân tử xuất hiện nhiều nhất lặp qua các hàng--> hàng nào có chứa phân tử đó thì loại nó ra khỏi vòng lặp sau--->tính lại tân suất xuất hiện của các phân tử còn lại trên các hàng còn lại--> lấy ra phân tử có tần xuất lớn nhất tiếp tục lặp cho đến số dòng trong bảng dữ liệu đã được chọn hết.

tranh thủ viết vài dòng cho bạn, tôi phải làm việc đây, tôi sẽ nghiêm ngẫm lại cách bạn làm rồi chỉnh code tôi lại xem sau
 

quanthienhan

Thành viên hoạt động
Tham gia ngày
4 Tháng hai 2007
Bài viết
120
Được thích
3
Điểm
670
Tuổi
39
làm làm đúng rồi, giải pháp của tôi cũng giống bạn mô tả vậy.
bươc1- tôi dictionary lọc ra giá trị duy nhất
2- tôi tính xem mỗi phân tử như vậy xuất hiện trên bao nhiêu hàng
3- lấy phân tử xuất hiện nhiều nhất lặp qua các hàng--> hàng nào có chứa phân tử đó thì loại nó ra khỏi vòng lặp sau--->tính lại tân suất xuất hiện của các phân tử còn lại trên các hàng còn lại--> lấy ra phân tử có tần xuất lớn nhất tiếp tục lặp cho đến số dòng trong bảng dữ liệu đã được chọn hết.

tranh thủ viết vài dòng cho bạn, tôi phải làm việc đây, tôi sẽ nghiêm ngẫm lại cách bạn làm rồi chỉnh code tôi lại xem sau
mình không biết nhiều về excel...bạn thử viết công thức theo cách tôi làm thủ công thế này nha..
bước 1 và bước 2..như của bạn..
bước 3..xóa các dòng có giá trị xuất hiện nhiều nhất...dữ liệu còn lại cũng sẽ làm như ban đâu.....có khác một chút là ...từ bước 3. của giá trị thứ 2 muốn lấy ...có thể sẽ có đồng thời từ..2 .đến nhiều giá trị có lần xuất hiện bằng nhau....vậy bạn có thể ưu tiên lấy giá trị...có lần xuất hiện của ( tổng dữ liệu ban đầu nhiều nhất được không ) đó là cách làm thủ công của tôi...
 
Lần chỉnh sửa cuối:

HungQuoc49

Thành viên tiêu biểu
Tham gia ngày
9 Tháng bảy 2014
Bài viết
683
Được thích
439
Điểm
435
mình không biết nhiều về excel...bạn thử viết công thức theo cách tôi làm thủ công thế này nha..
bước 1 và bước 2..như của bạn..
bước 3..xóa các dòng có giá trị xuất hiện nhiều nhất...dữ liệu còn lại cũng sẽ làm như ban đâu.....có khác một chút là ...từ bước 3. của giá trị thứ 2 muốn lấy ...có thể sẽ có đồng thời từ..2 .đến nhiều giá trị có lần xuất hiện bằng nhau....vậy bạn có thể ưu tiên lấy giá trị...có lần xuất hiện của ( tổng dữ liệu ban đầu nhiều nhất được không ) đó là cách làm thủ công của tôi...
bạn ơi ..mình vừa làm thử với dữ liệu khoang 400 dòng..thì nó cho ra kết quả nhiều hơn mình làm bằng tay bạn ah...không biết phải thế nào làm thế nào nữa..bạn xem file mình làm có gì sai không nha
Bài này dùng hàm giải quyết được tuy hơi phức tạp, tính được 28 nhóm ký tự
J3 K4 A5 G7 H8 L9 I10 E2 B6 I3 G9 I9 A9 A1 C8 H9 D11 B4 E4 B9 J11 C1 J10 A4 F7 B8 O4 C5
Tổng thì không biết thế nào
 
Top Bottom