Don't miss your chance to take the Fabric Data Engineer (DP-700) exam on us!
Learn moreNext up in the FabCon + SQLCon recap series: The roadmap for Microsoft SQL and Maximizing Developer experiences in Fabric. All sessions are available on-demand after the live show. Register now
Tengo una tabla similar a la siguiente:
| EmpID | Periodo | Posición | Unidad de Negocio |
| 123 | 2023-01 | Director | A1 |
| 221 | 2023-01 | VP | B2 |
| 333 | 2023-01 | Analista | C5 |
| 444 | 2023-01 | Analista | C5 |
| 123 | 2023-02 | Director | A1 |
| 221 | 2023-02 | MD | B2 |
| 333 | 2023-02 | Analista Senior | N4 |
| 444 | 2023-02 | Analista | N4 |
Me gustaría agregar columnas a la tabla para tener en cuenta 3 escenarios
¡Obviamente, el 4º escenario es que nada cambió!
Así que la tabla de salida debería ser así:
| EmpID | Periodo | Posición | Unidad de Negocio | Promoción | Cambio de BU | Posición anterior | Anterior BU |
| 123 | 2023-01 | Director | A1 | ||||
| 221 | 2023-01 | VP | B2 | ||||
| 333 | 2023-01 | Analista | C5 | ||||
| 444 | 2023-01 | Analista | C5 | ||||
| 123 | 2023-02 | Director | A1 | ||||
| 221 | 2023-02 | MD | B2 | 1 | VP | ||
| 333 | 2023-02 | Analista Senior | N4 | 1 | 1 | Analista | C5 |
| 444 | 2023-02 | Analista | N4 | 1 | C5 |
¡Espero que esto tenga algún sentido!
Gracias de antemano por cualquier sugerencia
Hola
Estas fórmulas de columna calculadas funcionan
Promotion = 1*(and(Data[Position]<>LOOKUPVALUE(Data[Position],Data[Period],CALCULATE(MAX(Data[Period]),FILTER(Data,Data[EmpID]=EARLIER(Data[EmpID])&&Data[Period]<><><>BLANK()))<><>BU change = 1*(and(Data[Business Unit]<>LOOKUPVALUE(Data[Business Unit],Data[Period],CALCULATE(MAX(Data[Period]),FILTER(Data,Data[EmpID]=EARLIER(Data[EmpID])&&Data[Period]BLANK())) Previous position = if(Data[Promotion]=0,BLANK(),LOOKUPVALUE(Data[Position],Data[Period],CALCULATE(MAX(Data[Period]),FILTER(Data,Data[EmpID]=EARLIER(Data[EmpID])&&Data[Period]<>< ode=""><>Previous BU = if(Data[BU change]=0,BLANK(),LOOKUPVALUE(Data[Business Unit],Data[Period],CALCULATE(MAX(Data[Period]),FILTER(Data,Data[EmpID]=EARLIER(Data[EmpID])&&Data[Period]<>< ode=""><>
Espero que esto ayude.

Gracias Ashish! Esto es excelente y funciona perfectamente con el conjunto de datos de ejemplo.
Sin embargo, con mis datos reales hay una complicación, es más como esto:
| EmpID | FTE | Periodo | Posición | Unidad de Negocio |
| 123 | 1 | 2023-01 | Director | A1 |
| 221 | 1 | 2023-01 | VP | B2 |
| 333 | 1 | 2023-01 | Analista | C5 |
| 333 | 0 | 2023-01 | Analista | C2 |
| 444 | 1 | 2023-01 | Analista | C5 |
| 123 | 1 | 2023-02 | Director | A1 |
| 221 | 1 | 2023-02 | MD | B2 |
| 333 | 1 | 2023-02 | Analista Senior | N4 |
| 444 | 1 | 2023-02 | Analista | N4 |
Como puede ver, EmplID no es distinto dentro de un período, y esto rompe la función LOOKUPVALUE.
¿Hay alguna manera de extraer preferentemente de las filas donde FTE no es 0 solo en caso de duplicados dentro del mismo período? Al mismo tiempo, si no hay duplicados, entonces tener cero FTE está bien.
En cualquier caso, gracias por su ayuda porque me puso en la dirección correcta!!!!
Hola
De nada. Muestre el resultado esperado en la nueva tabla que ha compartido.
La tabla de resultados será la misma que en mi pregunta original:
| EmpID | Periodo | Posición | Unidad de Negocio | Promoción | Cambio de BU | Posición anterior | Anterior BU |
| 123 | 2023-01 | Director | A1 | ||||
| 221 | 2023-01 | VP | B2 | ||||
| 333 | 2023-01 | Analista | C5 | ||||
| 444 | 2023-01 | Analista | C5 | ||||
| 123 | 2023-02 | Director | A1 | ||||
| 221 | 2023-02 | MD | B2 | 1 | VP | ||
| 333 | 2023-02 | Analista Senior | N4 | 1 | 1 | Analista | C5 |
| 444 | 2023-02 | Analista | N4 | 1 | C5 |
La diferencia está en la tabla de origen ya que 333 se repiten. ¿Es la forma de ignorar la fila con cero solo en caso de duplicados? De cualquier manera, no es un gran problema y probablemente pueda lidiar con aquellos en la consulta de poder. ¡Todavía tengo curiosidad por ver qué se te ocurre! !
¿Por qué no hay ninguna columna en la tabla de resultados con 1 y 0?
El 1 y 0 es la columna del número FTE. Entonces, en el resultado, para 333 en 2023-02, la UB anterior será C5 correspondiente al ETC = 1 en lugar de C2 correspondiente a ETC = 0.
Tal vez alguien más que entienda su pregunta lo ayude.
If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.
A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.
Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.