Điền số đếm vào ô trống

Liên hệ QC

hcl_pt

Thành viên thường trực
Tham gia
21/10/10
Bài viết
208
Được thích
11
Mình có vấn đề khá phức tạp mong GPE giúp đỡ: Mình cần điền giá trị số đếm ô trống vào chính các ô trống ở trong các hàng theo điều kiện sau: Trong hàng : xuất phát từ ô trống đầu tiên điền các giá trị vào ô trống lần lượt theo số đếm 1; 2; 3; .v.v..điền cả vào ô có dữ liệu đầu tiên thì dừng lại. Tiếp tục dò tìm trong hàng đến ô trống thì lại tiếp tục điền từ 1; 2;..v.v.. theo quy tắc trên. Mình lấy 2 ví dụ cho dòng A1 và A2 minh họa. Mong các bạn giúp đỡ. Xin chân thành cảm ơn!
 

File đính kèm

  • Diensodemvaootrong.xlsx
    12.8 KB · Đọc: 35
mình có vấn đề khá phức tạp mong gpe giúp đỡ: Mình cần điền giá trị số đếm ô trống vào chính các ô trống ở trong các hàng theo điều kiện sau: Trong hàng : Xuất phát từ ô trống đầu tiên điền các giá trị vào ô trống lần lượt theo số đếm 1; 2; 3; .v.v..điền cả vào ô có dữ liệu đầu tiên thì dừng lại. Tiếp tục dò tìm trong hàng đến ô trống thì lại tiếp tục điền từ 1; 2;..v.v.. Theo quy tắc trên. Mình lấy 2 ví dụ cho dòng a1 và a2 minh họa. Mong các bạn giúp đỡ. Xin chân thành cảm ơn!

b13: =if(and(a5<>"",b5=""),1,max(a13)+1)
 
Cảm ơn bạn! Nhưng bạn ơi, với công thức này thì sẽ điền tất cả các ô có dữ liệu chứ không kết thúc tại ô có dữ liệu gặp đầu tiên...? Mong bạn xem giúp mình!
Thử công thức này tại B13 xem đc không nhé:
=IF(AND(B5="",A5=1),1,IF(B5="",MAX(A13)+1,B5))
 
Thử công thức này tại B13 xem đc không nhé:
=IF(AND(B5="",A5=1),1,IF(B5="",MAX(A13)+1,B5))
Cảm ơn bạn! Gần đúng rồi bạn àh. Nhưng điền các giá trị vào ô trống lần lượt theo số đếm 1; 2; 3; .v.v.. và điền thêm cả vào ô có dữ liệu đầu tiên thì dừng lại. Mình đã minh họa ở file kèm theo. Rất mong bạn xem lại giúp!
 
Cảm ơn bạn! Gần đúng rồi bạn àh. Nhưng điền các giá trị vào ô trống lần lượt theo số đếm 1; 2; 3; .v.v.. và điền thêm cả vào ô có dữ liệu đầu tiên thì dừng lại. Mình đã minh họa ở file kèm theo. Rất mong bạn xem lại giúp!
Bạn xem thử trong file này xem có đúng ý bạn không nhé, mình chỉ làm đúng những yêu cầu bạn mô tả, còn sai thế nào thì mình sẽ xử lý tiếp nhé, phần màu xanh là phần được điền vào lấp những ô trống phía trên.
 

File đính kèm

  • dien o trong.xlsx
    14.3 KB · Đọc: 14
Cảm ơn bạn! Nhưng bạn ơi, với công thức này thì sẽ điền tất cả các ô có dữ liệu chứ không kết thúc tại ô có dữ liệu gặp đầu tiên...? Mong bạn xem giúp mình!

Nếu vậy thì: =IF(A5<>"",1,MAX(A13)+1)
 
Cảm ơn bạn! Gần đúng rồi bạn àh. Nhưng điền các giá trị vào ô trống lần lượt theo số đếm 1; 2; 3; .v.v.. và điền thêm cả vào ô có dữ liệu đầu tiên thì dừng lại. Mình đã minh họa ở file kèm theo. Rất mong bạn xem lại giúp!
Làm bằng VBA cho đỡ cực nhé
Bấm vào cái mũi tên xanh xanh của bạn
Thân
 

File đính kèm

  • Diensodemvaootrong.rar
    17.7 KB · Đọc: 37
Nó chạy quá mất 1 ô anh ạ, đến H13 nó phải giữ nguyên giá trị 1 nhưng theo công thức của anh nó sẽ bị công thêm 1 đơn vị thành 5. Các ô tiếp theo cũng bị thế???

Mục đích của tác giả là H13 = 5 mà, tức là từ rỗng đến giá trị 1 là giá trị Max, sau đó là 1 nếu dữ liệu là 1, và bắt đầu 1 nếu dữ liệu rỗng.
 
Nếu vậy thì: =IF(A5<>"",1,MAX(A13)+1)
Vâng! Cảm ơn các bạn đã giúp đỡ! Đúng rồi bạn àh! Một lần nữa xin cảm ơn các bạn! Chúc các bạn luôn thành công!
p/s:Trong trường hợp nếu không sử dụng công thức thì mình có thể viết code như thế nào ạ?
 
Lần chỉnh sửa cuối:
Vâng! Cảm ơn các bạn đã giúp đỡ! Đúng rồi bạn àh! Một lần nữa xin cảm ơn các bạn! Chúc các bạn luôn thành công!
p/s:Trong trường hợp nếu không sử dụng công thức thì mình có thể viết code như thế nào ạ?
Bạn muốn code thì xem file
(hic bài #8 anh concogia đã làm rồi mà hổng để ý)
 

File đính kèm

  • Diénodemvaootrong.xls
    49 KB · Đọc: 19
Lần chỉnh sửa cuối:
Vâng! Cảm ơn các bạn đã giúp đỡ! Đúng rồi bạn àh! Một lần nữa xin cảm ơn các bạn! Chúc các bạn luôn thành công!
p/s:Trong trường hợp nếu không sử dụng công thức thì mình có thể viết code như thế nào ạ?
Góp thêm 1 code cho bạn tham khảo
PHP:
Sub dien_dem()
Dim arr(), dl, i, j, k
dl = [A5:AP9].Value
ReDim arr(1 To UBound(dl, 1), 1 To UBound(dl, 2))
For i = 1 To UBound(dl, 1)
  arr(i, 1) = dl(i, 1)
  For j = 2 To UBound(dl, 2)
    If dl(i, j) <> "" And dl(i, j - 1) = "" Then
      arr(i, j) = k + 1:      k = 0
    ElseIf dl(i, j) <> "" Then
      arr(i, j) = dl(i, j):      k = 0
    ElseIf dl(i, j) = "" Then
      k = k + 1
      arr(i, j) = k
    End If
  Next
  k = 0
Next
[A20].Resize(UBound(dl, 1), UBound(dl, 2)) = arr
End Sub
 
Web KT

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

Back
Top Bottom