buithanhlong
Thành viên hoạt động



- Tham gia
- 8/6/10
- Bài viết
- 176
- Được thích
- 141
Bạn thử nhập công thức này cho ô A7 rồi copy xuống thử xem sao:Nhờ các bác giúp em code đánh số thứ tự cho cột thu -chi, khi phát sinh số tiền thu hoặc chi tương ứng, em gửi kèm file. Rất mong được giúp đỡ. Trân trọng cám ơn
=IF(E7<>"";MAX($A$6:A6)+1;"")
Cám ơn Bác nhiều nhiều, nhưng em đã nhập thử công thức, máy báo lỗi ở phần if(E7<>"", có phải công thức này là khi e7>0 phải không Bác. Mong hồi âm của Bác. Trân trọng cám ơn
Bạn giải thích rõ hơn đi, Tôi không hiểu lắm!cÒN VẤN ĐỀ CỦA MÌNH THÌ NHƯ THẾ NÀY: MÌNH MUỐN ĐÁNH SỐ THỨ TỰ CHO CÁC SẢN PHẨM VÀ MÃ GIỐNG NHAU, VẬY MÌNH PHẢI LÀM THẾ NÀO
cÒN VẤN ĐỀ CỦA MÌNH THÌ NHƯ THẾ NÀY: MÌNH MUỐN ĐÁNH SỐ THỨ TỰ CHO CÁC SẢN PHẨM VÀ MÃ GIỐNG NHAU, VẬY MÌNH PHẢI LÀM THẾ NÀO
Đã hiểu rồi, bạn dùng công thức sau tại C2 nhé!cÒN VẤN ĐỀ CỦA MÌNH THÌ NHƯ THẾ NÀY: MÌNH MUỐN ĐÁNH SỐ THỨ TỰ CHO CÁC SẢN PHẨM VÀ MÃ GIỐNG NHAU, VẬY MÌNH PHẢI LÀM THẾ NÀO
=IF(B2<>"";COUNTIF($B$2:$B2;B2);"")
Nhờ các bác giúp em code đánh số thứ tự cho cột thu -chi, khi phát sinh số tiền thu hoặc chi tương ứng, em gửi kèm file. Rất mong được giúp đỡ. Trân trọng cám ơn
Đưa File nên đây thì mới giúp bạn được chứ.nếu không dùng lệnh trên excel mà dùng vba thì làm sao ?![]()
Nhờ các bác giúp em đánh số biên lai theo thời gian thu tiền. Em gửi kèm file. Mong các bác giúp đỡ. Em xin cám ơn.
nếu không dùng lệnh trên excel mà dùng vba thì làm sao ?![]()
nhưng chưa thấy, vậy mình thực hiện cho cả 2 file có ở trên:Đưa File nên đây thì mới giúp bạn được chứ.
Option Explicit
Const SoDong% = 3210
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng As Range, Cls As Range
Dim Max_ As Double
If Not Intersect(Target, Range("E7:E" & SoDong)) Is Nothing Then
Set Rng = Range("A7:A" & Target.Row - 1)
For Each Cls In Rng
If Cls.Value > Max_ Then Max_ = Cls.Value
Next Cls
Cells(Target.Row, "A").Value = 1 + Max_
ElseIf Not Intersect(Target, Range("F7:F" & SoDong)) Is Nothing Then
Set Rng = Range("B7:B" & Target.Row - 1)
For Each Cls In Rng
If Cls.Value > Max_ Then Max_ = Cls.Value
Next Cls
Cells(Target.Row, "B").Value = 1 + Max_
End If
End Sub
Option Explicit
Const SoDong% = 3210
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng As Range, sRng As Range
Dim MyAdd$, SF$, Max_%
If Not Intersect(Target, Range("B2:B" & SoDong)) Is Nothing Then
Set Rng = Range("B1:B" & Target.Row - 1)
Set sRng = Rng.Find(Target.Value, , xlFormulas, xlWhole)
If sRng Is Nothing Then
Target.Offset(, 1).Value = 1
Else
MyAdd = sRng.Address
SF = sRng.Offset(, -1).Value
Do
If sRng.Offset(, -1).Value = SF Then Max_ = sRng.Offset(, 1).Value
Set sRng = Rng.FindNext(sRng)
Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
Target.Offset(, 1).Value = 1 + Max_
End If
End If
End Sub
Bạn thử xài công thức sau tại A4=IF(ROW()-3<=$B$1,ROW()-3,"")Anh em giúp mình code VBA đánh số thứ tự từ 1 đến số max 300 nhe. Thanks a lot
Anh em giúp mình code VBA đánh số thứ tự từ 1 đến số max 300 nhe. Thanks a lot
Public Sub STT()
Dim i As Long
With Sheet1
For i = 4 To 303
.Range("A" & i) = "=R[-1]C+1"
Next i
End With
End Sub
- Nếu Excel 2003 cột số biên lai, tại B8 bạn dùng hàm.
=COUNTIF($A$8:A8,A8)
- Nếu Excel 2010 cột số biên lai, tại B8 bạn dùng hàm.
=COUNTIFS($A$8:A8,A8)
Rồi Fill xuống, nếu không được thì thay dấu phẩy (,) thành dấu chấm phẩy (;)
Bạn thử công thức này tại [D2] =COUNTIF(B$2:B2,B2)Mọi người xem giúp em File đánh số thứ tự theo nhiều điều kiện.
Thanks!
Bác xem lại giúp em, công thức trên chưa đúng ak.Bạn thử công thức này tại [D2] =COUNTIF(B$2:B2,B2)
trường hợp của bạn là đánh số thứ tự bình thường.Mọi người xem giúp em File đánh số thứ tự theo nhiều điều kiện.
Thanks!
Công thức của bạn không đúng rùi, bạn xem lại nhétrường hợp của bạn là đánh số thứ tự bình thường.
CT ô B8: =IF(A8="","",ROW()-7)
khuyến mãi thêm CT ô C8: =IF(A8="","","0"&INT((ROW()-8)/30)+1&$E$2)
Trước hết bạn chèn thêm dòng trống ở giữa dòng 1 và dòng 2 (Bây giờ dòng 2 sẽ không có dữ liệu bạn có thể ẩn nó tùy ý), tại ô D3 gõ công thức nhe sau:Mọi người xem giúp em File đánh số thứ tự theo nhiều điều kiện.
Thanks!
=IFERROR(MAX(INDEX(($B$2:$B2=B3)*($D$2:$D2),0))+IF(AND(COUNTIF($B$2:B2,B3)<>0,COUNTIF($E$2:E2,E3)<>0),0,1),1)
sorry trả lời nhầm chổ, CT của mục #21Công thức của bạn không đúng rùi, bạn xem lại nhé
Trước hết bạn chèn thêm dòng trống ở giữa dòng 1 và dòng 2 (Bây giờ dòng 2 sẽ không có dữ liệu bạn có thể ẩn nó tùy ý), tại ô D3 gõ công thức nhe sau:
Fill CT xuống dưới.Mã:=IFERROR(MAX(INDEX(($B$2:$B2=B3)*($D$2:$D2),0))+IF(AND(COUNTIF($B$2:B2,B3)<>0,COUNTIF($E$2:E2,E3)<>0),0,1),1)
Bạn xem file thử thế nào. Nếu không đúng chỉ chổ nào sai vậy bạn.Công thức của bạn không đúng, bạn xem lại giúp mình nhé
Thanks
Mượn ý tưởng của bạn giaiphapCông thức của bạn không đúng rùi, bạn xem lại nhé
Ok, lần này đk rồi ak.Bạn xem file thử thế nào. Nếu không đúng chỉ chổ nào sai vậy bạn.
Mượn ý tưởng của bạn giaiphap
bạn chèn thêm dòng trống ở giữa dòng 1 và dòng 2 , dòng 2 sẽ không có dữ liệu, tại ô D3 gõ công thức
=IFERROR(IF(A3&B3&C3<>A2&B2&C2,MAX(INDEX(($B$2:B2=B3)*($D$22),0))+1,D2),1)
Bạn xem file của mìnhBài này vẫn chưa ổn, nếu như thay tên Nguyễn Văn B thành Nguyễn Văn C thì cả 2 cách trên đều bị trật lấc
Với lại ô [D11] kết quả đánh số phải là 1 mới đúng chứ
Lại lắt léo thêm chút nữa .... hihiBạn xem file của mình
ô D11 = 1
Mỗi phiếu chỉ có tên một người, nếu đổi tên Nguyễn Văn B thành Nguyễn Văn C thì số phiếu phải tự động nhảy một số
Khi nhập liệu phải nhập liệu liên tục, phải nhập hết phiếu nầy mới được phép nhập tới phiếu khác, không được nhập dỡ dang phiếu thứ n lại nhập phiếu thứ n+1 sao đó quay lại nhập tiếp phiếu thứ n. Do đó nếu nhập Nguyễn Văn C , Nguyễn Văn B, Nguyễn Văn C thì đó là của 3 phiếu khác nhauLại lắt léo thêm chút nữa .... hihi
Vẫn chưa chẩn bạn ah, tại [C7] bạn thử đổi tên Nguyễn Văn C thành Nguyễn Văn B xem.
Nếu dữ liệu có dạng đúng với ví dụminh dang bế tắt. cac ban giup minh cong thuc danh so thu tu theo mã hang nhu file giup voi.
D2 =SUM(D1)+(E1<>E2)
Hi all
Mình muốn đánh số thứ tự như sau: ABC1902017 > ABC1912017 -> ABC1922017 thì làm như thế nào?mong các bạn giúp đỡ.
="ABC"&ROW(Z190)&"2017"
Sub SoTT()
Dim Cls As Range: Dim SoCM As Double, W As Long
Dim HT As String, SoHS As String
For Each Cls In Sheet1.Range(Sheet1.[a2], Sheet1.[a2].End(xlDown))
If Cls.Value <> HT And Cls.Offset(, 1).Value <> SoCM Then
HT = Cls.Value: SoCM = Cls.Offset(, 1).Value
W = W + 1
Else
End If
Cls.Offset(, 4).Value = "GPE" & Right("00" & CStr(W), 3)
Next Cls
End Sub
Cho mình hỏi chút nữa là. Nếu trường hợp muốn đánh số thứ tự từ 1 số của hàng đầu tiên (VD đánh số thứ tự từ số 10) thì phải thêm gì nữa nhỉ.Bạn mở trang tính có số liệu lên & cho macro này chạy là được kết quả nào đó;
Sau đó bạn tự sửa nha:
PHP:Sub SoTT() Dim Cls As Range: Dim SoCM As Double, W As Long Dim HT As String, SoHS As String For Each Cls In Sheet1.Range(Sheet1.[a2], Sheet1.[a2].End(xlDown)) If Cls.Value <> HT And Cls.Offset(, 1).Value <> SoCM Then HT = Cls.Value: SoCM = Cls.Offset(, 1).Value W = W + 1 Else End If Cls.Offset(, 4).Value = "GPE" & Right("00" & CStr(W), 3) Next Cls End Sub
Em có trường hợp này ace giúp em với. Em muốn điền vào cột SỐ HÓA ĐƠN theo cùng 1 salon là cùng 1 số hóa đơn. Nhưng salon tiếp theo tự động tăng số (+1) so với số hóa đơn ban đầu ạ
=IF(AND(N1<>N2,R1=R2),1,MAX($M$1:M1)+1)
Bạn cho mình hỏi macro này sử dụng như thế nào ah... cám ơn bạnVì iêu cầu
nhưng chưa thấy, vậy mình thực hiện cho cả 2 file có ở trên:
Đây là macro tăng số thứ tự ứng với file bài #1:
PHP:Option Explicit Const SoDong% = 3210 Private Sub Worksheet_Change(ByVal Target As Range) Dim Rng As Range, Cls As Range Dim Max_ As Double If Not Intersect(Target, Range("E7:E" & SoDong)) Is Nothing Then Set Rng = Range("A7:A" & Target.Row - 1) For Each Cls In Rng If Cls.Value > Max_ Then Max_ = Cls.Value Next Cls Cells(Target.Row, "A").Value = 1 + Max_ ElseIf Not Intersect(Target, Range("F7:F" & SoDong)) Is Nothing Then Set Rng = Range("B7:B" & Target.Row - 1) For Each Cls In Rng If Cls.Value > Max_ Then Max_ = Cls.Value Next Cls Cells(Target.Row, "B").Value = 1 + Max_ End If End Sub
Còn đây là macro tăng số đếm sản fẩm cùng mã (#5)
PHP:Option Explicit Const SoDong% = 3210 Private Sub Worksheet_Change(ByVal Target As Range) Dim Rng As Range, sRng As Range Dim MyAdd$, SF$, Max_% If Not Intersect(Target, Range("B2:B" & SoDong)) Is Nothing Then Set Rng = Range("B1:B" & Target.Row - 1) Set sRng = Rng.Find(Target.Value, , xlFormulas, xlWhole) If sRng Is Nothing Then Target.Offset(, 1).Value = 1 Else MyAdd = sRng.Address SF = sRng.Offset(, -1).Value Do If sRng.Offset(, -1).Value = SF Then Max_ = sRng.Offset(, 1).Value Set sRng = Rng.FindNext(sRng) Loop While Not sRng Is Nothing And sRng.Address <> MyAdd Target.Offset(, 1).Value = 1 + Max_ End If End If End Sub
Vì iêu cầu
nhưng chưa thấy, vậy mình thực hiện cho cả 2 file có ở trên:
Đây là macro tăng số thứ tự ứng với file bài #1:
PHP:Option Explicit Const SoDong% = 3210 Private Sub Worksheet_Change(ByVal Target As Range) Dim Rng As Range, Cls As Range Dim Max_ As Double If Not Intersect(Target, Range("E7:E" & SoDong)) Is Nothing Then Set Rng = Range("A7:A" & Target.Row - 1) For Each Cls In Rng If Cls.Value > Max_ Then Max_ = Cls.Value Next Cls Cells(Target.Row, "A").Value = 1 + Max_ ElseIf Not Intersect(Target, Range("F7:F" & SoDong)) Is Nothing Then Set Rng = Range("B7:B" & Target.Row - 1) For Each Cls In Rng If Cls.Value > Max_ Then Max_ = Cls.Value Next Cls Cells(Target.Row, "B").Value = 1 + Max_ End If End Sub
Còn đây là macro tăng số đếm sản fẩm cùng mã (#5)
PHP:Option Explicit Const SoDong% = 3210 Private Sub Worksheet_Change(ByVal Target As Range) Dim Rng As Range, sRng As Range Dim MyAdd$, SF$, Max_% If Not Intersect(Target, Range("B2:B" & SoDong)) Is Nothing Then Set Rng = Range("B1:B" & Target.Row - 1) Set sRng = Rng.Find(Target.Value, , xlFormulas, xlWhole) If sRng Is Nothing Then Target.Offset(, 1).Value = 1 Else MyAdd = sRng.Address SF = sRng.Offset(, -1).Value Do If sRng.Offset(, -1).Value = SF Then Max_ = sRng.Offset(, 1).Value Set sRng = Rng.FindNext(sRng) Loop While Not sRng Is Nothing And sRng.Address <> MyAdd Target.Offset(, 1).Value = 1 + Max_ End If End If End Sub
Dear A/c trên diễn đàn,
Em đang có một vướng mắt trong việc đánh số tứ tự tên mã có điều kiện theo vùng.
A/c trên diễn đàn có công thức nào chỉ giúp em với,
Các A/c xem file đính kèm cột A "Tên mã"
Em cảm ơn,
B8=IF(A8="","",IF(A7<>A8,A8,COUNTIF($A$8:A8,A8)-1))
1 cách(không phải là hàm)Dear A/c trên diễn đàn,
Em đang có một vướng mắt trong việc đánh số tứ tự tên mã có điều kiện theo vùng.
A/c trên diễn đàn có công thức nào chỉ giúp em với,
Các A/c xem file đính kèm cột A "Tên mã"
Em cảm ơn,
Sub STT()
Dim i&, LR&
LR = Cells(Rows.Count, 2).End(3).Row
For i = 8 To LR
If Not IsNumeric(Cells(i, 2)) Then
Range("A" & i) = Range("B" & i)
End If
Next
With Range("A9:A" & Range("B" & Rows.Count).End(3).Row)
.SpecialCells(4).FormulaR1C1 = "=R[-1]C"
.Value = .Value
End With
End Sub
1 cách(không phải là hàm)
PHP:Sub STT() Dim i&, LR& LR = Cells(Rows.Count, 2).End(3).Row For i = 8 To LR If Not IsNumeric(Cells(i, 2)) Then Range("A" & i) = Range("B" & i) End If Next With Range("A9:A" & Range("B" & Rows.Count).End(3).Row) .SpecialCells(4).FormulaR1C1 = "=R[-1]C" .Value = .Value End With End Sub
Thử:chào các bạn, mình có 1 file cũng cần đánh số thứ tự theo group, tuy nhiên bảng đã có sẵn stt của các mặt hàng rồi, bgio mình nhập thêm số liệu thì đánh stt tiếp theo, tức là: cột G phát sinh mã hàng mới, thì đánh tiếp stt của mã đó ở cột H, stt tiếp theo của stt lớn nhất của mã đó đã có sẵn.
mình gửi kèm file mn xem giúp mình nhé
H226=TEXT(IFERROR(AGGREGATE(14,6,--$H$1:H225/($G$1:G225=$G226),1),)+1,"0000")
Dạ, đa tạ bác quá, quá siêu bác ah, em cảm ơn nhiều!Thử:
Enter, fill xuống.Mã:H226=TEXT(IFERROR(AGGREGATE(14,6,--$H$1:H225/($G$1:G225=$G226),1),)+1,"0000")
Thân
Excel làm gì có hàm nào tên là "j".Mình cần đánh số thứ tự không liên tục nhưng ở những ô trống thì có công thứ trong đó. Mình phải dùng hàm j. Mong các bạn chỉ dùm
Ý mình là mình phải dùng hàm gì?Excel làm gì có hàm nào tên là "j".
Bác cho em hỏi chút! Nếu em muốn làm ngược lại! Có nghĩa là nếu chung tên thì để cùng một số, còn xuất hiện tên khác thì nhảy thêm một số. thì làm thế nào? Em cảm ơn!Thì nhập thế này cho C2
=IF(B2="","",COUNTIF(B$1:B2,B2))
Bạn gửi file ví dụ lên xem sao.Bác cho em hỏi chút! Nếu em muốn làm ngược lại! Có nghĩa là nếu chung tên thì để cùng một số, còn xuất hiện tên khác thì nhảy thêm một số. thì làm thế nào? Em cảm ơn!
Mình làm được rồi! Nhưng qua nhiều bước quá! Bạn có cách nào nhanh hơn không?Bạn gửi file ví dụ lên xem sao.
Bạn xem thử nhé.Mình làm được rồi! Nhưng qua nhiều bước quá! Bạn có cách nào nhanh hơn không?
Cảm ơn nhé! Cách của bạn nhanh hơn, nhẹ hơn!Bạn xem thử nhé.
Cho mình hỏi thêm chút nữa! Mình đang viết lại file để pha cắt thép tối ưu! Mà chưa nghĩ ra thuật toán! Mình mới chỉ có ý tưởng thế này! Nhập dữ liệu đầu vào , tự động ghép vào sao cho đủ số lượng, ít phải nối nhất! Bạn có lệnh hay phương pháp nào không? Mình cảm ơn!Cảm ơn nhé! Cách của bạn nhanh hơn, nhẹ hơn!
Mình không làm về lĩnh vực này nên cũng không có kinh nghiệm, bạn cứ đăng mục mới lên, có ai biết thì giúp được bạn mà.Cảm ơn nhé! Cách của bạn nhanh hơn, nhẹ hơn!
Bài đã được tự động gộp:
Cho mình hỏi thêm chút nữa! Mình đang viết lại file để pha cắt thép tối ưu! Mà chưa nghĩ ra thuật toán! Mình mới chỉ có ý tưởng thế này! Nhập dữ liệu đầu vào , tự động ghép vào sao cho đủ số lượng, ít phải nối nhất! Bạn có lệnh hay phương pháp nào không? Mình cảm ơn!
Bác còn công thức cho mình xin với. Về việc đánh số thứ tự, nếu trùng tên thì cùng 1 số. Khác tên sẽ đánh kế tiếp ạ.Bạn xem thử nhé.
Bạn cho ví dụ kết quả mong muốn được không.Bác còn công thức cho mình xin với. Về việc đánh số thứ tự, nếu trùng tên thì cùng 1 số. Khác tên sẽ đánh kế tiếp ạ.
dạ đây bác à?Bạn cho ví dụ kết quả mong muốn được không.
ID | STT |
A1 | 1 |
B2 | 2 |
C3 | 3 |
A1 | 1 |
C3 | 3 |
D2 | 4 |
Cái này làm được, nhưng mình lười tạo file hơn bạn.dạ đây bác à?
ID STT A1 1 B2 2 C3 3 A1 1 C3 3 D2 4
Xin lỗi bác vì mình nghĩ có file 1 bạn ở trên giống lời hỗ trợ của mình. Mong bác giúp. Cảm ơn bác!Cái này làm được, nhưng mình lười tạo file hơn bạn.
Bạn tham khảo.....Mong bác giúp.