División de información en filas (Microsoft Excel)
James tiene algunos datos en una hoja de trabajo que está contenida en una serie de filas. Una de las columnas de los datos incluye celdas que tienen varias líneas por celda. (Los datos de la celda se separaron en líneas presionando Alt + Intro entre los elementos). A James le gustaría dividir estos datos en varias filas. Por ejemplo, si hubiera tres líneas de datos en una sola celda en la fila, entonces los datos en esa celda deben dividirse en tres filas.
Excel proporciona una forma práctica de dividir datos en columnas separadas utilizando la herramienta Texto a columnas. Esto se puede usar para dividir los datos según la presencia del carácter ASCII 10, que es lo que Excel inserta cuando presiona Alt + Enter. El problema es que si bien esto divide correctamente los datos en columnas separadas, no los coloca en filas separadas, como solicitó James.
Eso significa que la solución a este problema debe incluir el uso de una macro. Un enfoque se muestra en el siguiente código. En este ejemplo, la macro asume que desea «expandir» todo en la hoja de trabajo, y que los datos en la hoja de trabajo comienzan en la fila 1.
Sub CellSplitter() Dim Temp As Variant Dim CText As String Dim J As Integer Dim K As Integer Dim L As Integer Dim iColumn As Integer Dim lNumCols As Long Dim lNumRows As Long iColumn = 4 Set wksSource = ActiveSheet Set wksNew = Worksheets.Add iTargetRow = 0 With wksSource lNumCols = Cells(1,Columns.Count).End(xlToLeft).Column lNumRows = Cells(Rows.Count,1).End(xlUp).Row For J = 1 To lNumRows CText = .Cells(J, iColumn).Value Temp = Split(CText, Chr(10)) For K = 0 To UBound(Temp) iTargetRow = iTargetRow + 1 For L = 1 to lNumCols If L <> iColumn Then wksNew.Cells(iTargetRow, L) _ = .Cells(J, L) Else wksNew.Cells(iTargetRow, L) _ = Temp(K) End If Next L Next K Next J End With End Sub
Tenga en cuenta que para ejecutar la macro, deberá especificar, utilizando la variable iColumn, la columna que contiene las celdas que se dividirán.
Como está escrito aquí, la macro divide la información en la cuarta columna. Además, las versiones separadas de las celdas se almacenan en una nueva hoja de trabajo, por lo que la hoja de trabajo original no se ve afectada en absoluto.
_Nota: _
Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.
link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador]
.
ExcelTips es su fuente de formación rentable en Microsoft Excel.
Este consejo (9396) se aplica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 y Excel en Office 365. Puede encontrar una versión de este consejo para la interfaz de menú anterior de Excel aquí:
link: / excel-Splitting_Information_into_Rows [División de información en filas]
.