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

Liên hệ QC

quanthienhan

Thành viên hoạt động
Tham gia
4/2/07
Bài viết
120
Được thích
3
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..
 
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

  • timkiemdulieu.rar
    18.7 KB · Đọc: 44
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..
 
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)
 
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..
 
buồn quá..sao không ai ghé qua hộ em với
 
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..
 
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.
 
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

  • timkiemdulieu.xls
    40 KB · Đọc: 14
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

  • timkiemdulieu.rar
    20.7 KB · Đọc: 15
Lần chỉnh sửa cuối:
đâ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.
 
đâ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:
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:
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.....
 
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
 
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
 
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
 
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:
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
 
Web KT
Back
Top Bottom