Como antigua usuaria de Lotus 1-2-3 en un trabajo anterior, Patti se apegó MUY a una función que falta mucho en Excel: la capacidad de transponer datos en tres dimensiones. La transposición bidimensional es compatible con Excel, pero Patti no ha descubierto una manera de tomar una fila, columna o tabla y distribuirla en una pila de hojas de trabajo. Esta era una función que todos los miembros de su oficina de finanzas usaban a diario, y ella realmente la extraña.

Patti tiene razón; no hay una función incorporada para hacer esto en Excel. La opción más cercana es usar una tabla dinámica y las capacidades de «Mostrar páginas» que incluye. En general, sigues estos pasos:

  1. Cree una tabla dinámica a partir de sus datos como lo haría normalmente.

  2. Coloque la columna desde la que desea crear hojas de trabajo en la sección «Filtro de informe» de la tabla dinámica.

  3. Muestre la pestaña Opciones de la cinta. (Esta pestaña es visible solo cuando está trabajando en una tabla dinámica).

  4. Haga clic en la flecha hacia abajo junto a la herramienta Opciones, en el grupo Tabla dinámica en el extremo izquierdo de la cinta.

  5. Elija Mostrar páginas de filtro de informe. Excel le pide que confirme que desea mostrar las páginas.

  6. 6 Haga clic en Aceptar.

El resultado final es una serie de hojas de trabajo, una para cada entrada de la columna que especificó en el paso 2. Cada una de esas hojas de trabajo contiene una «página» de la tabla dinámica.

Si esto aún no hace lo que desea, deberá recurrir al uso de una macro para transponer los datos. Dicha macro puede volverse bastante compleja, pero básicamente todo lo que necesita hacer es recorrer la tabla de datos y mover cada fila (o columna) de datos a su propia hoja de trabajo.

Como ejemplo, la siguiente macro (Transpose3D) tomará cada fila de un rango seleccionado de celdas y colocará esa fila en su propia hoja de trabajo recién creada.

Sub Transpose3D()

Dim rngTbl As Range     Dim wsName As String     Dim R As Integer     Dim C As Integer     Dim i As Integer     Dim j As Integer     Dim Killit As Integer     Dim RCount As Integer     Dim CCount As Integer     Dim Table1() As Variant     Dim Row1() As Variant

RCount = Selection.Rows.Count     CCount = Selection.Columns.Count     If RCount < 2 Then         MsgBox ("Error; Select a range with more than one row.")

GoTo EndItAll     End If

wsName = ActiveSheet.Name     R = ActiveCell.Row     C = ActiveCell.Column

Set rngTbl = Selection     ReDim Table1(1 To RCount, 1 To CCount)

ReDim Row1(1 To 1, 1 To CCount)

Table1() = rngTbl.Value

On Error GoTo Abend

For i = 1 To RCount          If SheetExists(wsName & "_Row_" & i) Then             Killit = MsgBox("Sheet " & wsName & "_Row_" & i & _               " Already Exists!" & vbCrLf & _               "     Cancel: Stop Transposition" & vbCrLf & _               "     OK: Delete Sheet and Continue", vbOKCancel)

If Killit = vbCancel Then GoTo EndItAll             Application.DisplayAlerts = False             Sheets(wsName & "_Row_" & i).Delete             Application.DisplayAlerts = True         End If

Sheets.Add         ActiveSheet.Name = wsName & "_Row_" & i         Cells(R, C).Select         For j = 1 To CCount             Row1(1, j) = Table1(i, j)

Next j         Range(ActiveCell, ActiveCell.Offset(0, CCount - 1)) = Row1()

Sheets(wsName).Select     Next i     GoTo EndItAll

Abend:

MsgBox ("Error in Routine Transpose3D.")



EndItAll:

Application.DisplayAlerts = True End Sub
Function SheetExists(SheetName As String) As Boolean     Dim ws As Worksheet     SheetExists = False     For Each ws In ThisWorkbook.Worksheets         If ws.Name = SheetName Then             SheetExists = True             Exit For         End If     Next ws End Function

_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 (11246) 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-Three-Dimensional_Transpositions [Transposiciones tridimensionales].