在Excel中按指定的重復(fù)次數(shù)填充數(shù)據(jù)到一列_第1頁
在Excel中按指定的重復(fù)次數(shù)填充數(shù)據(jù)到一列_第2頁
在Excel中按指定的重復(fù)次數(shù)填充數(shù)據(jù)到一列_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、在 Excel 中按指定的重復(fù)次數(shù)填充數(shù)據(jù)到一列在工作中有時需要將 Excel 某列中的數(shù)據(jù)按指定的次數(shù)依次重復(fù)填充到另一列。 例如在下圖的示例中, 要將 A 列的編號按 B 列對應(yīng)次數(shù)重復(fù)填充到 D 列,即首先將第一個編號“ WOY756”在 D 列中填充 2 次,接著將第二個編號 “ QLG752” 填充 1 次,將第三個編號 “RWR880”填充 5 次, ??捎脭?shù)組公式或VBA 來實現(xiàn)這樣的填充在 D2 單元格輸入下面的數(shù)組公式后按Ctrl+Shift+Enter束,然后拖動填充柄向下填充公式,直到最后一個編號按指定的次數(shù)全部出現(xiàn)為止。公式 1:結(jié)=OFFSET(A$1,MIN(IF(

2、COUNTIF($D$1:D1,A$2:A$21)說明:COUNTIF函數(shù)統(tǒng)計公式所在單元格以上區(qū)域中所產(chǎn)生的各個 “編號 ”數(shù)量,將其與B 列對應(yīng)次數(shù)進(jìn)行對比,如果未達(dá)到 B 列對應(yīng)次數(shù),則返回“編號 ”相對 A1 單元格的偏移量,否則返回“FALSE”,這將得到一個包含“FALSE”和偏移量的數(shù)組。 MIN 函數(shù)取得最小值,即“編號 ”的偏移量,最后用 OFFSET 函數(shù)返回 “編號 ”。公式 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&g

3、t;=COLUMN($A:$J),ROW($B$2:$B$21)產(chǎn)”生一個 20 行 10 列由 FALSE 和數(shù)字組成的數(shù)組,其中的數(shù)字為各 “編號 ”對應(yīng)的行號,且各數(shù)字的數(shù)量與B 列的重復(fù)次數(shù)相同。如16 行 “BXQ763”對應(yīng)的 “重復(fù)次數(shù) ”為 3,數(shù)組中即包含 3 個 “16”?!癈OLUMN($A:$J)” 需根據(jù) B 列的最大值進(jìn)行修改,例如“重復(fù)次數(shù)”中最大值為 26,則改為“ COLUMN($A:$Z) ”。公式 3:=INDEX(A$2:A$21,MATCH(ROW(A1)-1,SUBTOTAL(9,OFF SET(B$1,ROW($1:$21),1)說明:MATCH函

4、數(shù)的第二個參數(shù)“ SUBTOTAL(9,OFFSET(B$1,ROW($1:$21) ,在”本例中產(chǎn)生一個對 B 列數(shù)字進(jìn)行累加的內(nèi)存數(shù)組 “ 0;2;3;8;10;13;22;29;31;37;44;46;56;59;69;72;75;85;94;97;99 ”,第三個參數(shù)為 “ 1,”MATCH 函數(shù)會查找小于或等于第一個參數(shù)的最大值, 并返回其在數(shù)組中的相對位置, 即 A2:A21區(qū)域中的相對行號。例如對于D17單元格,MATCH函數(shù)的第一個參數(shù) “ROW(A16)-1”返回15,數(shù)組中小于等于15 的最大值為13,13處于數(shù)組中的第6 個位置,MATCH函數(shù)返回6,公式返回A2:A21

5、區(qū)域中的第6 行數(shù)據(jù),即編號 “ JGN347”。如果數(shù)據(jù)量較大, 用下面的 VBA 代碼較為快捷。 按 Alt+F11 ,打開 VBA 編輯器, 在代碼窗口中粘貼下列代碼并運行即可。 Sub 按指定次數(shù)重復(fù)數(shù)據(jù) ()Dim Rng, Arr()Dim i As Integer, j As Integer, k As Integer Dim LastRow As Integer, Total As Integer LastRow = A65536.End(xlUp).RowTotal = (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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論