Sử dụng hàm để điền số thứ tự có dữ liệu trùng nhau.

Chia sẻ bởi:hands
★★★★★
Quảng cáo

Tôi đang thực hiện việc đánh số thứ tự trên bảng có nhiều dữ liệu trùng nhau nhưng không phải điền những số liền nhau cho dữ liệu bị trùng (như cũ). Yêu cầu ghi từ số mấy đến số mấy (theo yêu cầu của cột màu xanh trong tập tin đính kèm). Sau này, tôi sẽ cắt bỏ những hàng có dữ liệu (tên sách) là như trên
Nhờ các bạn giúp đỡ.
Cám ơn.

Mình chỉ viết được macro trong trường hợp này thôi,. . .

Option Explicit

Sub DienSTT()
Dim Rng As Range, Cls As Range
Dim Lap As Long, eRw As Long
Const NT As String = "nt"

On Error Resume Next
eRw = .End(xlUp).Row + 1
For Each Cls In Range("B2:B" & eRw)
If Left(Cls.Offset(, 2), 2) <> NT Then
Cls.Offset(, -1) = Cls.Value
Cls.Offset(, -1).Interior.ColorIndex = 35
If Cls.Offset(-1, 2) = NT Then
Rng.Value = Rng.Value & "-" & Cls.Offset(-1).Value
Rng.Interior.ColorIndex = 38
Set Rng = Nothing
ElseIf Cls.Offset(1, 2).Value = NT Then
Set Rng = Cls.Offset(, -1)
End If
End If
Next Cls
End Sub

Thử làm bài này với 1 cột phụ
– Công thức tại E2
=IF($D2="nt",0,COUNTIF($D2:$D$26,"nt")-SUM($E3:$E$27))kéo fill xuống
– Công thức tại A2
=IF($D2="nt","",IF($E2=0,ROWS($1:1),ROWS($1:1)&"-"&ROWS($1:1)+$E2))

Cám ơn ndu rất nhiều. Tôi đã làm xong, tuy nhiên có những điều chưa hiểu và đôi khi không như ý muốn.
1-.Trường hợp các cột không đúng vị trí như bảng mẫu.
2-.Tôi không hiểu ở chỗ SUM(E$3:$E$27) trong
=IF($D2="nt",0,COUNTIF($D2:$D$26,"nt")-SUM($E3:$E$27))
vì khi tại E2 thì ($E3:$E$27) đều là trống thì SUM của nó vẫn là 0.
Nhờ bạn có thể nói rõ thêm hơn. Cám ơn nhiều.

Đại khái là: Đếm nếu ra kết quả thì phải loại bỏ hết những kết quả đã đếm trước đó! Thế thôi!
Để hiểu rõ công thức này, bạn phải nhập công thức đầu tiên tại E26, xong kéo fill ngược lên trên —> Tức kết quả ở trên có được là nhờ tính toán ở dưới mà ra

www.giaiphapexcel.com/diendan/threads/s%E1%BB%AD-d%E1%BB%A5ng-h%C3%A0m-%C4%91%E1%BB%83-%C4%91i%E1%BB%81n-s%E1%BB%91-th%E1%BB%A9-t%E1%BB%B1-c%C3%B3-d%E1%BB%AF-li%E1%BB%87u-tr%C3%B9ng-nhau.40347/post-267803

Kỹ năng giải quyết vấn đề hiệu quả
Khóa học SprinGO phù hợp

Kỹ năng giải quyết vấn đề hiệu quả

Mô tả Nội dung Đánh giá Tài nguyên KỸ NĂNG GIẢI QUYẾT VẤN ĐỀ HIỆU QUẢHiểu đúng vấn đề là một nửa của giải...

Xem khóa học
★★★★★ 5 ★ 1 👤 3 ▥ 0
Quảng cáo

Bạn nên đọc

3 Responses

  1. hands says:

    Cám ơn bạn. Từ trước đến giờ tôi chưa nghĩ ra việc ghi công thức trước rồi nhận các giá trị sau. Tôi đã hiểu ra, khi ở E2 thì (E3:E27) vẫn còn trống nhưng khi đã kéo xuống thì lúc ấy nó đã có giá trị hẳn hoi. Công thức sẽ tính được bằng giá trị lúc bấy giờ.
    Tài lắm.

    Nếu muốn xóa dòng tên sách "nt" rồi đánh số lại như vậy
    Thì có thể làm như thế này được không? (xem file đính kèm)

    http://www.giaiphapexcel.com/diendan/threads/s%E1%BB%AD-d%E1%BB%A5ng-h%C3%A0m-%C4%91%E1%BB%83-%C4%91i%E1%BB%81n-s%E1%BB%91-th%E1%BB%A9-t%E1%BB%B1-c%C3%B3-d%E1%BB%AF-li%E1%BB%87u-tr%C3%B9ng-nhau.40347/post-267934

  2. hands says:

    Xin chào,

    Em là người mới mong mọi người giúp đỡ
    Em có 1 file đính kèm muốn đánh số thứ tự sao cho tên khách hàng giống nhau sẽ là 1 số thứ tự, nhưng làm hoài không ra hichichic. Xin cam ơn

    giống nhau và liền nhau như thế, bạn có thể dùng công thức sau cho A4

    =IF(C4=C3,A3,A3+1)

    copy xuống cho các A5,A6,….

    cách này thì em đã làm rồi nhưng không thỏa đáng vì nếu nhập 1 khách hàng trùng với khách hàng cũ phía trên thì nó đếm không đúng. Có cách nào tối ưu hơn không ạ? Xin cám ơn

    Tìm ô trùng phía trên, nếu có thì không đếm:
    Tại ô A5:

    =IF(COUNTIF($C$4:C4,C5)>=1,"",MAX($A$3:A4)+1)

    Copy xuống là OK

    http://www.giaiphapexcel.com/diendan/threads/s%E1%BB%AD-d%E1%BB%A5ng-h%C3%A0m-%C4%91%E1%BB%83-%C4%91i%E1%BB%81n-s%E1%BB%91-th%E1%BB%A9-t%E1%BB%B1-c%C3%B3-d%E1%BB%AF-li%E1%BB%87u-tr%C3%B9ng-nhau.40347/post-318982

    Chắc Bạn muốn nó đánh số như thế này?

    http://www.giaiphapexcel.com/diendan/threads/s%E1%BB%AD-d%E1%BB%A5ng-h%C3%A0m-%C4%91%E1%BB%83-%C4%91i%E1%BB%81n-s%E1%BB%91-th%E1%BB%A9-t%E1%BB%B1-c%C3%B3-d%E1%BB%AF-li%E1%BB%87u-tr%C3%B9ng-nhau.40347/post-319039

  3. hands says:

    Chào các anh chị, em có 1 file cần đánh số thứ tự như thế này:
    STT HỌ VÀ TÊN SỐ TIỀN TÍNH TỔNG SỐ TIỀN
    1 Nguyễn Văn A 5000 5.000
    2 Nguyễn Văn B 5000 12.000
    Nguyễn Văn B 7000
    3 Nguyễn Văn C 100000 10,000
    ……

    Em thử nhiều cách nhưng không tính ra được, rất mong các anh, chị giúp đỡ ạ. Em cảm ơn rất nhiều!!!!!

    Bạn thử nhiều cách nhưng có lẽ chưa thử cách này:

    A2=IF(COUNTIF($B$1:B1;B2);"";MAX($A$1:A1)+1)

    Copy xuống.

    cảm ơn Ba Tê rất nhiều!!!! Xin hỏi thêm là có cách nào để tính tổng số tiền tương ứng cho một người ko?

    =IF(COUNTIF($B$2:$B2,$B2)=1,SUMIF($B$2:$B$9,$B2,$C$2:$C$9),)

Leave a Reply

Your email address will not be published. Required fields are marked *

Quảng cáo

Cũ vẫn chất

Xem thêm