我有列a中的公司列表。在b欄中,我有一個數字。我需要創建一個列表,其中該公司在列表中出現多次數的值:如何根據'n'作爲單元格中的數字插入'n'行數
Company A 4
Company B 2
Company C 3
我想:
Company A
Company A
Company A
Company A
Company B
Company B
Company C
Company C
Company C
所以,這有點一「創建(N )複製功能。
我有列a中的公司列表。在b欄中,我有一個數字。我需要創建一個列表,其中該公司在列表中出現多次數的值:如何根據'n'作爲單元格中的數字插入'n'行數
Company A 4
Company B 2
Company C 3
我想:
Company A
Company A
Company A
Company A
Company B
Company B
Company C
Company C
Company C
所以,這有點一「創建(N )複製功能。
這給一試:
Sub KopyKat()
Dim N As Long, i As Long, K As Long
Dim v As String, kk As Long, m As Long
N = Cells(Rows.Count, "B").End(xlUp).Row
K = 1
For i = 1 To N
kk = Cells(i, "B").Value
v = Cells(i, "A").Value
For m = 1 To kk
Cells(K, "C") = v
K = K + 1
Next m
Next i
End Sub
編輯#1:
宏是非常容易安裝和使用:
如果您保存工作簿,宏將保存它。 如果您正在使用一個版本的Excel更高然後2003,你必須保存 該文件作爲.XLSM而非的.xlsx
要刪除宏:
從Excel使用宏:
要了解更多關於一般的宏,請參閱:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
和
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
必須啓用宏才能使其工作!
我不確定這是真的很簡單/可行的做公式或手動Excel函數,根據您的列表,所以這裏是VBA程序來完成這項工作。
要在Excel中使用此點擊Alt + F11
。轉到插入>模塊。然後將其粘貼在模塊中,並運行它(調整數據範圍和工作表名稱後。
Sub MakeList()
Dim ws As Worksheet
Set ws = Sheets("Sheet1") 'change to your sheet name
With ws
Dim c As Range
For Each c In .Range("A1:A3") ' assumes list in cells A1-B3
.Range("D" & .Rows.Count).End(xlUp).Resize(c.Offset(, 1)).Value = c.Value 'builds list in column C
Next
End With
End Sub
:(我不能將此標記爲另一個答案,它的工作原理與@加里的學生的答案一樣,謝謝你的答案。 – Bevan
巧妙地使用'Offset()'來調整範圍,我會考慮使用數字作爲變量並且只需粘貼X次。很好地完成! – BruceWayne
你需要這些是在列嗎?如果你只是想他們是在一個細胞,一個快速的解決方案(在C列中)使用'= Rept(A1&「」,B1)',這將重複單元格A1中的內容(後跟一個空格)一定的次數,由B1確定 – BruceWayne
我需要它們在一列。我可以看到你的解決方案是如何工作的(upvote for that),但它沒有給我一個單獨的列,它給了我幾行。 – Bevan
你的原始列表有多少行? –