Làm sao để lọc có điều kiện và sắp xếp theo ý mình muốn (1 người xem)

Liên hệ QC

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

Thầy ơi , con không hiểu tại sao tới B501 thì nó báo lỗi mặt dù có nhiều hơn gấp đôi của B501 , hay chắc con không hiểu rõ công thức thầy viết nên ko biết sửa sao , khi con sửa =MID(OFFSET(INDEX($A$2:$A$1000,SMALL(IF((LEFT($A$2:$A$1000,2)="TK")+(LEFT($A$3:$A$1001,2)="MK")=2,ROW($1:$999),""),ROWS($1:1))),COLUMNS($A:A)-1,0),5,50) thành 10000 và 10001 thì nó báo lỗi
 
Thầy ơi , con không hiểu tại sao tới B501 thì nó báo lỗi mặt dù có nhiều hơn gấp đôi của B501 , hay chắc con không hiểu rõ công thức thầy viết nên ko biết sửa sao , khi con sửa B502=MID(OFFSET(INDEX($A$2:$A$1000,SMALL(IF((LEFT($A$2:$A$1000,2)="TK")+(LEFT($A$3:$A$1001,2)="MK")=2,ROW($1:$999),""),ROWS($1:1))),COLUMNS($A:A)-1,0),5,50) thành 10000 và 10001 thì nó báo lỗi
Nhc.png
 

File đính kèm

Lần chỉnh sửa cuối:
Thầy ơi , con không hiểu tại sao tới B501 thì nó báo lỗi mặt dù có nhiều hơn gấp đôi của B501 , hay chắc con không hiểu rõ công thức thầy viết nên ko biết sửa sao , khi con sửa =MID(OFFSET(INDEX($A$2:$A$1000,SMALL(IF((LEFT($A$2:$A$1000,2)="TK")+(LEFT($A$3:$A$1001,2)="MK")=2,ROW($1:$999),""),ROWS($1:1))),COLUMNS($A:A)-1,0),5,50) thành 10000 và 10001 thì nó báo lỗi
Nhc.png

Bạn sửa công thức ở ngoài nhưng hình như bạn đã quên sửa theo trong phần name bạn ạ. Và bạn kiểm tra lại hàm theo như mình thấy đk trong ROW chỉ xét đến cell 501 thôi. Bạn xem và chỉnh lại xem sao vì mình lên bằng đt nên làm Gia Cát Dự và hy vọng đúng.
 
Lần chỉnh sửa cuối:
sửa phần name ở đâu anh ??? em mới gắn lại cái file r`
 
Thầy ơi , con không hiểu tại sao tới B501 thì nó báo lỗi mặt dù có nhiều hơn gấp đôi của B501 , hay chắc con không hiểu rõ công thức thầy viết nên ko biết sửa sao , khi con sửa =MID(OFFSET(INDEX($A$2:$A$1000,SMALL(IF((LEFT($A$2:$A$1000,2)="TK")+(LEFT($A$3:$A$1001,2)="MK")=2,ROW($1:$999),""),ROWS($1:1))),COLUMNS($A:A)-1,0),5,50) thành 10000 và 10001 thì nó báo lỗi

Bạn sửa thành
Mã:
=MID(OFFSET(INDEX($A$2:$A$[B][COLOR=#ff0000]10000[/COLOR][/B],SMALL(IF((LEFT($A$2:$A$[B][COLOR=#ff0000]10000[/COLOR][/B],2)="TK")+(LEFT($A$3:$A$[B][COLOR=#ff0000]10001[/COLOR][/B],2)="MK")=2,ROW($1:$[B][COLOR=#ff0000]9999[/COLOR][/B]),""),
ROWS($1:1))),COLUMNS($A:A )-1,0),5,50)

Những chỗ sửa tôi tô mầu đỏ
Nếu dữ liệu nhiều quá thì có lẽ nên dùng hàm tự tạo?
-----

Không nhất thiết phải sửa thành 10000. Nếu bạn chỉ có tới vd. A1020 thì nhập 1020, 1020, 1021, 1019.
Tôi không dùng code để xác định dòng cuối cho code đơn giản
 
Lần chỉnh sửa cuối:
Bạn sửa công thức ở ngoài nhưng hình như bạn đã quên sửa theo trong phần name bạn ạ. Và bạn kiểm tra lại hàm theo như mình thấy đk trong ROW chỉ xét đến cell 501 thôi. Bạn xem và chỉnh lại xem sao vì mình lên bằng đt nên làm Gia Cát Dự và hy vọng đúng.

Công thức trong đoạn trích có dùng name đâu? Đó là phiên bản không dùng name đề phòng người hỏi chưa biết tạo name mà.
 
Bạn sửa thành
Mã:
=MID(OFFSET(INDEX($A$2:$A$[B][COLOR=#ff0000]10000[/COLOR][/B],SMALL(IF((LEFT($A$2:$A$[B][COLOR=#ff0000]10000[/COLOR][/B],2)="TK")+(LEFT($A$3:$A$[B][COLOR=#ff0000]10001[/COLOR][/B],2)="MK")=2,ROW($1:$[B][COLOR=#ff0000]9999[/COLOR][/B]),""),ROWS($1:1))),COLUMNS($A:A )-1,0),5,50)

Những chỗ sửa tôi tô mầu đỏ
Nếu dữ liệu nhiều quá thì có lẽ nên dùng hàm tự tạo?

Thầy ơi cho em hỏi lý do tại sao bạn ấy kéo xuống đến cell 501 thì bị lỗi vậy thưa thầy trong khi mình set dữ liệu đến 1000. Nếu như thế thầy sửa thành 10000 vậy liệu nếu đến cell 5001 có thể bị tiếp ko thưa thầy? Mong thầy thông cảm em dốt nên hay hỏi ngu nếu sai mong bỏ qua nhưng thật lòng muốn tìm hiểu để rõ và ứng dụng nếu gặp. Cảm ơn thầy.
 
Thầy ơi cho em hỏi lý do tại sao bạn ấy kéo xuống đến cell 501 thì bị lỗi vậy thưa thầy trong khi mình set dữ liệu đến 1000. Nếu như thế thầy sửa thành 10000 vậy liệu nếu đến cell 5001 có thể bị tiếp ko thưa thầy? Mong thầy thông cảm em dốt nên hay hỏi ngu nếu sai mong bỏ qua nhưng thật lòng muốn tìm hiểu để rõ và ứng dụng nếu gặp. Cảm ơn thầy.

Hôm nay ngày nghỉ nên tôi làm vài lon. Tôi không suy nghĩ gì cả. Lỗi là người hỏi nói thế chứ tôi và bạn có tập tin nào đâu để mà biết thực hư?
 
Mọi người bàn về công thức cũng khá nhiều rồi. Mình xin góp vui một tham khảo nữa cho chủ thớt bằng VBA (bữa nay đang học Array nên nhìn thứ gì cũng nghĩ đến Array cả!):
Mà bài này đúng ra là bài toán tách dữ liệu chứ đâu phải lọc và sắp xếp nhỉ?!
[GPECODE=vb]Sub TachDuLieu()
Dim Temp, Arr(), i As Long, n As Long
Temp = WorksheetFunction.Transpose(Sheet1.[A2:A5000])
ReDim Arr(1 To UBound(Temp), 1 To 2)
Do
Do
i = i + 1
Loop Until Left(Temp(i), 3) <> Left(Temp(i + 1), 3)
n = n + 1
Arr(n, 1) = LTrim(Replace(Temp(i), "TK:", ""))
Do
i = i + 1
Loop Until Left(Temp(i), 3) <> Left(Temp(i + 1), 3)
Arr(n, 2) = LTrim(Replace(Temp(i), "MK:", ""))
Loop Until Len(Temp(i + 1)) = 0
Sheet1.[B2:C5000].Clear
With Sheet1.[B2].Resize(n, 2)
.NumberFormat = "@"
.Value = Arr
End With
End Sub[/GPECODE]
 

File đính kèm

Web KT

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

Back
Top Bottom