Đánh số thứ tự liên tiếp (1 người xem)

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

kobebryant

Thành viên thường trực
Tham gia
7/8/09
Bài viết
248
Được thích
28
Mình có bài tập yêu cầu đánh số liên tiếp cho các mã theo yêu cầu để tiến hành lọc riêng ra, các mã còn lại trong cùng bảng ko phải mã yêu cầu sẽ ko được đánh số.
Bạn nào giúp mình với nhé
Chân thành cám ơn
 

File đính kèm

Bạn dung công thức này xem
Mã:
=IF(AND(LEFT(C3,2)<>"PC",LEFT(C3,2)<>"LP"),0,IF(COUNTIF($C$2:C3,C3)=1,MAX($A$1:A2)+1,MAX($A$1:A2)))
Công thức đặt tại A2
 
Ráp vào thấy báo sai ở ngay cái C3 trong công thức LEFT bạn ạ, mình đang ở hàng thứ 2 thì mình nghĩ đó là C2, nhưng mình sửa 2 cái LEFT thành C2 nó vẫn báo lỗi ở đấy
 
Bạn dung công thức này xem
Mã:
=IF(AND(LEFT(C3,2)<>"PC",LEFT(C3,2)<>"LP"),0,IF(COUNTIF($C$2:C3,C3)=1,MAX($A$1:A2)+1,MAX($A$1:A2)))
Công thức đặt tại A2

công thức này phải A3 mới đúng, copy lên A2 và các ô khác

Tuy nhiên công thức trên chỉ đúng khi Mã hàng hoá nếu giống nhau thì phải liên tục, sẽ sai khi mã hàng hoá giống nhau mà không nằm ở các cell liên tục (ví dụ giờ thay giá tri C13 thành LP127 --> sẽ thấy sai ngay)

Khắc phục công thức mới cho chuẩn cả trường hợp dữ liệu không liên tục:

Công thức cho cell A2:

=OR(LEFT(C2,2)="PC",LEFT(C2,2)="LP")*IF(MATCH(C2,$C$2:$C2,0)=ROW(C2)-ROW($C$2)+1,1+MAX($A$1:A1),OFFSET($A$2,MATCH(C2,$C$2:$C2,0)-1,0 ))

copy down cho các cells còn lại
 
Lần chỉnh sửa cuối:
2 đại hiệp đã ra tay giúp tiểu đệ
 
Cũng có thể áp dụng công thức này:
B2 =IF(OR(LEFT(C2;2)="LP";LEFT(C2;2)="PC");IF(COUNTIF($C$1:C2;C2)=1;MAX($B$1:B1)+1;INDIRECT("B" & MATCH(C2;$C$1:C2;0)));0)
 
công thức này phải A3 mới đúng, copy lên A2 và các ô khác

Tuy nhiên công thức trên chỉ đúng khi Mã hàng hoá nếu giống nhau thì phải liên tục, sẽ sai khi mã hàng hoá giống nhau mà không nằm ở các cell liên tục (ví dụ giờ thay giá tri C13 thành LP127 --> sẽ thấy sai ngay)

Khắc phục công thức mới cho chuẩn cả trường hợp dữ liệu không liên tục:

Công thức cho cell A2:

=OR(LEFT(C2,2)="PC",LEFT(C2,2)="LP")*IF(MATCH(C2,$C$2:$C2,0)=ROW(C2)-ROW($C$2)+1,1+MAX($A$1:A1),OFFSET($A$2,MATCH(C2,$C$2:$C2,0)-1,0 ))

copy down cho các cells còn lại

Mình làm được rồi, trong công thức có khoảng trắng. Thanks bạn rất rất nhiều
 
Lần chỉnh sửa cuối:
Khắc phục công thức mới cho chuẩn cả trường hợp dữ liệu không liên tục:

Công thức cho cell A2:

=OR(LEFT(C2,2)="PC",LEFT(C2,2)="LP")*IF(MATCH(C2,$C$2:$C2,0)=ROW(C2)-ROW($C$2)+1,1+MAX($A$1:A1),OFFSET($A$2,MATCH(C2,$C$2:$C2,0)-1,0 ))

copy down cho các cells còn lại

Hoặc thế này cho dễ hiểu
=IF(OR(LEFT(C2,2)="PC",LEFT(C2,2)="LP"),IF(MATCH(C2,$C$2:$C2,0)=ROW(C2)-ROW($C$2)+1,1+MAX($A$1:A1),OFFSET($A$2,MATCH(C2,$C$2:$C2,0)-1,0 )),0)

áp cho cell A2, copy cho các cells còn lại
 
Bạn thử công thức này cho ô A2, dành cho trường hợp cách nhau
Mã:
=IF(AND(LEFT(C2,2)<>"PC",LEFT(C2,2)<>"LP"),0,IF(COUNTIF($C$2:C2,C2)=1,MAX($A$1:A1)+1,OFFSET($A$1,MATCH(C2,$C$2:$C$12,0),0)))
 
Hoặc thế này cho dễ hiểu
=IF(OR(LEFT(C2,2)="PC",LEFT(C2,2)="LP"),IF(MATCH(C2,$C$2:$C2,0)=ROW(C2)-ROW($C$2)+1,1+MAX($A$1:A1),OFFSET($A$2,MATCH(C2,$C$2:$C2,0)-1,0 )),0)

áp cho cell A2, copy cho các cells còn lại

Cái này dễ hiểu hơn thật, cái trên có liên kết hàm bằng dấu "*" nên mình ko hiểu, bạn giỏi wá
 

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

Back
Top Bottom