在Excel中怎么按指定的重復次數填充數據到一列
在Excel中怎么按指定的重復次數填充數據到一列
在工作中有時需要將Excel某列中的數據按指定的次數依次重復填充到另一列。可用數組公式或VBA來實現這樣的填充。以下是學習啦小編為您帶來的關于在Excel中按指定的重復次數填充數據到一列,希望對您有所幫助。
在Excel中按指定的重復次數填充數據到一列
例如在下圖的示例中,要將A列的編號 按B列對應次數重復填充到D列,即首先將第一個編號“WOY756”在D列中填充2次,接著將第二個編號“QLG752”填充1次,將第三個編號 “RWR880”填充5次,……。
可用數組公式或VBA來實現這樣的填充,在D2單元格輸入下面的數組公式后按Ctrl+Shift+Enter結束(下同),然后拖動填充柄向下填充公式,直到最后一個編號按指定的次數全部出現為止。
公式1:
=OFFSET(A class="main">
在Excel中怎么按指定的重復次數填充數據到一列
在Excel中怎么按指定的重復次數填充數據到一列
在工作中有時需要將Excel某列中的數據按指定的次數依次重復填充到另一列??捎脭到M公式或VBA來實現這樣的填充。以下是學習啦小編為您帶來的關于在Excel中按指定的重復次數填充數據到一列,希望對您有所幫助。
在Excel中按指定的重復次數填充數據到一列
例如在下圖的示例中,要將A列的編號 按B列對應次數重復填充到D列,即首先將第一個編號“WOY756”在D列中填充2次,接著將第二個編號“QLG752”填充1次,將第三個編號 “RWR880”填充5次,……。
可用數組公式或VBA來實現這樣的填充,在D2單元格輸入下面的數組公式后按Ctrl+Shift+Enter結束(下同),然后拖動填充柄向下填充公式,直到最后一個編號按指定的次數全部出現為止。
公式1:
=OFFSET(A$1,MIN(IF(COUNTIF($D$1:D1,A$2:A$21)
說明:COUNTIF函數統(tǒng)計公式所在單元格以上區(qū)域中所產生的各個“編號”數量,將其與B列對應次數進行對比,如果未達到B列對應次數,則返回“編號” 相對A1單元格的偏移量,否則返回“FALSE”,這將得到一個包含“FALSE”和偏移量的數組。MIN函數取得最小值,即“編號”的偏移量,最后用 OFFSET函數返回“編號”。
公式2:
=INDEX(A$1:A$21,SMALL(IF($B$2:$B$21>=COLUMN($A:$J),ROW($B$2:$B$21)),ROW(A1)))
說明:“IF($B$2:$B$21>=COLUMN($A:$J),ROW($B$2:$B$21))”產生一個20行10列由FALSE和數字組成的數組(本例A列共 有20個數據,最大重復次數為10),其中的數字為各“編號”對應的行號,且各數字的數量與B列的重復次數相同。如16行“BXQ763”對應的“重復次 數”為3,數組中即包含3個“16”。“COLUMN($A:$J)”需根據B列的最大值進行修改,例如“重復次數”中最大值為26,則改為 “COLUMN($A:$Z)”。
公式3:
=INDEX(A$2:A$21,MATCH(ROW(A1)-1,SUBTOTAL(9,OFFSET(B$1,,,ROW($1:$21))),1))
說明:MATCH函數的第二個參數“SUBTOTAL(9,OFFSET(B$1,,,ROW($1:$21)))”,在本例中產生一個對B列數字進行累 加的內存數組“{0;2;3;8;10;13;22;29;31;37;44;46;56;59;69;72;75;85;94;97;99}”,第三個 參數為“1”,MATCH函數會查找小于或等于第一個參數的最大值,并返回其在數組中的相對位置,即A2:A21區(qū)域中的相對行號。例如對于D17單元 格,MATCH函數的第一個參數“ROW(A16)-1”返回15,數組中小于等于15的最大值為13,13處于數組中的第6個位置,MATCH函數返回 6,公式返回A2:A21區(qū)域中的第6行數據,即編號“JGN347”。
如果數據量較大,用下面的VBA代碼較為快捷。按Alt+F11,打開VBA編輯器,在代碼窗口中粘貼下列代碼并運行即可。
Sub 按指定次數重復數據()
Dim Rng, Arr()
Dim i As Integer, j As Integer, k As Integer
Dim LastRow As Integer, Total As Integer
LastRow = [A65536].End(xlUp).Row
Total = Application.WorksheetFunction.Sum(Range("B2:B" & LastRow))
Rng = Range("A1:B" & LastRow)
ReDim Arr(1 To Total, 1 To 1)
For i = 2 To UBound(Rng, 1)
For j = 1 To Rng(i, 2)
k = k + 1
Arr(k, 1) = Rng(i, 1)
Next
Next
Range("D2").Resize(k, 1).Value = Arr
End Sub
猜你喜歡:
:A)說明:COUNTIF函數統(tǒng)計公式所在單元格以上區(qū)域中所產生的各個“編號”數量,將其與B列對應次數進行對比,如果未達到B列對應次數,則返回“編號” 相對A1單元格的偏移量,否則返回“FALSE”,這將得到一個包含“FALSE”和偏移量的數組。MIN函數取得最小值,即“編號”的偏移量,最后用 OFFSET函數返回“編號”。
公式2:
=INDEX(A class="main">
在Excel中怎么按指定的重復次數填充數據到一列
在工作中有時需要將Excel某列中的數據按指定的次數依次重復填充到另一列。可用數組公式或VBA來實現這樣的填充。以下是學習啦小編為您帶來的關于在Excel中按指定的重復次數填充數據到一列,希望對您有所幫助。
在Excel中按指定的重復次數填充數據到一列
例如在下圖的示例中,要將A列的編號 按B列對應次數重復填充到D列,即首先將第一個編號“WOY756”在D列中填充2次,接著將第二個編號“QLG752”填充1次,將第三個編號 “RWR880”填充5次,……。
可用數組公式或VBA來實現這樣的填充,在D2單元格輸入下面的數組公式后按Ctrl+Shift+Enter結束(下同),然后拖動填充柄向下填充公式,直到最后一個編號按指定的次數全部出現為止。
公式1:
=OFFSET(A$1,MIN(IF(COUNTIF($D$1:D1,A$2:A$21)
說明:COUNTIF函數統(tǒng)計公式所在單元格以上區(qū)域中所產生的各個“編號”數量,將其與B列對應次數進行對比,如果未達到B列對應次數,則返回“編號” 相對A1單元格的偏移量,否則返回“FALSE”,這將得到一個包含“FALSE”和偏移量的數組。MIN函數取得最小值,即“編號”的偏移量,最后用 OFFSET函數返回“編號”。
公式2:
=INDEX(A$1:A$21,SMALL(IF($B$2:$B$21>=COLUMN($A:$J),ROW($B$2:$B$21)),ROW(A1)))
說明:“IF($B$2:$B$21>=COLUMN($A:$J),ROW($B$2:$B$21))”產生一個20行10列由FALSE和數字組成的數組(本例A列共 有20個數據,最大重復次數為10),其中的數字為各“編號”對應的行號,且各數字的數量與B列的重復次數相同。如16行“BXQ763”對應的“重復次 數”為3,數組中即包含3個“16”。“COLUMN($A:$J)”需根據B列的最大值進行修改,例如“重復次數”中最大值為26,則改為 “COLUMN($A:$Z)”。
公式3:
=INDEX(A$2:A$21,MATCH(ROW(A1)-1,SUBTOTAL(9,OFFSET(B$1,,,ROW($1:$21))),1))
說明:MATCH函數的第二個參數“SUBTOTAL(9,OFFSET(B$1,,,ROW($1:$21)))”,在本例中產生一個對B列數字進行累 加的內存數組“{0;2;3;8;10;13;22;29;31;37;44;46;56;59;69;72;75;85;94;97;99}”,第三個 參數為“1”,MATCH函數會查找小于或等于第一個參數的最大值,并返回其在數組中的相對位置,即A2:A21區(qū)域中的相對行號。例如對于D17單元 格,MATCH函數的第一個參數“ROW(A16)-1”返回15,數組中小于等于15的最大值為13,13處于數組中的第6個位置,MATCH函數返回 6,公式返回A2:A21區(qū)域中的第6行數據,即編號“JGN347”。
如果數據量較大,用下面的VBA代碼較為快捷。按Alt+F11,打開VBA編輯器,在代碼窗口中粘貼下列代碼并運行即可。
Sub 按指定次數重復數據()
Dim Rng, Arr()
Dim i As Integer, j As Integer, k As Integer
Dim LastRow As Integer, Total As Integer
LastRow = [A65536].End(xlUp).Row
Total = Application.WorksheetFunction.Sum(Range("B2:B" & LastRow))
Rng = Range("A1:B" & LastRow)
ReDim Arr(1 To Total, 1 To 1)
For i = 2 To UBound(Rng, 1)
For j = 1 To Rng(i, 2)
k = k + 1
Arr(k, 1) = Rng(i, 1)
Next
Next
Range("D2").Resize(k, 1).Value = Arr
End Sub
猜你喜歡:
:$B>=COLUMN($A:$J),ROW($B在Excel中怎么按指定的重復次數填充數據到一列
在工作中有時需要將Excel某列中的數據按指定的次數依次重復填充到另一列。可用數組公式或VBA來實現這樣的填充。以下是學習啦小編為您帶來的關于在Excel中按指定的重復次數填充數據到一列,希望對您有所幫助。
在Excel中按指定的重復次數填充數據到一列
例如在下圖的示例中,要將A列的編號 按B列對應次數重復填充到D列,即首先將第一個編號“WOY756”在D列中填充2次,接著將第二個編號“QLG752”填充1次,將第三個編號 “RWR880”填充5次,……。
可用數組公式或VBA來實現這樣的填充,在D2單元格輸入下面的數組公式后按Ctrl+Shift+Enter結束(下同),然后拖動填充柄向下填充公式,直到最后一個編號按指定的次數全部出現為止。
公式1:
=OFFSET(A$1,MIN(IF(COUNTIF($D$1:D1,A$2:A$21)
說明:COUNTIF函數統(tǒng)計公式所在單元格以上區(qū)域中所產生的各個“編號”數量,將其與B列對應次數進行對比,如果未達到B列對應次數,則返回“編號” 相對A1單元格的偏移量,否則返回“FALSE”,這將得到一個包含“FALSE”和偏移量的數組。MIN函數取得最小值,即“編號”的偏移量,最后用 OFFSET函數返回“編號”。
公式2:
=INDEX(A$1:A$21,SMALL(IF($B$2:$B$21>=COLUMN($A:$J),ROW($B$2:$B$21)),ROW(A1)))
說明:“IF($B$2:$B$21>=COLUMN($A:$J),ROW($B$2:$B$21))”產生一個20行10列由FALSE和數字組成的數組(本例A列共 有20個數據,最大重復次數為10),其中的數字為各“編號”對應的行號,且各數字的數量與B列的重復次數相同。如16行“BXQ763”對應的“重復次 數”為3,數組中即包含3個“16”。“COLUMN($A:$J)”需根據B列的最大值進行修改,例如“重復次數”中最大值為26,則改為 “COLUMN($A:$Z)”。
公式3:
=INDEX(A$2:A$21,MATCH(ROW(A1)-1,SUBTOTAL(9,OFFSET(B$1,,,ROW($1:$21))),1))
說明:MATCH函數的第二個參數“SUBTOTAL(9,OFFSET(B$1,,,ROW($1:$21)))”,在本例中產生一個對B列數字進行累 加的內存數組“{0;2;3;8;10;13;22;29;31;37;44;46;56;59;69;72;75;85;94;97;99}”,第三個 參數為“1”,MATCH函數會查找小于或等于第一個參數的最大值,并返回其在數組中的相對位置,即A2:A21區(qū)域中的相對行號。例如對于D17單元 格,MATCH函數的第一個參數“ROW(A16)-1”返回15,數組中小于等于15的最大值為13,13處于數組中的第6個位置,MATCH函數返回 6,公式返回A2:A21區(qū)域中的第6行數據,即編號“JGN347”。
如果數據量較大,用下面的VBA代碼較為快捷。按Alt+F11,打開VBA編輯器,在代碼窗口中粘貼下列代碼并運行即可。
Sub 按指定次數重復數據()
Dim Rng, Arr()
Dim i As Integer, j As Integer, k As Integer
Dim LastRow As Integer, Total As Integer
LastRow = [A65536].End(xlUp).Row
Total = Application.WorksheetFunction.Sum(Range("B2:B" & LastRow))
Rng = Range("A1:B" & LastRow)
ReDim Arr(1 To Total, 1 To 1)
For i = 2 To UBound(Rng, 1)
For j = 1 To Rng(i, 2)
k = k + 1
Arr(k, 1) = Rng(i, 1)
Next
Next
Range("D2").Resize(k, 1).Value = Arr
End Sub
猜你喜歡:
:$B)),ROW(A1)))說明:“IF($B
在Excel中怎么按指定的重復次數填充數據到一列
在工作中有時需要將Excel某列中的數據按指定的次數依次重復填充到另一列??捎脭到M公式或VBA來實現這樣的填充。以下是學習啦小編為您帶來的關于在Excel中按指定的重復次數填充數據到一列,希望對您有所幫助。
在Excel中按指定的重復次數填充數據到一列
例如在下圖的示例中,要將A列的編號 按B列對應次數重復填充到D列,即首先將第一個編號“WOY756”在D列中填充2次,接著將第二個編號“QLG752”填充1次,將第三個編號 “RWR880”填充5次,……。
可用數組公式或VBA來實現這樣的填充,在D2單元格輸入下面的數組公式后按Ctrl+Shift+Enter結束(下同),然后拖動填充柄向下填充公式,直到最后一個編號按指定的次數全部出現為止。
公式1:
=OFFSET(A$1,MIN(IF(COUNTIF($D$1:D1,A$2:A$21)
說明:COUNTIF函數統(tǒng)計公式所在單元格以上區(qū)域中所產生的各個“編號”數量,將其與B列對應次數進行對比,如果未達到B列對應次數,則返回“編號” 相對A1單元格的偏移量,否則返回“FALSE”,這將得到一個包含“FALSE”和偏移量的數組。MIN函數取得最小值,即“編號”的偏移量,最后用 OFFSET函數返回“編號”。
公式2:
=INDEX(A$1:A$21,SMALL(IF($B$2:$B$21>=COLUMN($A:$J),ROW($B$2:$B$21)),ROW(A1)))
說明:“IF($B$2:$B$21>=COLUMN($A:$J),ROW($B$2:$B$21))”產生一個20行10列由FALSE和數字組成的數組(本例A列共 有20個數據,最大重復次數為10),其中的數字為各“編號”對應的行號,且各數字的數量與B列的重復次數相同。如16行“BXQ763”對應的“重復次 數”為3,數組中即包含3個“16”。“COLUMN($A:$J)”需根據B列的最大值進行修改,例如“重復次數”中最大值為26,則改為 “COLUMN($A:$Z)”。
公式3:
=INDEX(A$2:A$21,MATCH(ROW(A1)-1,SUBTOTAL(9,OFFSET(B$1,,,ROW($1:$21))),1))
說明:MATCH函數的第二個參數“SUBTOTAL(9,OFFSET(B$1,,,ROW($1:$21)))”,在本例中產生一個對B列數字進行累 加的內存數組“{0;2;3;8;10;13;22;29;31;37;44;46;56;59;69;72;75;85;94;97;99}”,第三個 參數為“1”,MATCH函數會查找小于或等于第一個參數的最大值,并返回其在數組中的相對位置,即A2:A21區(qū)域中的相對行號。例如對于D17單元 格,MATCH函數的第一個參數“ROW(A16)-1”返回15,數組中小于等于15的最大值為13,13處于數組中的第6個位置,MATCH函數返回 6,公式返回A2:A21區(qū)域中的第6行數據,即編號“JGN347”。
如果數據量較大,用下面的VBA代碼較為快捷。按Alt+F11,打開VBA編輯器,在代碼窗口中粘貼下列代碼并運行即可。
Sub 按指定次數重復數據()
Dim Rng, Arr()
Dim i As Integer, j As Integer, k As Integer
Dim LastRow As Integer, Total As Integer
LastRow = [A65536].End(xlUp).Row
Total = Application.WorksheetFunction.Sum(Range("B2:B" & LastRow))
Rng = Range("A1:B" & LastRow)
ReDim Arr(1 To Total, 1 To 1)
For i = 2 To UBound(Rng, 1)
For j = 1 To Rng(i, 2)
k = k + 1
Arr(k, 1) = Rng(i, 1)
Next
Next
Range("D2").Resize(k, 1).Value = Arr
End Sub
猜你喜歡:
:$B>=COLUMN($A:$J),ROW($B在Excel中怎么按指定的重復次數填充數據到一列
在工作中有時需要將Excel某列中的數據按指定的次數依次重復填充到另一列??捎脭到M公式或VBA來實現這樣的填充。以下是學習啦小編為您帶來的關于在Excel中按指定的重復次數填充數據到一列,希望對您有所幫助。
在Excel中按指定的重復次數填充數據到一列
例如在下圖的示例中,要將A列的編號 按B列對應次數重復填充到D列,即首先將第一個編號“WOY756”在D列中填充2次,接著將第二個編號“QLG752”填充1次,將第三個編號 “RWR880”填充5次,……。
可用數組公式或VBA來實現這樣的填充,在D2單元格輸入下面的數組公式后按Ctrl+Shift+Enter結束(下同),然后拖動填充柄向下填充公式,直到最后一個編號按指定的次數全部出現為止。
公式1:
=OFFSET(A$1,MIN(IF(COUNTIF($D$1:D1,A$2:A$21)
說明:COUNTIF函數統(tǒng)計公式所在單元格以上區(qū)域中所產生的各個“編號”數量,將其與B列對應次數進行對比,如果未達到B列對應次數,則返回“編號” 相對A1單元格的偏移量,否則返回“FALSE”,這將得到一個包含“FALSE”和偏移量的數組。MIN函數取得最小值,即“編號”的偏移量,最后用 OFFSET函數返回“編號”。
公式2:
=INDEX(A$1:A$21,SMALL(IF($B$2:$B$21>=COLUMN($A:$J),ROW($B$2:$B$21)),ROW(A1)))
說明:“IF($B$2:$B$21>=COLUMN($A:$J),ROW($B$2:$B$21))”產生一個20行10列由FALSE和數字組成的數組(本例A列共 有20個數據,最大重復次數為10),其中的數字為各“編號”對應的行號,且各數字的數量與B列的重復次數相同。如16行“BXQ763”對應的“重復次 數”為3,數組中即包含3個“16”。“COLUMN($A:$J)”需根據B列的最大值進行修改,例如“重復次數”中最大值為26,則改為 “COLUMN($A:$Z)”。
公式3:
=INDEX(A$2:A$21,MATCH(ROW(A1)-1,SUBTOTAL(9,OFFSET(B$1,,,ROW($1:$21))),1))
說明:MATCH函數的第二個參數“SUBTOTAL(9,OFFSET(B$1,,,ROW($1:$21)))”,在本例中產生一個對B列數字進行累 加的內存數組“{0;2;3;8;10;13;22;29;31;37;44;46;56;59;69;72;75;85;94;97;99}”,第三個 參數為“1”,MATCH函數會查找小于或等于第一個參數的最大值,并返回其在數組中的相對位置,即A2:A21區(qū)域中的相對行號。例如對于D17單元 格,MATCH函數的第一個參數“ROW(A16)-1”返回15,數組中小于等于15的最大值為13,13處于數組中的第6個位置,MATCH函數返回 6,公式返回A2:A21區(qū)域中的第6行數據,即編號“JGN347”。
如果數據量較大,用下面的VBA代碼較為快捷。按Alt+F11,打開VBA編輯器,在代碼窗口中粘貼下列代碼并運行即可。
Sub 按指定次數重復數據()
Dim Rng, Arr()
Dim i As Integer, j As Integer, k As Integer
Dim LastRow As Integer, Total As Integer
LastRow = [A65536].End(xlUp).Row
Total = Application.WorksheetFunction.Sum(Range("B2:B" & LastRow))
Rng = Range("A1:B" & LastRow)
ReDim Arr(1 To Total, 1 To 1)
For i = 2 To UBound(Rng, 1)
For j = 1 To Rng(i, 2)
k = k + 1
Arr(k, 1) = Rng(i, 1)
Next
Next
Range("D2").Resize(k, 1).Value = Arr
End Sub
猜你喜歡:
:$B))”產生一個20行10列由FALSE和數字組成的數組(本例A列共 有20個數據,最大重復次數為10),其中的數字為各“編號”對應的行號,且各數字的數量與B列的重復次數相同。如16行“BXQ763”對應的“重復次 數”為3,數組中即包含3個“16”。“COLUMN($A:$J)”需根據B列的最大值進行修改,例如“重復次數”中最大值為26,則改為 “COLUMN($A:$Z)”。公式3:
=INDEX(A
在Excel中怎么按指定的重復次數填充數據到一列
在工作中有時需要將Excel某列中的數據按指定的次數依次重復填充到另一列??捎脭到M公式或VBA來實現這樣的填充。以下是學習啦小編為您帶來的關于在Excel中按指定的重復次數填充數據到一列,希望對您有所幫助。
在Excel中按指定的重復次數填充數據到一列
例如在下圖的示例中,要將A列的編號 按B列對應次數重復填充到D列,即首先將第一個編號“WOY756”在D列中填充2次,接著將第二個編號“QLG752”填充1次,將第三個編號 “RWR880”填充5次,……。
可用數組公式或VBA來實現這樣的填充,在D2單元格輸入下面的數組公式后按Ctrl+Shift+Enter結束(下同),然后拖動填充柄向下填充公式,直到最后一個編號按指定的次數全部出現為止。
公式1:
=OFFSET(A$1,MIN(IF(COUNTIF($D$1:D1,A$2:A$21)
說明:COUNTIF函數統(tǒng)計公式所在單元格以上區(qū)域中所產生的各個“編號”數量,將其與B列對應次數進行對比,如果未達到B列對應次數,則返回“編號” 相對A1單元格的偏移量,否則返回“FALSE”,這將得到一個包含“FALSE”和偏移量的數組。MIN函數取得最小值,即“編號”的偏移量,最后用 OFFSET函數返回“編號”。
公式2:
=INDEX(A$1:A$21,SMALL(IF($B$2:$B$21>=COLUMN($A:$J),ROW($B$2:$B$21)),ROW(A1)))
說明:“IF($B$2:$B$21>=COLUMN($A:$J),ROW($B$2:$B$21))”產生一個20行10列由FALSE和數字組成的數組(本例A列共 有20個數據,最大重復次數為10),其中的數字為各“編號”對應的行號,且各數字的數量與B列的重復次數相同。如16行“BXQ763”對應的“重復次 數”為3,數組中即包含3個“16”。“COLUMN($A:$J)”需根據B列的最大值進行修改,例如“重復次數”中最大值為26,則改為 “COLUMN($A:$Z)”。
公式3:
=INDEX(A$2:A$21,MATCH(ROW(A1)-1,SUBTOTAL(9,OFFSET(B$1,,,ROW($1:$21))),1))
說明:MATCH函數的第二個參數“SUBTOTAL(9,OFFSET(B$1,,,ROW($1:$21)))”,在本例中產生一個對B列數字進行累 加的內存數組“{0;2;3;8;10;13;22;29;31;37;44;46;56;59;69;72;75;85;94;97;99}”,第三個 參數為“1”,MATCH函數會查找小于或等于第一個參數的最大值,并返回其在數組中的相對位置,即A2:A21區(qū)域中的相對行號。例如對于D17單元 格,MATCH函數的第一個參數“ROW(A16)-1”返回15,數組中小于等于15的最大值為13,13處于數組中的第6個位置,MATCH函數返回 6,公式返回A2:A21區(qū)域中的第6行數據,即編號“JGN347”。
如果數據量較大,用下面的VBA代碼較為快捷。按Alt+F11,打開VBA編輯器,在代碼窗口中粘貼下列代碼并運行即可。
Sub 按指定次數重復數據()
Dim Rng, Arr()
Dim i As Integer, j As Integer, k As Integer
Dim LastRow As Integer, Total As Integer
LastRow = [A65536].End(xlUp).Row
Total = Application.WorksheetFunction.Sum(Range("B2:B" & LastRow))
Rng = Range("A1:B" & LastRow)
ReDim Arr(1 To Total, 1 To 1)
For i = 2 To UBound(Rng, 1)
For j = 1 To Rng(i, 2)
k = k + 1
Arr(k, 1) = Rng(i, 1)
Next
Next
Range("D2").Resize(k, 1).Value = Arr
End Sub
猜你喜歡:
:A,MATCH(ROW(A1)-1,SUBTOTAL(9,OFFSET(B class="main">在Excel中怎么按指定的重復次數填充數據到一列
在Excel中怎么按指定的重復次數填充數據到一列
在Excel中怎么按指定的重復次數填充數據到一列
在Excel中怎么按指定的重復次數填充數據到一列
如果數據量較大,用下面的VBA代碼較為快捷。按Alt+F11,打開VBA編輯器,在代碼窗口中粘貼下列代碼并運行即可。
Sub 按指定次數重復數據()
Dim Rng, Arr()
Dim i As Integer, j As Integer, k As Integer
Dim LastRow As Integer, Total As Integer
LastRow = [A65536].End(xlUp).Row
Total = Application.WorksheetFunction.Sum(Range("B2:B" & LastRow))
Rng = Range("A1:B" & LastRow)
ReDim Arr(1 To Total, 1 To 1)
For i = 2 To UBound(Rng, 1)
For j = 1 To Rng(i, 2)
k = k + 1
Arr(k, 1) = Rng(i, 1)
Next
Next
Range("D2").Resize(k, 1).Value = Arr
End Sub
猜你喜歡: