Dãn dòng theo số ngày (2 người xem)

Liên hệ QC

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

cuonghoa176

Hỏi nhiều
Tham gia
31/1/11
Bài viết
169
Được thích
23
Giới tính
Nam
Nghề nghiệp
Giáo viên THCS
Các Bác giúp em làm sao để dãn dòng theo số ngày với ạ!
 

File đính kèm

Các Bác giúp em làm sao để dãn dòng theo số ngày với ạ!
Cái này bị sao sao ấy: VD số TT thứ 2: "23/9/2019 - 2 ngày - Xây gạch" mà theo kết quả mong muốn đẩy ra 2 hàng nội dung giống hệt nhau. Vây suy ra đây chỉ có 1 ngày thôi. (Ngày 23/9/2019; 24/9/2019 người ta mới gọi là 2 ngày)
 
Cái này bị sao sao ấy: VD số TT thứ 2: "23/9/2019 - 2 ngày - Xây gạch" mà theo kết quả mong muốn đẩy ra 2 hàng nội dung giống hệt nhau. Vây suy ra đây chỉ có 1 ngày thôi. (Ngày 23/9/2019; 24/9/2019 người ta mới gọi là 2 ngày)
Bác nói đúng, 2 ngày làm 1 công việc sẽ là 23 và ngày tiếp theo là 24
 
Các Bác giúp em làm sao để dãn dòng theo số ngày với ạ!
Công thức
Mã:
J3=IFERROR(IF(COUNTIF($J$2:J2,J2)>=INDEX($D$3:$D$13,MATCH(J2,$E$3:$E$13,0)),INDEX($E$3:$E$13,MATCH(J2,$E$3:$E$13,0)+1),J2),E3)
G3=IF(J2<>J3,MAX($G$2:G2)+1,G2)
H3=INDEX(C$3:C$13,MATCH($J3,$E$3:$E$13,0))
I3=INDEX(D$3:D$13,MATCH($J3,$E$3:$E$13,0))
 
Các Bác giúp em làm sao để dãn dòng theo số ngày với ạ!
Bạn thử:
PHP:
Sub Test()
    Dim a(), b, i As Long, j As Long, k As Long, Ub As Long, dk As Long, jj As Byte
    a = Range("B3", Range("B65000").End(3)).Resize(, 4).Value
    Ub = UBound(a)
    ReDim b(1 To 10000, 1 To 4)
    For i = 1 To Ub
        dk = a(i, 3)
        For j = 1 To dk
            k = k + 1
            For jj = 1 To 4
                b(k, jj) = a(i, jj)
            Next jj
        Next j
        Range("G3").Resize(k, 4) = b
    Next
End Sub
 
Không biết vầy có đúng ý bạn chưa, gởi lại bạn (Xem file)
Mã:
Sub GPE()
Dim LastRowB As Long
Dim LastRowG As Long
Dim i As Long
Dim j As Long
With ActiveSheet
        LastRowB = .Cells(.Rows.Count, "B").End(xlUp).Row + 1
End With
For i = 3 To LastRowB
    With ActiveSheet
        LastRowG = .Cells(.Rows.Count, "G").End(xlUp).Row + 1
    End With
    If Range("D" & i) > 1 Then
        For j = LastRowG To LastRowG + Range("D" & i) - 1
            Range("G" & j) = Range("B" & i).Value
            Range("H" & j) = Range("C" & i).Value
            Range("I" & j) = Range("D" & i).Value
            Range("J" & j) = Range("E" & i).Value
        Next j
    Else
        Range("G" & LastRowG) = Range("B" & i).Value
        Range("H" & LastRowG) = Range("C" & i).Value
        Range("I" & LastRowG) = Range("D" & i).Value
        Range("J" & LastRowG) = Range("E" & i).Value
    End If
Next i
End Sub
 

File đính kèm

Công thức
Mã:
J3=IFERROR(IF(COUNTIF($J$2:J2,J2)>=INDEX($D$3:$D$13,MATCH(J2,$E$3:$E$13,0)),INDEX($E$3:$E$13,MATCH(J2,$E$3:$E$13,0)+1),J2),E3)
G3=IF(J2<>J3,MAX($G$2:G2)+1,G2)
H3=INDEX(C$3:C$13,MATCH($J3,$E$3:$E$13,0))
I3=INDEX(D$3:D$13,MATCH($J3,$E$3:$E$13,0))
Theo như bài 3 thì mình xin mạm phép sửa công thức H3 thành như thế này
H3=IF(VLOOKUP(G5,$B$3:$D$13,3,0)=1,VLOOKUP(G5,$B$3:$D$13,2,0),VLOOKUP(G5,$B$3:$D$13,2,0)+COUNTIF($G$3:G5,G5)-1)
 
Các bác sửa hộ em với, lầm vầy mà vẫn lỗi...
 

File đính kèm

Web KT

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

Back
Top Bottom