mikeo
Tengo algunas tablas que estoy tratando de combinar con fines de rendimiento de marketing.
Tengo una Tabla de Publicidad, una Tabla de Ventas, una Tabla de Clientes y una Tabla de Llamadas. Actualmente, una gran cantidad de =Coincidencia de índice, =Coincidencia de índice con varios criterios usando una matriz, =CONTAR.SI y =SI.ERROR en mis fórmulas para obtener información sobre el ROI y el CPC. Sin embargo, estoy tratando con cientos de miles de filas y ahora se tarda aproximadamente una hora en calcular cada vez que actualizo las tablas en mi hoja de cálculo de Excel. Me encantaría dejar este cálculo en Excel y hacerlo con el lenguaje Power Query M si es posible.
A continuación se muestran algunos ejemplos de lo que quiero completar en Power BI:
Asigne una creatividad a una llamada telefónica mediante la coincidencia de índice con varios criterios:
– Uso de las columnas Periódico y Fecha de llamada en mi tabla de llamadas
– Uso de las columnas Nombre de la creatividad, Periódico, Día anterior a la fecha de ejecución y Día posterior a la fecha de ejecución en mi tabla de publicidad
Creé una columna de nombre creativo en mi tabla de llamadas con la siguiente fórmula:
=ÍNDICE(NPÓrdenes[Creative Name],COINCIDIR(1,ÍNDICE(([@Newspaper]=NPOrdenes[Newspaper])*([@[Call Date]]>NPedidos[Day Before Run Date])*([@[Call Date]][Day After End Date]),0,1),0))
Cree una columna de ventas por tipo de artículo usando IFERROR:
Este solo usa la tabla de ventas. En la tabla de ventas hay una fila separada para cada tipo de venta y artículo. Creé columnas por tipo de venta y tipo de artículo vendido. Tengo cuatro tipos diferentes de ventas en mi columna SalesType: «Bruto», «Cancelado», «Devuelto», «Reemplazo», «Intercambiado» y «Tarifa». Divido los artículos vendidos en dos tipos en mi columna Tipo de artículo: una venta para Widget (izquierda y derecha) y todos los demás artículos vendidos.
Creé una columna de Todos los widgets vendidos en mi Tabla de ventas con la siguiente fórmula:
=SI.ERROR(SI(Y([@SalesType]=»Bruto»,O([@[Item Type]]=»L_widget»,[@[Item Type]]=»R_widget»)),[@[Net Sales]],»»),»»)
¿Cómo crearía estas fórmulas en el lenguaje Power Query?
¡Cualquier ayuda sería muy apreciada!
Ashish_Mathur
En respuesta a mikeo
Hola,
La respuesta correcta debería ser AD1, AD1, AD1, AD2, AD3. Esta es la fórmula de columna calculada que he escrito en la Tabla de llamadas del Editor de consultas
=CALCULAR(PRIMERONOENBLANCO(Publicidad[Creative Name],1),FILTRO(Publicidad,Publicidad[Day Before Run Date]<=ANTERIOR(Llamadas[Call Date])&&Publicidad[Day After End Date]>=ANTERIOR(Llamadas[Call Date])&&Publicidad[Newspaper]=ANTES(Llamadas[Newspaper])))
Espero que esto ayude.
Ashish_Mathur
Hola,
Esto debería ser posible. Comparte algunos datos y muestra el resultado esperado.
mikeo
En respuesta a Ashish_Mathur
A continuación se muestra la tabla de llamadas, cada fila es una persona que llama única. La columna Creatividad es el resultado de la fórmula de coincidencia de índice con múltiples criterios entre las dos tablas a continuación.
Periódico | Fecha de llamada | Creativo | ||||||
NP1 | 31/12/2016 | Anuncio 1 | ||||||
NP1 | 31/12/2016 | Anuncio 1 | ||||||
NP2 | 1/1/2017 | Anuncio 2 | ||||||
NP3 | 2/1/2017 | Anuncio 3 | ||||||
NP4 | 2/1/2017 | Anuncio 3 |
A continuación se muestra la tabla de publicidad. Cada fila es única por fecha de ejecución de una creatividad en un periódico.
Periódico | Nombre de la creatividad | Día antes de la fecha de ejecución | Día después de la fecha de finalización |
NP1 | Anuncio 1 | 30/12/2016 | 2/10/2017 |
NP2 | Anuncio 1 | 29/12/2016 | 06/01/2017 |
NP3 | Anuncio 2 | 20/12/2016 | 30/01/2017 |
NP4 | Anuncio 3 | 1/1/2017 | 15/01/2017 |
Ashish_Mathur
En respuesta a mikeo
Hola,
La respuesta correcta debería ser AD1, AD1, AD1, AD2, AD3. Esta es la fórmula de columna calculada que he escrito en la Tabla de llamadas del Editor de consultas
=CALCULAR(PRIMERONOENBLANCO(Publicidad[Creative Name],1),FILTRO(Publicidad,Publicidad[Day Before Run Date]<=ANTERIOR(Llamadas[Call Date])&&Publicidad[Day After End Date]>=ANTERIOR(Llamadas[Call Date])&&Publicidad[Newspaper]=ANTES(Llamadas[Newspaper])))
Espero que esto ayude.
mikeo
En respuesta a Ashish_Mathur
Esto no es del todo leer entre las dos mesas. Cuando trato de crear esto como una nueva medida o una columna calculada, cada nombre de columna al que se hace referencia en la tabla de llamadas aparece atenuado y aparece el siguiente mensaje:
EARLIER/EARLIEST se refiere a un contexto de fila anterior que no existe.
¿Tengo que construir una relación entre estas tablas primero?
Ashish_Mathur
En respuesta a mikeo
Hola,
Está funcionando bien. No se requiere relación. Descargue el archivo PBI desde aquí.
Espero que esto ayude.
Matt Allington
Creo que debería mirar el modelado de datos usando el motor de modelado (power pivot) en su lugar. Esto es para lo que está diseñado Power BI.
Este artículo que escribí describe Power pivot, pero es lo mismo en Power bi. https://exceleratorbi.com.au/que-es-power-pivot/