Các câu hỏi về việc Đánh Số Thứ Tự (STT)

Liên hệ QC
Hướng dẫn về cách đánh Số Thứ Tự

Rất mong các anh em trên GPE xem và giúp cách đánh số thứ tự. Yêu cầu cụ thể trong file đính kèm. Cám ơn
 

File đính kèm

  • SoThuTu.xls
    17.5 KB · Đọc: 71
Rất mong các anh em trên GPE xem và giúp cách đánh số thứ tự. Yêu cầu cụ thể trong file đính kèm. Cám ơn
Anh dùng thử công thức này xem (cho cell D2)
PHP:
=IF(ISNUMBER($B2),RANK($B2,$B$2:$B$26,1)+COUNTIF($B$2:$B2,$B2)-1,"")
Anh test thử, không chắc có sai sót gì không!
 
rất mong các anh em trên gpe xem và giúp cách đánh số thứ tự. Yêu cầu cụ thể trong file đính kèm. Cám ơn
Dùng công thức mảng, kết hợp với số thứ tự dòng để xác định nếu cùng ngày thì cái nào xuất hiện trước. Công thức cho ô D2 (Công thức mảng)
Mã:
=IF(ISNUMBER(B2),SUMPRODUCT(--(B2+ROW(B2)/1000>=IF(ISNUMBER($B$2:$B$26),$B$2:$B$26+ROW($B$2:$B$26)/1000,""))),"")
Anh xem thêm trong file.
 

File đính kèm

  • SoThuTu1.xls
    24.5 KB · Đọc: 50
Anh dùng thử công thức này xem (cho cell D2)
PHP:
=IF(ISNUMBER($B2),RANK($B2,$B$2:$B$26,1)+COUNTIF($B$2:$B2,$B2)-1,"")
Anh test thử, không chắc có sai sót gì không!
---
Chú ơi làm sao anh fill được chú, dưới D2 là "X :số liệu". Bước nhảy đều nhau: D2 -> D7 -> D12 -> D17 -> D22 ....Cám ơn chú.
 
Lần chỉnh sửa cuối:
---
Chú ơi làm sao anh fil được chú, dưới D2 là "X :số liệu". Bước nhảy đều nhau: D2 -> D7 -> D12 -> D17 -> D22 ....Cám ơn chú.
Anh dùng AutoFilter lọc các ô đó ra, chọn các ô hiện (Visible Cells) rồi nhập công thức. Nhập xong nhấn Ctrl + Enter.
 
Anh dùng AutoFilter lọc các ô đó ra, chọn các ô hiện (Visible Cells) rồi nhập công thức. Nhập xong nhấn Ctrl + Enter.
AutoFilter xong, cứ nhập công thức và kéo fill thoải mái ---> Khỏi cần quan tâm đến Visible cell hay Ctrl + Enter gì cả!
 
AutoFilter xong, cứ nhập công thức và kéo fill thoải mái ---> Khỏi cần quan tâm đến Visible cell hay Ctrl + Enter gì cả!
Vụ này tôi với bạn đã có lần tranh luận với nhau rồi, hình như là copy khi đang Filter. Bạn không gặp phải trường hợp này không có nghĩa là nó không xảy ra.

Gửi anh tam8678
Theo yêu cầu của anh em chuyển công thức của NDU thành UDF
PHP:
Function SoThuTu(MyRng As Range, Rng As Range) As Long
SoThuTu = Application.WorksheetFunction.Rank(Rng, MyRng, 1) + Application.WorksheetFunction.CountIf(MyRng.Resize(Rng.Row + 1 - MyRng.Row), Rng) - 1
End Function
MyRng là cột dữ liệu
Rng là ô chứa ngày cần xác định số thứ tự.
 
Vụ này tôi với bạn đã có lần tranh luận với nhau rồi, hình như là copy khi đang Filter. Bạn không gặp phải trường hợp này không có nghĩa là nó không xảy ra.
Ấy ---> Excel 2007 có xãy ra sự cố này, nhưng đó là do người dùng thao tác sai
Thao tác đúng thì chẳng có sự cố nào ngoài ý muốn xãy ra cả!
Thao tác sai có nghĩa là: Lý ra phải chọn toàn bộ dữ liệu sau đó mới AutoFilter, đàng này có người làm biếng, chỉ chọn mổi tiêu đề ---> Sự cố ráng chịu chứ
Xem tại đây:
Copy dữ liệu sau khi dùng Auto Filter ???
Ở topic này tôi đã tìm cách tái hiện lại sự cố copy sau khi AutoFilter trên Excel 2007 rồi đấy ---> từ đó ta cũng biết cách mà ngừa
 
Lần chỉnh sửa cuối:
Anh dùng thử công thức này xem (cho cell D2)
PHP:
=IF(ISNUMBER($B2),RANK($B2,$B$2:$B$26,1)+COUNTIF($B$2:$B2,$B2)-1,"")
Anh test thử, không chắc có sai sót gì không!
---
Lỗi này do anh giả lập dữ liệu !$@!!. Vùng từ $B$2:$B$26, "X":dạng số, text, "". Chú xem có ý kiến nhé.
 
---
Lỗi này do anh giả lập dữ liệu !$@!!. Vùng từ $B$2:$B$26, "X":dạng số, text, "". Chú xem có ý kiến nhé.
Vì dữ liệu lặp lại theo một nguyên tắc cố định (Cứ cách a dòng thì xuất hiện một dòng ngày tháng cần đánh số thứ tự nên em sửa lại UDF như thế này:
PHP:
Function SoThuTu(MyRng As Range, Rng As Range, MyStep As Long) As Long
For i = 1 To Int((MyRng.Rows.Count - 1) / MyStep) + 1
    If Rng.Value > MyRng.Cells((i - 1) * MyStep + 1) Then
        SoThuTu = SoThuTu + 1
    End If
    If Rng.Value = MyRng.Cells((i - 1) * MyStep + 1) And MyRng.Cells((i - 1) * MyStep + 1).Row <= Rng.Row Then
        SoThuTu = SoThuTu + 1
    End If
Next
End Function
Cú pháp:
Mã:
=SoThuTu(MyRng,Rng,MyStep)
MyRng là cột dữ liệu
Rng là ô chứa dữ liệu cần đánh số thứ tự
MyStep là bước nhảy của dữ liệu

Anh xem thêm trong file đính kèm
 

File đính kèm

  • GPE.xls
    48.5 KB · Đọc: 39
Vì dữ liệu lặp lại theo một nguyên tắc cố định (Cứ cách a dòng thì xuất hiện một dòng ngày tháng cần đánh số thứ tự nên em sửa lại UDF như thế này:
PHP:
Function SoThuTu(MyRng As Range, Rng As Range, MyStep As Long) As Long
For i = 1 To Int((MyRng.Rows.Count - 1) / MyStep) + 1
If Rng.Value > MyRng.Cells((i - 1) * MyStep + 1) Then
SoThuTu = SoThuTu + 1
End If
If Rng.Value = MyRng.Cells((i - 1) * MyStep + 1) And MyRng.Cells((i - 1) * MyStep + 1).Row <= Rng.Row Then
SoThuTu = SoThuTu + 1
End If
Next
End Function
Cú pháp:
Mã:
=SoThuTu(MyRng,Rng,MyStep)
MyRng là cột dữ liệu
Rng là ô chứa dữ liệu cần đánh số thứ tự
MyStep là bước nhảy của dữ liệu

Anh xem thêm trong file đính kèm
---
+-+-+-+ Thật tình đọc UDF của huuthang_bd thấy "lơ mơ" quá. Th vui lòng hướng dẫn được không? Chúc vui.
* P/s: sau khi có số phiếu theo số thứ tự thì làm thế nào để sắp xếp phiếu theo thứ tự 1, 2, 3, ....
 
Lần chỉnh sửa cuối:
+-+-+-+ Thật tình đọc UDF của huuthang_bd thấy "lơ mơ" quá. Th vui lòng hướng dẫn được không? Chúc vui.

Đây là code của UDF được đánh số thứ tự:
PHP:
01 Function SoThuTu(MyRng As Range, Rng As Range, MyStep As Long) As Long
02 For i = 1 To Int((MyRng.Rows.Count - 1) / MyStep) + 1
03 If Rng.Value > MyRng.Cells((i - 1) * MyStep + 1) Then
04 SoThuTu = SoThuTu + 1
05 End If
06 If Rng.Value = MyRng.Cells((i - 1) * MyStep + 1) And MyRng.Cells((i - 1) * MyStep + 1).Row <= Rng.Row Then
07 SoThuTu = SoThuTu + 1
08 End If
09 Next
10 End Function
Đây là ý nghĩa từng dòng Code, lấy ví dụ MyRng = [A1:A17], Step = 5
Dòng 01: Khai báo hàm
Dòng 02, 09: Cho i duyệt từ 1 đến n (n là kết quả của biểu thức Int((MyRng.Rows.Count - 1) / MyStep) + 1 là số ô cần xếp thứ tự trong cột dữ liệu. Theo ví dụ thì Int((MyRng.Rows.Count - 1) / MyStep) + 1 = Int((17 - 1) / 5) + 1) = 4
Dòng 03, 04, 05: Tính xem ô cần đánh số thứ tự (Rng) lớn hơn bao nhiêu ô trong số các ô cần đánh số thứ tự (Khi i duyệt từ 1 đến n thì kết quả biểu thức MyRng.Cells((i - 1) * MyStep + 1) lần lượt là các ô cần đánh số thứ tự trong cột dữ liệu. Trong ví dụ, khi i duyệt từ 1 đến 4 (n=4) thì (i - 1) * MyStep + 1 lần lượt nhận các giá trị 1, 6, 11, 16; MyRng.Cells((i - 1) * MyStep + 1) lần lượt là các ô cần đánh số thứ tự: A1, A6, A11, A16).
Dòng 06, 07, 08: Xét xem trong cột dữ liệu ô cần đánh số thứ tự (Rng) là ô thứ mấy có giá trị bằng ô cần đánh số thứ tự. Đoạn code MyRng.Cells((i - 1) * MyStep + 1).Row <= Rng.Row có nghĩa là chỉ xét các ô từ ô đầu tiên đến ô cần đánh số thứ tự.
Dòng 10: Kết thúc hàm

UDF này về code thì không có gì mới cả, chỉ hơi rắc rối phần thuật toán thôi. Giải thích như vậy không biết anh có hiểu không.

* P/s: sau khi có số phiếu theo số thứ tự thì làm thế nào để sắp xếp phiếu theo thứ tự 1, 2, 3, ....
Để sort theo số thứ tự anh cần một cột phụ vì cột số thứ tự của anh có lẫn cả dữ liệu trong đó.
Ví dụ cột số thứ tự của anh là cột D, bắt đầu từ D5, cột phụ là cột E. Cách làm thế này:
Lọc ra các dòng được đánh số thứ tự, nhập công thức cho ô E5=D5, fill xuống.
Lọc các dòng không được đánh số thứ tự, nhập công thức cho ô E6=E5, fill xuống.
Sau đó sort theo cột phụ (Cột E)
 
Lần chỉnh sửa cuối:
Đánh lại số thứ tự mới khi chuyển qua 1 mã mới

E gửi file nhờ anh chị giỏi excel giải giúp e. Quả thật e còn phải học hỏi rất nhiều. Cột tô màu cam là cột e cần đánh số thứ tự theo kiểu cứ sang 1 mục tiêu khác là số thứ tự đánh lại từ số 1. Tạm thời e đánh tay vì ko nghĩ ra công thức +-+-+-+. Mong anh chị giúp e. E cảm ơn trước. /-*+/

Tôi chưa hiểu ý của bạn. Bạn có thẻ giải thích rõ hơn không?

Dạ. Cột F là cột e muốn lập công thức. Hiện tại e đánh bằng tay cột F vì ko nghĩ ra công thức. Gài công thức cột F dựa theo mã cột D (Mục Tiêu), tức là cứ 1 mục tiêu mới là đánh số thứ tự lại ạ. Chứ ko đánh số thứ tự luôn tuồng như cột E. Anh chị hiểu ý e ko ạ :.,
 

File đính kèm

  • Mau.xls
    26 KB · Đọc: 28
Chỉnh sửa lần cuối bởi điều hành viên:
Chào bạn.
Bạn xem công thức của mình có đúng ý của bạn chưa?
 

File đính kèm

  • Copy of Mau-2.xls
    26.5 KB · Đọc: 27
Dùng công thức:
=IF(D3=D2;F2+1;1)
Rồi điềm xuống
 
Dùng công thức:
=IF(D3=D2;F2+1;1)
Rồi điềm xuống

Bác Sealand ơi với trường hợp là các "Mục tiêu" của tác giả đưa ra lặp lại nhưng không liên tiếp nhau thì sao ạ? Thí dụ các "mục tiêu" lặp lại này nó nằm trên các ô như D4, D6, D8 ... như vậy mình phải Sort trước hả bác?Có công thức nào không cần Sort nhưng vẫn điền được thứ tự tăng không ạ? và không sử dụng VBA nữa bác nhe! :D
 
Lần chỉnh sửa cuối:
Bạn lại không đọc kỹ yêu cầu của bạn ấy rồi,
cứ sang 1 mục tiêu khác là số thứ tự đánh lại từ số 1
Còn theo ý bạn có thể như thế này (O F11):

=IF(B11=B10,F10+1,COUNTIF($B$2:B11,B11))

Hoặc đơn giản hơn:

=COUNTIF($B$2:B3,B3)
 
Lần chỉnh sửa cuối:
Dạ. Cột F là cột e muốn lập công thức. Hiện tại e đánh bằng tay cột F vì ko nghĩ ra công thức. Gài công thức cột F dựa theo mã cột D (Mục Tiêu), tức là cứ 1 mục tiêu mới là đánh số thứ tự lại ạ. Chứ ko đánh số thứ tự luôn tuồng như cột E. Anh chị hiểu ý e ko ạ :.,
Đặt công thức sau
=IF(ISBLANK($D3),"",COUNTIF($D$2:$D3,D3))
rồi fill khi nào chán thì thôi
 
Web KT

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

Back
Top Bottom