Xuất dữ liệu lặp lại vào cột

Liên hệ QC

Feeling_nothing

Thành viên mới
Tham gia
15/9/21
Bài viết
9
Được thích
0
Xin mọi ng chỉ giáo, mình có file excel:
A. B
A. 2.
B. 3
C. 4
Mình muốn xuất dữ liệu thành
A
A
B
B
B
C
C
C
C
Cám ơn mọi ng!
 
Thử:
=IFERROR(INDEX($A$2:$A$4,MATCH(ROW(A1)-1,SUMIF(OFFSET($B$1,0,0,ROW($B$1:$B$4),1),">0"),1)),"")

Ctrl+Shift+Enter.
 

File đính kèm

  • Book1.xlsx
    9.1 KB · Đọc: 9
Lần chỉnh sửa cuối:
[RANGE=rs:10|cs:5|w:Book1|cls:xl2bb-200|s:Sheet1|tw:270][XR][XH][/XH][XH=w:54]A[/XH][XH=w:54]B[/XH][XH=w:54]C[/XH][XH=w:54]D[/XH][XH=w:54]E[/XH][/XR][XR][XH]1[/XH][XD=ch:15.75][/XD][XD][/XD][XD][/XD][XD][/XD][XD][/XD][/XR][XR][XH]2[/XH][XD=h:l|c:141414|ch:16.5|fz:11pt]A[/XD][XD]2[/XD][XD][/XD][XD][/XD][XD=h:l|cls:fx][FORMULA={=IFERROR(INDEX($A$2:$A$4,MATCH(ROW(A1),SUMIF(OFFSET($B$1,0,0,ROW($B$1:$B$4),1),">0"),1)),"")}]A[/FORMULA][/XD][/XR][XR][XH]3[/XH][XD=h:l|c:141414|ch:16.5|fz:11pt]B[/XD][XD]3[/XD][XD][/XD][XD][/XD][XD=h:l|cls:fx][FORMULA={=IFERROR(INDEX($A$2:$A$4,MATCH(ROW(A2),SUMIF(OFFSET($B$1,0,0,ROW($B$1:$B$4),1),">0"),1)),"")}]B[/FORMULA][/XD][/XR][XR][XH]4[/XH][XD=h:l|c:141414|ch:16.5|fz:11pt]C[/XD][XD]4[/XD][XD][/XD][XD][/XD][XD=h:l|cls:fx][FORMULA={=IFERROR(INDEX($A$2:$A$4,MATCH(ROW(A3),SUMIF(OFFSET($B$1,0,0,ROW($B$1:$B$4),1),">0"),1)),"")}]B[/FORMULA][/XD][/XR][XR][XH]5[/XH][XD=ch:15.75][/XD][XD][/XD][XD][/XD][XD][/XD][XD=h:l|cls:fx][FORMULA={=IFERROR(INDEX($A$2:$A$4,MATCH(ROW(A4),SUMIF(OFFSET($B$1,0,0,ROW($B$1:$B$4),1),">0"),1)),"")}]B[/FORMULA][/XD][/XR][XR][XH]6[/XH][XD=ch:15.75][/XD][XD][/XD][XD][/XD][XD][/XD][XD=h:l|cls:fx][FORMULA={=IFERROR(INDEX($A$2:$A$4,MATCH(ROW(A5),SUMIF(OFFSET($B$1,0,0,ROW($B$1:$B$4),1),">0"),1)),"")}]C[/FORMULA][/XD][/XR][XR][XH]7[/XH][XD=ch:15.75][/XD][XD][/XD][XD][/XD][XD][/XD][XD=h:l|cls:fx][FORMULA={=IFERROR(INDEX($A$2:$A$4,MATCH(ROW(A6),SUMIF(OFFSET($B$1,0,0,ROW($B$1:$B$4),1),">0"),1)),"")}]C[/FORMULA][/XD][/XR][XR][XH]8[/XH][XD=ch:15.75][/XD][XD][/XD][XD][/XD][XD][/XD][XD=h:l|cls:fx][FORMULA={=IFERROR(INDEX($A$2:$A$4,MATCH(ROW(A7),SUMIF(OFFSET($B$1,0,0,ROW($B$1:$B$4),1),">0"),1)),"")}]C[/FORMULA][/XD][/XR][XR][XH]9[/XH][XD=ch:15.75][/XD][XD][/XD][XD][/XD][XD][/XD][XD=h:l|cls:fx][FORMULA={=IFERROR(INDEX($A$2:$A$4,MATCH(ROW(A8),SUMIF(OFFSET($B$1,0,0,ROW($B$1:$B$4),1),">0"),1)),"")}]C[/FORMULA][/XD][/XR][XR][XH]10[/XH][XD=ch:15.75][/XD][XD][/XD][XD][/XD][XD][/XD][XD=h:l|cls:fx][FORMULA={=IFERROR(INDEX($A$2:$A$4,MATCH(ROW(A9),SUMIF(OFFSET($B$1,0,0,ROW($B$1:$B$4),1),">0"),1)),"")}][/FORMULA][/XD][/XR][/RANGE][RANGE=cls:xl2bb-extra-200|t:cf|f:xtra][XR][XD]E2:E10[/XD][XD=fw:b]E2[/XD][XD=c:FF0000]=IFERROR(INDEX($A$2:$A$4,MATCH(ROW(A1),SUMIF(OFFSET($B$1,0,0,ROW($B$1:$B$4),1),">0"),1)),"")[/XD][/XR][/RANGE]
Hình như bạn gửi bài bị lỗi thì phải.
 
Bạn này chơi giúp nữa vời quá hà!!! Chép công thức ra cho người ta luôn đi!

Mã:
{=IFERROR(INDEX($A$2:$A$4,MATCH(ROW(A9),SUMIF(OFFSET($B$1,0,0,ROW($B$1:$B$4),1),">0"),1)),"")}

Lưu ý: Đây là công thức mảng, bạn không cần phải gõ 2 dấu ngoặc móc ( { } ) sau đó bạn bấm tổ hợp phím Ctr+Shift+Enter thì nó ra.
 
Cảm ơn các bạn nhé, mình đang thử nghiệm công thức
Bài đã được tự động gộp:

Thử:
=IFERROR(INDEX($A$2:$A$4,MATCH(ROW(A1)-1,SUMIF(OFFSET($B$1,0,0,ROW($B$1:$B$4),1),">0"),1)),"")

Ctrl+Shift+Enter.
Bạn ơi mình thay đổi số lượng bên cột B thì cho ra giá trị không đúng!
 
Lần chỉnh sửa cuối:
Cảm ơn các bạn nhé, mình đang thử nghiệm công thức
Bài đã được tự động gộp:


Bạn ơi mình thay đổi số lượng bên cột B thì cho ra giá trị không đúng!

Thay đổi bao nhiêu?, không đúng dòng nào? giá trị kết quả nhiều hơn hay ít hơn giá trị mong muốn?

Tải file không đúng lên.
Đây này bạn, mình thay đổi giá trị bên cột B
 
Xin mọi ng chỉ giáo, mình có file excel:
A. B
A. 2.
B. 3
C. 4
Mình muốn xuất dữ liệu thành
A
A
B
B
B
C
C
C
C
Cám ơn mọi ng!
Bạn copy code này :
Mã:
Sub Insert_Banghi()
Dim i As Long, j As Long, k As Long, Tongdong As Long
Dim sArr(), dArr()
    Tongdong = 0
    sArr = Sheet2.Range("A2:B" & Sheet2.[A65536].End(xlUp).Row).Value
    For i = 1 To UBound(sArr, 1)
        Tongdong = Tongdong + sArr(i, 2)
    Next
ReDim dArr(1 To Tongdong, 1 To 1)
    For i = 1 To UBound(sArr, 1)
        For j = 1 To sArr(i, 2)
            k = k + 1
            dArr(k, 1) = sArr(i, 1)
        Next
    Next
Sheet2.Range("D2:D10000").ClearContents
If k Then Sheet2.[D2].Resize(k, 1) = dArr
End Sub
 

File đính kèm

  • Copy_00.xlsm
    54.6 KB · Đọc: 2
Bạn copy code này :
Mã:
Sub Insert_Banghi()
Dim i As Long, j As Long, k As Long, Tongdong As Long
Dim sArr(), dArr()
    Tongdong = 0
    sArr = Sheet2.Range("A2:B" & Sheet2.[A65536].End(xlUp).Row).Value
    For i = 1 To UBound(sArr, 1)
        Tongdong = Tongdong + sArr(i, 2)
    Next
ReDim dArr(1 To Tongdong, 1 To 1)
    For i = 1 To UBound(sArr, 1)
        For j = 1 To sArr(i, 2)
            k = k + 1
            dArr(k, 1) = sArr(i, 1)
        Next
    Next
Sheet2.Range("D2:D10000").ClearContents
If k Then Sheet2.[D2].Resize(k, 1) = dArr
End Sub
Cảm ơn nhé để mình thử
 
Mình dùng VBE không quen, nên mình thêm cột với dùng tạm hàm vậy.
Bảng của mình có thể áp dụng cho chuỗi ký tự, số lặp lại là 0 nhé.
Mình thấy bạn trên chưa làm đc
 

File đính kèm

  • AABB.xlsx
    10.9 KB · Đọc: 5
Nếu bạn có Office 2019 có hàm nối chuỗi Textjoin, hàm Concat kết hợp với Rept bạn thử nối tất cả dòng thành 1 chuỗi duy nhất rồi dùng chức năng Data > Text to Columns tách chuỗi ra thành nhiều cột > cuối cùng copy transpose lại thành hàng thử xem.
 
Web KT
Back
Top Bottom