2015-10-22 59 views
0

我有列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 )複製功能。

+1

你需要這些是在列嗎?如果你只是想他們是在一個細胞,一個快速的解決方案(在C列中)使用'= Rept(A1&「」,B1)',這將重複單元格A1中的內容(後跟一個空格)一定的次數,由B1確定 – BruceWayne

+0

我需要它們在一列。我可以看到你的解決方案是如何工作的(upvote for that),但它沒有給我一個單獨的列,它給了我幾行。 – Bevan

+0

你的原始列表有多少行? –

回答

4

這給一試:

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 

enter image description here

編輯#1:

宏是非常容易安裝和使用:

  1. ALT-F11帶來打開VBE窗口
  2. ALT-I ALT + M打開一個新的模塊
  3. 粘貼的東西並關閉VBE窗口

如果您保存工作簿,宏將保存它。 如果您正在使用一個版本的Excel更高然後2003,你必須保存 該文件作爲.XLSM而非的.xlsx

要刪除宏:

  1. 彈出窗口VBE如上
  2. 清晰的代碼進行
  3. 關閉VBE窗口

從Excel使用宏:

  1. ALT-F8
  2. 選擇宏
  3. 觸摸RUN

要了解更多關於一般的宏,請參閱:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

必須啓用宏才能使其工作!

+0

是某種腳本/代碼?我在哪裏放? – Bevan

+0

@Bevan看到我的**編輯#1 ** –

+0

非常好的答案,非常感謝。 – Bevan

3

我不確定這是真的很簡單/可行的做公式或手動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 
+0

:(我不能將此標記爲另一個答案,它的工作原理與@加里的學生的答案一樣,謝謝你的答案。 – Bevan

+1

巧妙地使用'Offset()'來調整範圍,我會考慮使用數字作爲變量並且只需粘貼X次。很好地完成! – BruceWayne

相關問題