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

Enhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.

Reply
Bassil74
Helper I
Helper I

Add conditions to run different part of the PQ code

I have this part of my script that i need to make it run different parts of the code based on the language:

let
    Language = "En",
    //Language = "Fr",
    //Language = "Sp",
    .
    .
    .
  If Language = "En" then run this part
      Expandmeasurement = Table.ExpandRecordColumn(Table.ExpandListColumn(MergeColumns, "measurements"), "measurements", { "Reached", "monitoringPeriodId,""CumulativeReach"}, {"Reached", "monitoringPeriodId","CumulativeReach"}),
    ReorderColumns = Table.ReorderColumns(WithMp_Number,{"monitoringPeriodId", "Reached", "CumulativeReach"}),
 elsif 
Language = "Fr" then run this part
      Expandmeasurement = Table.ExpandRecordColumn(Table.ExpandListColumn(MergeColumns, "measurements"), "measurements", { "Atteints", "monitoringPeriodId","Cumulatteints"}, {"attent", "monitoringPeriodId","Cumulatteints"}),
    ReorderColumns = Table.ReorderColumns(WithMp_Number,{"monitoringPeriodId", "Atteints", "Cumulatteints"}),
elsif 
Language = "SP" then run this part
      Expandmeasurement = Table.ExpandRecordColumn(Table.ExpandListColumn(MergeColumns, "measurements"), "measurements", { "Atendidas", "monitoringPeriodId","Alcance cumulativo"}, {"Atendidas", "monitoringPeriodId","Alcance cumulativo"}),
    ReorderColumns = Table.ReorderColumns(WithMp_Number,{"monitoringPeriodId", "Atendidas", "Alcance cumulativo"}),
in
ReorderColumns

Apprecaite any ideas about it, thank you

4 REPLIES 4
Bassil74
Helper I
Helper I

To clarify, i want a script that branch logic to  implement scertain parts:

 

I need help to include a condition in my steps for the below part: 

 

    Language = "En",
    //Language = "Fr",
    //Language = "Sp",
 
  If Language "En" then      Expandmeasurement = Table.ExpandRecordColumn(Table.ExpandListColumn(MergeColumns, "measurements"), "measurements", { "Reached", "monitoringPeriodId,""CumulativeReach"}, {"Reached", "monitoringPeriodId","CumulativeReach"}),
    ReorderColumns = Table.ReorderColumns(WithMp_Number,{"monitoringPeriodId""Reached""CumulativeReach"}),
 els if 
Language "Fr" then run this part
      Expandmeasurement = Table.ExpandRecordColumn(Table.ExpandListColumn(MergeColumns"measurements"), "measurements", { "Atteints""monitoringPeriodId","Cumulatteints"}, {"attent""monitoringPeriodId","Cumulatteints"}),
    ReorderColumns = Table.ReorderColumns(WithMp_Number,{"monitoringPeriodId""Atteints""Cumulatteints"}),
els if 
Language "Sp" then run this part
      Expandmeasurement = Table.ExpandRecordColumn(Table.ExpandListColumn(MergeColumns"measurements"), "measurements", { "Atendidas""monitoringPeriodId","Alcance cumulativo"}, {"Atendidas""monitoringPeriodId","Alcance cumulativo"}),
    ReorderColumns = Table.ReorderColumns(WithMp_Number,{"monitoringPeriodId""Atendidas""Alcance cumulativo"}),
in
Expandmeasurement 

Thank you,

 

 your code results in different column names which will trigger a meta data update, and is generally considered to be a bad thing. Would be better if you would keep the column names constant and carry the language choice through as a separate column.
lbendlin
Super User
Super User

replace "elsif"  with "else if"  and you should be good.

 

or you could refactor the code and move the checks inside the list.

 

However your code results in different column names which will trigger a meta data update, and is generally considered to be a bad thing. Would be better if you would keep the column names constant and carry the language choice through as a separate column.

 

 

THank you @lbendlin . The data is fetched from an API which has columns values stored in three languages, i.e. "Reached", "Atteints", "Atendidas". Iam now rethinking it, to store these values in a separate table i.e. measurementsLanguages

Language      | Value1       |  Value2

En                  | Reached    | CumulativeReach

Fr                  | Atteints      Cumulatteints

 

and use them based on the language selected.

let

    Language = "En",
    //Language = "Atteints",
    //Language = "Atendidas",
 
 If Language "En" then run this part
     Expandmeasurement = Table.ExpandRecordColumn(Table.ExpandListColumn(MergeColumns"measurements"), "measurements", { "Reached""monitoringPeriodId,""CumulativeReach"}, {measurementsLanguages[Value1]"monitoringPeriodId",measurementsLanguages[Value2]}),
    ReorderColumns = Table.ReorderColumns(WithMp_Number,{"monitoringPeriodId""Reached""CumulativeReach"}),
...etc

But this didn't wok as it assume measurementsLanguages is the datasource and is not fetching the column names. Do you have any better way of doing it?    

Helpful resources

Announcements
July 2025 community update carousel

Fabric Community Update - July 2025

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

July PBI25 Carousel

Power BI Monthly Update - July 2025

Check out the July 2025 Power BI update to learn about new features.

Join our Fabric User Panel

Join our Fabric User Panel

This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.