Cần giúp Điền vào các ô bên phải của ô B3 số tháng tăng dần tương ứng với số n (5 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

hung2412

Thành viên tích cực
Tham gia
5/8/08
Bài viết
929
Được thích
240
Giới tính
Nam
Chào các bạn GPE!
Nhờ các bạn giúp đỡ cho tôi vấn đề này với, cụ thể như sau:
Ô B3 có ngày tháng năm bất kỳ (Ví dụ: 01/07/2014), ô
B4 có ngày tháng năm bất kỳ (Ví dụ: 30/09/2014). Ngày tháng năm của ô B4 luôn luôn lớn hơn hoặc bằng ngày tháng năm của ô B3 (Ô B3 và ô B4 luôn luôn cùng bằng năm). Số tháng của ô B4 trừ đi số tháng của ô B3 bằng n (Ví dụ: Tháng 09 của ô B4 trừ đi tháng 07 của ô B3 bằng 2) => Điền vào các ô bên cạnh bên phải của ô B3 số tháng tăng dần tương ứng với số n ở trên.
Ví dụ: ô B3 có ngày tháng năm là 01/07/2014, ô B4 có ngày tháng năm là 30/09/2014 => Chênh lệch số tháng là 9 - 7 = 2 tháng => Điền vào các ô bên cạnh bên phải của ô B3 số tháng tăng dần tương ứng với số 2 (Ngày và năm giữ nguyên), cụ thể:
- Ô C3 bằng ô B3 cộng thêm 0 tháng => 01/07/2014.
- Ô D3 bằng ô B3 cộng thêm 1 tháng => 01/08/2014.
- Ô E3 bằng ô B3 cộng thêm 2 tháng => 01/09/2014.
Mong các bạn GPE chỉ giáo!
Trân trọng cảm ơn!
P/s: Có 01 File đính kèm. Ô B3 và ô B4 luôn luôn cùng bằng năm.
 

File đính kèm

Lần chỉnh sửa cuối:
Chào các bạn GPE!
Nhờ các bạn giúp đỡ cho tôi vấn đề này với, cụ thể như sau:
Ô B3 có ngày tháng năm bất kỳ (Ví dụ: 01/07/2014), ô
B4 có ngày tháng năm bất kỳ (Ví dụ: 30/09/2014). Ngày tháng năm của ô B4 luôn luôn lớn hơn hoặc bằng ngày tháng năm của ô B3 (Ô B3 và ô B4 luôn luôn cùng bằng năm). Số tháng của ô B4 trừ đi số tháng của ô B3 bằng n (Ví dụ: Tháng 09 của ô B4 trừ đi tháng 07 của ô B3 bằng 2) => Điền vào các ô bên cạnh bên phải của ô B3 số tháng tăng dần tương ứng với số n ở trên.
Ví dụ: ô B3 có ngày tháng năm là 01/07/2014, ô B4 có ngày tháng năm là 30/09/2014 => Chênh lệch số tháng là 9 - 7 = 2 tháng => Điền vào các ô bên cạnh bên phải của ô B3 số tháng tăng dần tương ứng với số 2 (Ngày và năm giữ nguyên), cụ thể:
- Ô C3 bằng ô B3 cộng thêm 0 tháng => 01/07/2014.
- Ô D3 bằng ô B3 cộng thêm 1 tháng => 01/08/2014.
- Ô E3 bằng ô B3 cộng thêm 2 tháng => 01/09/2014.
Mong các bạn GPE chỉ giáo!
Trân trọng cảm ơn!
P/s: Có 01 File đính kèm. Ô B3 và ô B4 luôn luôn cùng bằng năm.

Bạn dùng công thức mảng sau cho ô C3:

Mã:
=DATE(YEAR($B$3),MONTH($B$3)+SMALL(ROW(INDIRECT("1:"&MONTH($B$4)-MONTH($B$3)+1))-1,COLUMNS($A:A)),DAY($B$3))
 
Chào các bạn GPE!
Nhờ các bạn giúp đỡ cho tôi vấn đề này với, cụ thể như sau:
Ô B3 có ngày tháng năm bất kỳ (Ví dụ: 01/07/2014), ô
B4 có ngày tháng năm bất kỳ (Ví dụ: 30/09/2014). Ngày tháng năm của ô B4 luôn luôn lớn hơn hoặc bằng ngày tháng năm của ô B3 (Ô B3 và ô B4 luôn luôn cùng bằng năm). Số tháng của ô B4 trừ đi số tháng của ô B3 bằng n (Ví dụ: Tháng 09 của ô B4 trừ đi tháng 07 của ô B3 bằng 2) => Điền vào các ô bên cạnh bên phải của ô B3 số tháng tăng dần tương ứng với số n ở trên.
Ví dụ: ô B3 có ngày tháng năm là 01/07/2014, ô B4 có ngày tháng năm là 30/09/2014 => Chênh lệch số tháng là 9 - 7 = 2 tháng => Điền vào các ô bên cạnh bên phải của ô B3 số tháng tăng dần tương ứng với số 2 (Ngày và năm giữ nguyên), cụ thể:
- Ô C3 bằng ô B3 cộng thêm 0 tháng => 01/07/2014.
- Ô D3 bằng ô B3 cộng thêm 1 tháng => 01/08/2014.
- Ô E3 bằng ô B3 cộng thêm 2 tháng => 01/09/2014.
Mong các bạn GPE chỉ giáo!
Trân trọng cảm ơn!
P/s: Có 01 File đính kèm. Ô B3 và ô B4 luôn luôn cùng bằng năm.
Thử công thức này:
C3 =IF((COLUMN(A$1)-1)>(MONTH($B$4)-MONTH($B$3)),"",EDATE($B$3,COLUMN(A$1)-1))
 
Tôi xài Code:
PHP:
Option Explicit
Dim t As Long
Sub Ngaythang()
[IV3].End(xlToLeft).Offset(, 1) = "=RC[-1]"
If (Left(Right(Cells(4, 2), 7), 2) > Left(Right(Cells(3, 2), 7), 2)) Then
    For t = 1 To (Left(Right(Cells(4, 2), 7), 2) - Left(Right(Cells(3, 2), 7), 2))
         [IV3].End(xlToLeft).Offset(, 1) = "=DATE(YEAR(RC[-1]),MONTH(RC[-1])+1,DAY(RC[-1]))"
    Next
End If
End Sub
 
Lần chỉnh sửa cuối:
Tôi xài Code:
PHP:
Option Explicit
Dim t As Long
Sub Ngaythang()
[IV3].End(xlToLeft).Offset(, 1) = "=RC[-1]"
If (Left(Right(Cells(4, 2), 7), 2) > Left(Right(Cells(3, 2), 7), 2)) Then
    For t = 1 To (Left(Right(Cells(4, 2), 7), 2) - Left(Right(Cells(3, 2), 7), 2))
         [IV3].End(xlToLeft).Offset(, 1) = "=DATE(YEAR(RC[-1]),MONTH(RC[-1])+1,DAY(RC[-1]))"
    Next
End If
End Sub
Nói về code thì bạn chỉ tầm ngang với mình nhưng cách hành văn của bạn mình nghe nó sao sao đó.
PHP:
Sub MonthAdd()
Dim i As Long, Res()
For i = 0 To Month([B4]) - Month([B3])
   ReDim Preserve Res(i)
   Res(i) = DateAdd(ChrW(109), i, [B3])
Next
MsgBox Join(Res, vbLf)
End Sub
 
Nói về code thì bạn chỉ tầm ngang với mình nhưng cách hành văn của bạn mình nghe nó sao sao đó.
Dạ, tôi không dám ngang với bạn đâu ạ. Còn về cách hành văn của tôi nghe nó ngang ngang cũng dễ hiểu: Tư duy của tôi giống như tiểu học (Chân phương chỉ biết 1 + 1 = 2), còn tư duy của bạn giống như Đại học (Cao siêu).
PHP:
Sub MonthAdd()
Dim i As Long, Res()
For i = 0 To Month([B4]) - Month([B3])
   ReDim Preserve Res(i)
   Res(i) = DateAdd(ChrW(109), i, [B3])
Next
MsgBox Join(Res, vbLf)
End Sub
=> Code này sao chỉ hiện MsgBox cho đẹp mà không tự điền vào các ô bên cạnh của B3 nhỉ? (Mục đích cuối cùng là điền vào các ô bên cạnh của B3 mà)
 
Nhờ các bạn giúp đỡ tôi vấn đề cụ thể như sau:

Ô B3 có ngày tháng năm bất kỳ (VD: 01/07/14), ô
B4 cũng có ngày tháng năm bất kỳ (VD: 30/09/14). Luôn luôn B4 >= B3 ( & chúng luôn cùng năm).
Số tháng của ô B4 trừ đi số tháng của ô B3 bằng n (Ví dụ trên: bằng 2
=> Điền vào các ô bên cạnh bên phải của ô B3 số tháng tăng dần tương ứng với số n ở trên.
Ví dụ: ô B3 có ngày tháng năm là 01/07/2014, ô B4 có ngày tháng năm là 30/09/2014 => Chênh lệch số tháng là 9 - 7 = 2 tháng => Điền vào các ô bên cạnh bên phải của ô B3 số tháng tăng dần tương ứng với số 2 (Ngày và năm giữ nguyên), cụ thể:
- Ô C3 bằng ô B3 cộng thêm 0 tháng => 01/07/2014.
- Ô D3 bằng ô B3 cộng thêm 1 tháng => 01/08/2014.
- Ô E3 bằng ô B3 cộng thêm 2 tháng => 01/09/2014.
Mong các bạn GPE chỉ giáo!
Trân trọng cảm ơn!
P/s: Có 01 File đính kèm. Ô B3 và ô B4 luôn luôn cùng bằng năm.
Mình có vài thắc mắc nhờ chủ topic giải đáp:

(1) Giá trị n mà bạn viện dẫn chưa biết xài vô đâu?
(2) Điền cho đến khi nào thì thôi?; Sang năm khác hay sang thế kỷ khác?
 
Mình có vài thắc mắc nhờ chủ topic giải đáp:

(1) Giá trị n mà bạn viện dẫn chưa biết xài vô đâu?
(2) Điền cho đến khi nào thì thôi?; Sang năm khác hay sang thế kỷ khác?
Tôi xin trả lời:
(1) Giá trị n chính là số 2 (Được lấy ví dụ n = 2) mà. Chắc vì câu chữ nên chưa toát được ý của đề tài (Bạn thông cảm).
(2) Điền cho đến khi tối đa bằng 2 (Tùy thuộc số tháng của ô B4 trừ đi số tháng ô B3 là bao nhiêu, mà ví dụ ở đây là 2).
 
Vậy thì cũng bon chen lúc rảnh rỗi:

PHP:
Option Explicit
Sub DienNgayThang()
 Dim Ngay As Byte, Thang As Byte, Nam As Integer, J As Byte, Dat As Date
 
 Ngay = Day([B3].Value):            Thang = Month([B3].Value)
 Nam = Year([B3].Value):            ReDim Arr(1 To 13)
 Do
    Dat = DateSerial(Nam, Thang + J, Ngay)
    If Dat > [B4].Value Then Exit Do
    J = J + 1
    Arr(J) = Dat
 Loop
 [C3].Resize(, 13).Value = Arr()
End Sub
 
Code cùi:
PHP:
Option Explicit
Dim t As Long
Sub Ngaythang()
If (Left(Right(Cells(4, 2), 7), 2) > Left(Right(Cells(3, 2), 7), 2)) Then
    For t = 0 To (Left(Right(Cells(4, 2), 7), 2) - Left(Right(Cells(3, 2), 7), 2))
         [IV3].End(xlToLeft).Offset(, 1) = "=DATE(YEAR(RC2),MONTH(RC2)+" & t & ",DAY(RC2))"
    Next
End If
End Sub
 
Web KT

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

Back
Top Bottom