Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Don't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.

Reply
Syndicate_Admin
Administrator
Administrator

Se requiere ayuda con el índice

Hola, estoy tratando de crear un índice de lecciones para tenerlas en el orden correcto cuando miro un gráfico de líneas. Desafortunadamente no es tan sencillo, ya que hay un par de excepciones.

Estos datos provienen de una carpeta con varios archivos Excel idénticos (1 archivo p/semana).

En cada archivo hay 9 hojas. Las primeras 3 hojas tienen solo 12 "Lecciones"

PEROSRM1M2MBM3M4MLM5M6MEMDGRACIASTRT1T2TUBERCULOSIST3T4TLT5T6ENTDWAWRW1W2WBW3W4WLW5W6NOSOTROSEnana blancaTHATHRTH1TH2THBTH3TH4THLTH5TH6ELTHD

Las otras 6 hojas tienen 13 "lecciones"

PEROSRM1M2M3MBM4M5MLM6M7MEMDGRACIASTRT1T2T3TUBERCULOSIST4T5TLT6T7ENTDWAWRW1W2W3WBW4W5WLW6W7NOSOTROSEnana blancaTHATHRTH1TH2TH3THBTH4TH5THLTH6TH7ELTHD

El viernes, todas las hojas solo tienen 11 "lecciones".

HACEVIEF1F2FBF3F4SSFLHACEFO

He usado el código a continuación, pero el índice viene como nulo.

= Tabla.AgregarColumna(
#"Tipo cambiado",
"Índice de lecciones",
cada uno deja
Dígitos = {"0".." 9"},
Divida la columna Lección por dígitos y no dígitos
LessonSplit = Splitter.SplitTextByCharacterTransition(cada uno no List.Contains(Digits,_), each List.Contains(Digits,_))([Lección]),
DayOfWeek = try LessonSplit{0} de lo contrario nulo,
NumberPart = try Number.From(LessonSplit{1}) de lo contrario nulo,
DayOfWeekIndex = if DayOfWeek = "M" entonces 0
de lo contrario, si DayOfWeek = "T", entonces 1
de lo contrario, si DayOfWeek = "W", entonces 2
de lo contrario, si DayOfWeek = "TH", entonces 4
de lo contrario, si DayOfWeek = "F", entonces 5
de lo contrario, null,
Determinar si estamos en las tres primeras hojas o en las otras
ColumnCount = Table.ColumnCount(#"Tipo cambiado"),
SlotIndex = if ColumnCount = 12 then // Hojas con 1 columna menos (primeras 3 hojas)
si NumberPart = null entonces
si [Lección] = "MA" entonces 10
de lo contrario, si [Lección] = "MR" entonces 20
de lo contrario, si [Lección] = "M1", entonces 30
de lo contrario, si [Lección] = "M2", entonces 40
de lo contrario, si [Lección] = "MB" entonces 50
de lo contrario, si [Lección] = "M3" entonces 60
de lo contrario, si [Lección] = "M4" entonces 70
de lo contrario, si [Lección] = "ML" entonces 80
de lo contrario, si [Lección] = "M5" entonces 90
de lo contrario, si [Lección] = "M6" entonces 100
de lo contrario, si [Lección] = "YO" entonces 110
de lo contrario, si [Lección] = "MD", entonces 120
else null
más
DayOfWeekIndex * 100 + NumberPart
de lo contrario, si ColumnCount = 13 then // Hojas con todas las columnas (hojas restantes)
si NumberPart = null entonces
si [Lección] = "MA" entonces 10
de lo contrario, si [Lección] = "MR" entonces 20
de lo contrario, si [Lección] = "M1", entonces 30
de lo contrario, si [Lección] = "M2", entonces 40
de lo contrario, si [Lección] = "M3" entonces 50
de lo contrario, si [Lección] = "MB", entonces 60
de lo contrario, si [Lección] = "M4" entonces 70
de lo contrario, si [Lección] = "M5" entonces 80
de lo contrario, si [Lección] = "ML" entonces 90
de lo contrario, si [Lección] = "M6" entonces 100
de lo contrario, si [Lección] = "YO" entonces 110
de lo contrario, si [Lección] = "MD", entonces 120
else null
más
DayOfWeekIndex * 100 + NumberPart
de lo contrario, si ColumnCount = 10, entonces // Viernes con ranuras especiales
si NumberPart = null entonces
si [Lección] = "FA" entonces 10
de lo contrario, si [Lección] = "FR" entonces 20
de lo contrario, si [Lección] = "F1" entonces 30
de lo contrario, si [Lección] = "F2" entonces 40
de lo contrario, si [Lección] = "FB" entonces 50
de lo contrario, si [Lección] = "F3" entonces 60
de lo contrario, si [Lección] = "F4" entonces 70
de lo contrario, si [Lección] = "FF" entonces 80
de lo contrario, si [Lección] = "FL" entonces 90
de lo contrario, si [Lección] = "FA" entonces 100
de lo contrario, si [Lección] = "FO" entonces 110
else null
más
DayOfWeekIndex * 100 + NumberPart
else null // Reserva para recuentos de columnas inesperados
en
Índice de ranuras
)

¿Alguien puede ayudar?

Gracias

3 REPLIES 3
Syndicate_Admin
Administrator
Administrator

Hola @VDS9

¿Cuál es el resultado esperado? Además, no tenemos acceso a sus datos sin procesar.

danextian_0-1738225760672.png

Syndicate_Admin
Administrator
Administrator

Proporcione datos de muestra que cubran su problema o pregunta por completo, en un formato utilizable (no como una captura de pantalla).
No incluyas información confidencial. No incluya nada que no esté relacionado con el problema o la pregunta.
Muestre el resultado esperado en función de los datos de muestra que proporcionó.

¿Necesitas ayuda para subir datos? https://community.fabric.microsoft.com/t5/Community-Blog/How-to-provide-sample-data-in-the-Power-BI-...
¿Quieres respuestas más rápidas? https://community.fabric.microsoft.com/t5/Desktop/How-to-Get-Your-Question-Answered-Quickly/m-p/1447...

Por favor, consulte el archivo: Sample Report.pbix

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Prices go up Feb. 11th.

Jan25PBI_Carousel

Power BI Monthly Update - January 2025

Check out the January 2025 Power BI update to learn about new features in Reporting, Modeling, and Data Connectivity.

Jan NL Carousel

Fabric Community Update - January 2025

Find out what's new and trending in the Fabric community.

Top Solution Authors