# data[].attributes.body
RELATED

Devuelve un valor relacionado de otra tabla.

RELATED(<column>)

Columna: Columna que contiene los valores que quiere recuperar.
Valor devuelto: Valor único que está relacionado con la fila actual.

La función RELATED requiere que haya una relación entre la tabla actual y la tabla con información relacionada.
Especifique la columna que contiene los datos que quiere;
la función seguirá una relación de varios a uno existente para capturar el valor de la columna especificada en la tabla relacionada.
Si no existe ninguna relación, debe crear una

SUMX(FILTER( 'InternetSales_USD'
,  RELATED('SalesTerritory'[SalesTerritoryCountry])
<>"United States" )    ,'InternetSales_USD'[SalesAmount_USD])

Ejemplo
= SUMX(FILTER( 'InternetSales_USD'
,  RELATED('SalesTerritory'[SalesTerritoryCountry]) <>"United States"   )  ,'InternetSales_USD'[SalesAmount_USD])

# data[].attributes.body
Función RELATED Ejemplo simple

# data[].attributes.attachment_link.readable_text
Supongamos ahora que en el campo Country de la tabla Geography tenemos el país en el que se encuentra el revendedor que ha realizado cada venta. Veamos, en primer lugar, las ventas por país. Para esto llevamos, simplemente, la medida que suma las ventas ( Sales) y el campo Country a una visualización tipo tabla:

La medida Sales está sumando el campo que contiene la cifra de ventas, SalesAmount:

Sales = SUM(Sales[SalesAmount])

Supongamos ahora que deseamos ser capaces de analizar las ventas en todos los países que no sean Estados Unidos. Una primera opción sería utilizar la función CALCULATE para revaluar la medida Sales:

Non USA sales = CALCULATE([Sales], Geography[Country] <> "United States")

Podemos llevar esta nueva medida a una visualización tipo tarjeta para ver el resultado:

La cifra es correcta, pero si llevamos esta medida a una tabla junto con el campo Country para mostrar las ventas fuera de los Estados Unidos segmentadas por país, el resultado es el siguiente:

Por supuesto, esto no es lo que deseábamos, pero la función CALCULATE está modificando el contexto para considerar siempre todos los países que no sean los Estados Unidos.

Lo que queremos es poder usar el campo SalesAmount que contiene la cifra de venta pero incluyendo solo aquellos registros de ventas que no se correspondan con revendedores situados en los Estados Unidos. Para empezar, podemos construir esta tabla que solo considere los países de interés usando la función FILTER. El pseudocódigo sería algo así como:

Tabla filtrada = FILTER(
Sales,
Países que no sean Estados Unidos
)

Si la tabla Sales incluyese un campo " Country", bastaría con añadir Country <> "United States" en lugar de " Países que no sean Estados Unidos", pero no lo incluye. Esta información relativa al país en el que se encuentra el revendedor está en otra tabla, la mencionada tabla de Geography, tabla que no es accesible directamente como argumento de la función FILTER. Es en esta situación en la que la función RELATED resulta de utilidad. Suponiendo que existe una relación (de tipo varios a uno, o uno a uno) entre la tabla de ventas y la de geografía, podemos acceder desde la primera a la columna Country de la segunda con la expresión:

RELATED(Geography[Country])

Ahora, el código de la tabla filtrada sería el siguiente:

Tabla filtrada = FILTER(
Sales,
RELATED(Geography[Country]) <> "United States"
)

Tal y como se ha comentado, la función RELATED requiere de un contexto de fila, lo que podemos conseguir usando una función de escaneo de tablas como SUMX, que es exactamente lo que buscamos para calcular el total de ventas:

Sales non USA =
SUMX(
FILTER(
Sales,
RELATED(Geography[Country]) <> "United States"
),
Sales[SalesAmount]
)

Lo que estamos haciendo es sumar el campo SalesAmount para cada una de las filas de la tabla filtrada, y ésta está compuesta por el conjunto de registros de ventas que no tienen asociado como país a los Estados Unidos, pero sin excluir otros posibles filtros que vengan dados por el contexto.

De esta forma, si llevamos esta medida a una tarjeta:

...comprobamos que el total es correcto. Y si la llevamos a una tabla junto con el campo Country de Geography:

...vemos que la medida se adapta correctamente al contexto, tal y como queríamos.

# data[].attributes.attachment_link.description
Supongamos ahora que en el campo Country de la tabla Geography tenemos el país en el que se encuentra el revendedor que ha realizado cada venta. Veamos, en primer lugar, las ventas por país.

# data[].attributes.body
CALCULATE es una de las funciones más versátiles en Power BI. Te permite filtrar tus datos, desde Filtros sencillos, hasta funciones de inteligencia de tiempo y más. Eso significa que normalmente vas a utilizar CALCULATE para poder hacer comparaciones de tus datos.

La función RELATED devuelve el valor relacionado con la fila siendo considerada de una columna de otra tabla (tabla remota), suponiendo que existe una relación entre la tabla en la que se esté trabajando (tabla actual) y la remota, que esta relación sea de tipo "varios-a-uno" o "uno-a-uno" y que la tabla remota sea la correspondiente al lado "uno" -es decir, que se trate de una tabla de dimensiones-.

La función SWITCH evalúa una expresión y devuelve un resultado u otro en función del valor resultante de la evaluación, valor que se encontrará entre una lista de opciones

# data[].attributes.body
Investigar sobre los usos y aplicaciones de Dax. Principalmente las siguientes: calculate, related, switch.

# data[].attributes.body
El lenguaje DAX fue creado específicamente para el manejo de modelos de datos, mediante el uso de fórmulas y expresiones. DAX se utiliza en varios productos de Microsoft, como Microsoft Power BI, Microsoft Analysis Services y Microsoft Power Pivot para Excel. Todos estos productos comparten el mismo motor interno, llamado Tabular

Switch
Devuelve resultados diferentes según el valor de una expresión

Related
Devuelve un valor relacionado de otra tabla.

Calculate
Evalúa una expresión en un contexto modificado por filtros.

# data[].attributes.body
CALCULATE

Evalúa una expresión en un contexto de filtro modificado
CALCULATE(<expression>[, <filter1> [, <filter2> [, …]]])

Parámetros
expression: Expresión que se va a evaluar.
filter1, filter2,… (Opcional):  Expresiones booleanas o expresiones de tabla que definen filtros o funciones de modificador de filtro.

Ejemplos:
Total sales on the last selected date =
CALCULATE (    SUM ( Sales[Sales Amount] ),'Sales'[OrderDateKey] = MAX ( 'Sales'[OrderDateKey] ))

CALCULATE( SUM(Sales[Sales Amount]), 'Product'[Color] = "Blue"