Làm sao đánh số thứ tự có khoảng trống

Liên hệ QC

Pro speed

Thành viên bị đình chỉ hoạt động
Thành viên bị đình chỉ hoạt động
Tham gia
15/9/20
Bài viết
21
Được thích
7
Xin chào các cao nhân !
Mình cần đánh số thứ tự cách dòng như hình ảnh đính kèm.
Ví dụ mình muốn đánh từ 1 đến 100
- Bắt đầu từ ô B3 = 1 --> Cách xuống 1 dòng --> B5 = 2 --> Cách xuống 2 dòng....Cứ lặp lại như vậy khi nào đủ 100 thì OK . Cám ơn các cao nhân !

1602119647603.png
 
Xin chào các cao nhân !
Mình cần đánh số thứ tự cách dòng như hình ảnh đính kèm.
Ví dụ mình muốn đánh từ 1 đến 100
- Bắt đầu từ ô B3 = 1 --> Cách xuống 1 dòng --> B5 = 2 --> Cách xuống 2 dòng....Cứ lặp lại như vậy khi nào đủ 100 thì OK . Cám ơn các cao nhân !

View attachment 246989
Sửa bài viết không dùng "cao nhân" nhé, mình vào giúp là hơi "liều" rồi đấy:
Giả sử C5 gõ 1 thì tại C6 điền công thức sau:
PHP:
=IF(ROW()<=LOOKUP(10^9,$C$1:C5)+LOOKUP(10^9,$C$1:C5,ROW($C$1:C5)),"",LOOKUP(10^9,$C$1:C5)+1)
 
Upvote 0
Sửa bài viết không dùng "cao nhân" nhé, mình vào giúp là hơi "liều" rồi đấy:
Giả sử C5 gõ 1 thì tại C6 điền công thức sau:
PHP:
=IF(ROW()<=LOOKUP(10^9,$C$1:C5)+LOOKUP(10^9,$C$1:C5,ROW($C$1:C5)),"",LOOKUP(10^9,$C$1:C5)+1)
Công thức bạn thì đúng . mà làm như bạn thì File chậm lắm. Mình đang hỏi Code mà. Mình cần lấy giá trị Value thôi. làm công thứ 1000 dòng FIle treo luôn á.
 
Lần chỉnh sửa cuối:
Upvote 0
Nói chung khi nghiên cứu thì ta thích tìm đủ loại công thức để xử lý 1 việc nào đó.
Khi ứng dụng, có thể 1 nc cũ được dùng. Rất tốt.
Nhưng nếu dữ liệu khá lớn thì Excel sẽ tính toán chậm. Nên tốt nhất nc luôn đến VBA.
Mọi dạng xử lý đều được thể hiện thành code. Còn nc công thức nên chú ý sử dụng tốt các hàm
như Count, CountIf, Sum, SumIf, Subtotal (hàm này hay lắm, nó có chức năng không cộng các số nắm trên hàng ẩn, có thể ẩn do ta đặt hoặc do lọc)

Với câu hỏi trên, code sau, bạn tham khảo

Sub InSo()
Dim nH&, nC&, i&
nH = ActiveCell.Row
nC = ActiveCell.Column
ActiveCell = 1
For i = 2 To 100
nH = nH + i
Cells(nH, nC) = i
Next
End Sub
 
Upvote 0
Nếu biết toán số thì sẽ 'Quá đơn giản'
Nhìn cái mẫu sẽ dễ dàng thấy số dòng là một hàm số của số thứ tự.
Nếu số thứ tự là n thì số dòng là 1+2+...+n
Theo toán số: 1+2+...+n = (n*n+n)/2

Biết rồi thì 'Không nói nhiều. Chạy code sẽ thấy'
 
Upvote 0
Xin chào các cao nhân !
Mình cần đánh số thứ tự cách dòng như hình ảnh đính kèm.
Ví dụ mình muốn đánh từ 1 đến 100
- Bắt đầu từ ô B3 = 1 --> Cách xuống 1 dòng --> B5 = 2 --> Cách xuống 2 dòng....Cứ lặp lại như vậy khi nào đủ 100 thì OK . Cám ơn các cao nhân !

View attachment 246989

Bạn thử code này xem:
Mã:
Option Explicit
Sub Không_fai_cao_nhân()
   Dim k As Integer, r As Integer
   k = 2
   Sheet1.Cells(k, 2).Value = "STT"
   For r = 1 To 100
      k = k + r
      Sheet1.Cells(k, 2).Value = r
   Next r
End Sub
 
Upvote 0
Bạn thử code này xem:
Mã:
Option Explicit
Sub Không_fai_cao_nhân()
   Dim k As Integer, r As Integer
   k = 2
   Sheet1.Cells(k, 2).Value = "STT"
   For r = 1 To 100
      k = k + r
      Sheet1.Cells(k, 2).Value = r
   Next r
End Sub

Cám ơn bạn nhiều lắm ah.
Bạn có thể giải thích giúp mình nguyên tắc hoạt động của code này được không ah?
 
Upvote 0
Cám ơn bạn nhiều lắm ah.
Bạn có thể giải thích giúp mình nguyên tắc hoạt động của code này được không ah?
OT chỉ có thể giải thích theo cách này , còn nguyên tắc là theo yêu cầu của bạn đưa ra tại bài 1 ạ:
Mã:
Option Explicit

Sub Không_fai_cao_nhân()

   'Khai báo các tham sô'
   Dim Sô_Thu_Tu As Integer, Dong_Bat_Dau As Integer
   Const Tên_Sheet As String = "Sheet1"
   Const Tên_Côt As String = "B"
   Const Stt_To_Nhât As Integer = 100
   Dong_Bat_Dau = 2
  
   'Thuc thi
   Sheets(Tên_Sheet).Range(Tên_Côt & Dong_Bat_Dau).Value = "STT" ''Dòng bat dau là dòng 2 tên côt là B nhu da khai bao o tren
   For Sô_Thu_Tu = 1 To Stt_To_Nhât 'Bat dau danh sô' thu tu 1 den stt to nhâ't là 100
      Dong_Bat_Dau = Dong_Bat_Dau + Sô_Thu_Tu 'Xác dinh dòng can dien stt trong côt B
      Sheets(Tên_Sheet).Range(Tên_Côt & Dong_Bat_Dau) = Sô_Thu_Tu 'Gán stt tang dan tu 1 den stt to nhât
   Next Sô_Thu_Tu
  
End Sub
 
Upvote 0
Web KT
Back
Top Bottom