Extraer medidas de un libro de Excel

Share on facebook
Share on twitter
Share on linkedin
Share on telegram
Share on whatsapp

Contenidos

Estaba trabajando con un cliente la semana pasada y sucedió lo impensable. El cliente cometió un simple error de edición dentro del cuadro de diálogo de edición de medidas. y corrompió el workbook de Power Pivot. Aún podríamos editar el workbook corrupto, pero las tablas dinámicas dejaron de funcionar. ¡¡Oh no!! ¿Ahora que? Había escrito media docena de nuevas Medidas y ahora todo ese esfuerzo parecía haberse perdido.

Afortunadamente, teníamos copias de seguridad incrementales del workbook que estábamos desarrollando. Bueno, en realidad no fue suerte, fue una buena planificación. Aunque Power Pivot es una herramienta excelente, cualquiera que la use sabrá que es un poco inestable y que puede causar problemas al editar. Como precaucion Siempre mantengo copias de seguridad incrementales de mis libros de trabajo cuando realizo trabajos de modelado de datos.. He optimizado este proceso utilizando una macro de copia de seguridad incremental que creé. Puede leer sobre eso aquí e incluso descargar el código VBA para usarlo usted mismo.

Está bien, pero todavía teníamos un problema. Teníamos una copia de seguridad del workbook, pero esta copia de seguridad no contenía el trabajo de los últimos 30 minutos, aproximadamente media docena de fórmulas DAX. Power Pivot no le permite exportar las medidas y luego reutilizarlas. Pero hay una solución que usa DAX Studio.

¿Qué es DAX Studio?

image_thumb5-3653772 DAX Studio es una gran herramienta que le permite hacer muchas cosas con sus modelos de datos de Excel Power Pivot. Le permitirá utilizar DAX como lenguaje de consulta para interrogar su modelo de datos y muchas otras cosas. Una de esas «otras cosas» que le permite hacer es obtener una lista de todas sus Medidas DAX en una nueva hoja en su workbook.

Usted puede lea más sobre DAX Studio y descárguelo aquí. Tenga en cuenta que instalé la versión 2.2.1 hoy y no funcionó para mí. Actualmente estoy usando la versión 2.1.1 y funciona bien.

Instrucciones paso a paso sobre cómo extraer medidas

Así es como puede extraer sus medidas de un libro de Excel.

Primero necesita instalar DAX Studio. Simplemente descárguelo desde el enlace de arriba. No ejecute DAX Studio cuando se le solicite que lo haga inmediatamente después de la instalación. Simplemente salga después de que finalice la instalación. Asegúrese de tener Excel cerrado cuando ejecute la instalación.

El siguiente paso es abrir Excel, abrir su workbook y luego ejecutar DAX Studio. Encontrará DAX Studio en la pestaña Complementos de la cinta de Excel.

image_thumb6-4013580

Cuando inicie, le preguntará a qué fuente de datos desea conectarse. En esta demostración, me estoy conectando a un modelo de datos en un libro de Excel. Esto es lo que normalmente hacen la mayoría de los usuarios de Excel. También funcionará con una instancia tabular de SSAS si las tiene.

image_thumb7-5348062

Una vez conectado, verá una lista de tablas en su modelo de datos de Power Pivot a la izquierda. El siguiente paso es cambiar a la pestaña DMV en la parte inferior de la pantalla.

image_thumb8-2357103

Cuando haya hecho clic en la pestaña DMV, verá una lista de objetos en el panel de la izquierda. Busque el llamado MDSCHEMA_MEASURES y arrástrelo al panel de edición de la derecha.

image_thumb9-7523411

Luego, DAX Studio escribirá automáticamente la consulta requerida para extraer las Medidas del workbook.

image_thumb10-5489144

Antes de ejecutar la consulta, debe cambiar la configuración de salida para que envíe los resultados a una hoja de cálculo limpia dentro de su workbook. Cuando termine, haga clic en el botón Ejecutar para ejecutar la consulta.

image_thumb11-9981904

Después de ejecutar la consulta, notará que hay una nueva hoja en su workbook que contiene todos los detalles de sus medidas.

image_thumb12-5802854

Pero hay mucha información aquí que probablemente no le interese. Puede limpiar manualmente los datos eliminando lo que no es importante. Realmente solo necesitas el nombre y la fórmula (columnas D y N) y tal vez un par más. He escrito una pequeña macro de VBA para limpiar la salida de DAX Studio para este ejercicio. No dude en utilizar este código si lo desea. Si no sabe cómo usar este código VBA, puede leer sobre cómo hacerlo aquí.

Sub CleanDAXStudioMeasures()
    Application.ScreenUpdating = False
    Columns("A:B").Delete Shift:=xlToLeft
    Columns("C:D").Delete Shift:=xlToLeft
    Columns("C:I").Delete Shift:=xlToLeft
    Columns("D:G").Delete Shift:=xlToLeft
    Columns("E:E").Delete Shift:=xlToLeft
    Columns("C:C").ColumnWidth = 50
    Range("A1").Select
    
    While Selection.Value <> ""
        If Left(Selection.Value, 1) = "$" Then
            Selection.EntireRow.Delete
        Else
            If Left(Selection.Offset(0, 1).Value, 1) = "_" Then
                Selection.EntireRow.Delete
            Else
                Selection.Offset(1, 0).Select
            End If
        End If
    Wend
    Range("A1").Select
    Selection.EntireColumn.Delete
    Range("C1").Value = "Table"
    Range("E1").Value = "Full Formula"
    ActiveSheet.ListObjects.Add(xlSrcRange, Range("A1").CurrentRegion, xlYes).Name = "Table1"
    Range("E2").FormulaR1C1 = "=RC[-4]&"":=""&RC[-3]"
        Columns("A:E").EntireColumn.AutoFit
    Application.ScreenUpdating = True
End Sub

Después de ejecutar la macro anterior, terminará con una tabla que contiene la información relevante, incluidas las siguientes fórmulas completas en la última columna.

image_thumb13-2765655

Simplemente puede cortar y pegar estas fórmulas una a la vez en el área de cálculo en la parte inferior de cada tabla dentro de la ventana de Power Pivot de la última copia de respaldo del workbook. Tenga en cuenta que, a continuación, deberá aplicar manualmente cualquier formato de datos que necesite.

image_thumb14-1067335

!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version=’2.0′;
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window,document,’script’,
‘https://connect.facebook.net/en_US/fbevents.js’);
fbq(‘init’, ‘639916389503636’);
fbq(‘track’, ‘PageView’);

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.