For example, you have a list of values in Column A, and you want to repeat the values specific number of times based on the number times in Column B, as left screenshot shown, how could you achieve this in Excel?
Repeat cell values X times with formula and helper column
To repeat the cell values X times, you can insert some helper columns and then apply some simple formula, please do with following steps:
1. Insert a column to the left of column A, and type 1 in cell A2, see screenshot:
2. Then put this formula =A2 + C2 into A3, and drag the fill handle to the cell A6, see screenshot:
3. And then enter 1 in cell D2, and fill the number by dragging the Auto Fill to 12 which is the total number of the times number in column C, see screenshot:
4. Then enter this formula=VLOOKUP(D2,$A$1:$B$6,2) into cell E2 and copy down, you will get the following result:
1. In this formula, D2 indicates the first cell you are filled with the number sequence, and A1:B6 stands for the range of the first helper column and the original cell values that you need to repeat.
2. After getting the repeated values, you can copy and paste them as values to any other place.
Copy and insert rows X times based on specific number easily
Normally, there is not a good method for copying and inserting rows multiple times except dealing with manually copy and insert. But, with Kutools for Excel's Duplicate Rows / columns based on cell value feature, you can solve this problem with ease. Click to download Kutools for Excel!
If you consider the first method is difficult to understand, here, I can also introduce you VBA code to solve it.
1. Hold down the ALT + F11 keys, and it opens the Microsoft Visual Basic for Applications window.
2. Click Insert > Module, and paste the following code in the Module Window.
VBA code: Repeat cell values X times
Dim Rng As Range
Dim InputRng As Range, OutRng As Range
xTitleId = "KutoolsforExcel"
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
Set OutRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
Set OutRng = OutRng.Range("A1")
For Each Rng In InputRng.Rows
xValue = Rng.Range("A1").Value
xNum = Rng.Range("B1").Value
OutRng.Resize(xNum, 1).Value = xValue
Set OutRng = OutRng.Offset(xNum, 0)
3. Then press F5 key to run this code, and a prompt box will appear to remind you to select the range which contains the values and repeated times, see screenshot:
4. And click OK, another prompt box will pop out to let you select a cell to put the result, see screenshot:
5. Then click OK, and you will get the result that your selected values have been repeated specified times as you need.
Copy and insert cell values X times with an awesome feature
Sometimes, you may need to copy and insert the cell values x times based on the specific number, Kutools for Excel's Duplicate Rows / Columns based on cell value can help you quickly copy and insert the rows based on the number you specified.
Tips:To apply this Duplicate Rows / Columns based on cell value feature, firstly, you should download the Kutools for Excel, and then apply the feature quickly and easily.
1. Click Kutools > Insert > Duplicate Rows / Columns based on cell value, see screenshot:
2. In the Copy and insert rows & columns dialog box, select Copy and insert rows option in the Type section, then select the data range you want to duplicate, and then specify the repeat time to copy and insert the rows, see screenshot:
4. Then, click Ok or Apply button, you will get the following result as you need:
Select Duplicate or Unique Rows; Select Blank Rows (all cells are empty); Super Find and Fuzzy Find in Many Workbooks; Random Select...
Exact Copy Multiple Cells without changing formula reference; Auto Create References to Multiple Sheets; Insert Bullets, Check Boxes and more...
Extract Text, Add Text, Remove by Position, Remove Space; Create and Print Paging Subtotals; Convert Between Cells Content and Comments...
Super Filter (save and apply filter schemes to other sheets); Advanced Sort by month/week/day, frequency and more; Special Filter by bold, italic...
Combine Workbooks and WorkSheets; Merge Tables based on key columns; Split Data into Multiple Sheets; Batch Convert xls, xlsx and PDF...
More than 300 powerful features. Supports Office/Excel
2007-2019 and 365. Supports all languages. Easy deploying in your enterprise or organization. Full features
30-day free trial. 60-day money back guarantee.
The VLOOKUP table option was the best for my use case. I wanted to take appointment times (i.e. 8am, 9am, 10am, and all in between) and repeat those several times but with different frequencies. It saved having to type a time, copy/paste it multiple times, and then repeat the process until I was done. The VLOOKUP table also gives me the option to change it up some at a later date if I wanted more or less.
Like #John Said, is there a way to have a set range so you do not need to select. I am also trying to paste each individual Value into its own column. I have changed the line Set OutRng=OutRng.offset(xNum,0) to Set OutRng=OutRng.offset(xNum,1) in attempt to make it into columns I seem to be getting an error on the line OutRng.Resize(xNum,1).value=xValue even if I copy and paste the code from this site. Any help would be greatly appreciated.