«Ordenar por columna» – de una tabla relacionada

Un usuario Pregunto ✅

BenEaton

Hola a todos,

Estoy buscando ordenar una columna, pero por un orden definido en otra tabla. Específicamente, tengo rangos militares que se muestran alfabéticamente:

capitán

Comandante

sargento

sargento etc…

… Pero, naturalmente, deseo mostrarlos en un orden definido que he colocado en una tabla de «Referencia»:

Referencia:

Referencia de rango.png

A pesar de que existe una relación entre «Rango» en la tabla fuente y «Rango» en los datos de referencia, no puedo ordenar los datos por el «Orden de rango» columna. Solo puedo ordenar por columnas que ya existen en los datos de origen. No quiero editar los datos de origen directamente, ya que trabajo con muchas hojas de cálculo diferentes que comparten esta columna «Clasificación», por lo que necesito un método de clasificación.

Probé una columna calculada de este formato:

RankOrder1 = LOOKUPVALUE(‘Referencia'[RankOrder],’Referencia'[Rank],’Tabla de origen'[Rank]) que agrega el número correcto al lado de cada valor, pero cuando intento ordenar por esto, muestra el error:

«Error de ordenar por otra columna: esta columna no se puede ordenar por una columna que ya está ordenada, directa o indirectamente, por esta columna».

Cualquier ayuda sería muy apreciada.

ben

Hola @BenEaton,

Ahora que ha creado una relación de uno a muchos entre tabla de referencia y tabla de origen, luego puede usar esta fórmula para agregar la columna calculada: ClasificaciónOrden1 = RELACIONADO(Referencia[RankOrder]). Luego, haga clic en el botón «ordenar por columna», seleccione Orden de clasificación1. En las visualizaciones, segmentaciones, etc., tendrá la clasificación correcta.

Si tiene alguna pregunta, no dude en preguntar.

Atentamente,
Yuliana Gu

benny_sal

solo pruebe PBI después de que la compañía cambie de Tableau (demasiado caro para ellos), lo encuentro más fácil en la versión de PBI de noviembre de 2017 como esta:

1. Ordene «Rango» en la tabla de referencia por «Orden de rango» y conéctelo a la tabla principal con la relación correcta.

2. simplemente use «Clasificación» de la tabla de referencia (no Clasificación en la tabla principal) en su gráfico/tabla, se ordenará por orden de clasificación, funciona y ya lo estoy intentando.

Lo siento por cualquier tipo de error, el inglés no es mi idioma nativo, en general, PBI es muy pobre en comparación con Tableau, pero obtenemos lo que pagamos

benny sal

Hola @BenEaton,

Ahora que ha creado una relación de uno a muchos entre tabla de referencia y tabla de origen, luego puede usar esta fórmula para agregar la columna calculada: ClasificaciónOrden1 = RELACIONADO(Referencia[RankOrder]). Luego, haga clic en el botón «ordenar por columna», seleccione Orden de clasificación1. En las visualizaciones, segmentaciones, etc., tendrá la clasificación correcta.

Si tiene alguna pregunta, no dude en preguntar.

Atentamente,
Yuliana Gu

BenEaton

En respuesta a v-yulgu-msft

Hola @Greg_Deckler y @v-yulgu-msft,

¡No tuve tiempo de verificar para publicar datos de muestra, cuando se resolvió! la función RELACIONADA funcionó perfectamente, muchas gracias @v-yulgu-msft.

greg_deckler

En su visualización, use la columna Clasificación de su tabla de referencia y establezca Ordenar por en su columna RankOrder. Si existe una relación entre sus tablas basada en el Rango, entonces no debería importar que use la columna de su tabla de referencia versus su tabla de hechos y luego tendrá la clasificación correcta.

BenEaton

En respuesta a greg_deckler

Hola @Greg_Deckler,

Gracias por el consejo, pero acabo de intentarlo sin ningún efecto, ¡las visualizaciones, las segmentaciones, etc. permanecen en orden alfabético! Es una relación de uno a muchos desde la referencia a los datos de origen (si eso importa).

greg_deckler

En respuesta a BenEaton

¿Puede publicar algunos datos de muestra o su archivo PBIX para que pueda echar un vistazo o recrear su problema?

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *