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

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Data_Steve
New Member

Labeling between specific values

Below is a table filled with example data. The column on the very right "Expense/Income" shows my desired end-state and what I'm asking help with figuring out. Using the column "Property", I want to create the column "Expense/Income" by marking every row between the values "1150 - Bank Operating #1743" and "1160 - Bank - Escrow #1768" as "Expense". Conversly, for every value between "1160 - Bank - Escrow #1768" and "Total", I want labeled as "Income". You can see that these values are based on monthly files that are named in the first column "Source.Name", and maybe the solution will take that into consideration.

 

The fun thing is the row counts between those values is almost never the same, so I can't just use static indexing. A massive thank you in advance for taking a look at this problem.

 

Source.NamePropertyDebitCreditExpenses/Income
general_ledger-20220701.csv1150 - Bank - Operating #1743nullnullExpense
general_ledger-20220701.csvAddress 1null71.1Expense
general_ledger-20220701.csvProperty 2null32.34Expense
general_ledger-20220701.csvProperty 2null736.94Expense
general_ledger-20220701.csvProperty 3null846.54Expense
general_ledger-20220701.csv1160 - Bank - Escrow #1768800nullIncome
general_ledger-20220701.csv2100 - Management Held Security Deposits500nullIncome
general_ledger-20220701.csv2300 - Unearned Revenue300nullIncome
general_ledger-20220701.csvTotal7408.787408.78Income
general_ledger-20220801.csv1150 - Bank - Operating #1743nullnullExpense
general_ledger-20220801.csvAddress 135nullExpense
general_ledger-20220801.csvProperty 2null736.94Expense
general_ledger-20220801.csvProperty 3null687.94Expense
general_ledger-20220801.csvAddress 1null797.55Expense
general_ledger-20220801.csv1160 - Bank - Escrow #1768nullnullIncome
general_ledger-20220801.csv2100 - Management Held Security DepositsnullnullIncome
general_ledger-20220801.csvProperty 2736.94nullIncome
general_ledger-20220801.csvTotal7392.647392.64Income
general_ledger-20220901.csv1150 - Bank - Operating #1743nullnullExpense
general_ledger-20220901.csvProperty 2null170.75Expense
general_ledger-20220901.csvProperty 2null25Expense
general_ledger-20220901.csvProperty 3null8.64Expense
general_ledger-20220901.csvProperty 2null573.99Expense
general_ledger-20220901.csvProperty 3null839.97Expense
general_ledger-20220901.csvAddress 1null816.39Expense
general_ledger-20220901.csv1160 - Bank - Escrow #1768nullnullIncome
general_ledger-20220901.csv2100 - Management Held Security DepositsnullnullIncome
general_ledger-20220901.csvProperty 2573.99nullIncome
general_ledger-20220901.csvProperty 3839.97nullIncome
general_ledger-20220901.csvAddress 1816.39nullIncome
general_ledger-20220901.csvTotal6665.286665.28Income

 

1 ACCEPTED SOLUTION
wdx223_Daniel
Super User
Super User

=Table.Combine(Table.Group(PreviousStepName,"Property",{"n",each let a=if Text.StartsWith([Property]{0},"1150") then "Expense" else "Income" in Table.AddColumn(_,"Expense/Income",each a)},0,(x,y)=>Byte.From(Text.StartsWith(y,"1150") or Text.StartsWith(y,"1160")))[n])

View solution in original post

1 REPLY 1
wdx223_Daniel
Super User
Super User

=Table.Combine(Table.Group(PreviousStepName,"Property",{"n",each let a=if Text.StartsWith([Property]{0},"1150") then "Expense" else "Income" in Table.AddColumn(_,"Expense/Income",each a)},0,(x,y)=>Byte.From(Text.StartsWith(y,"1150") or Text.StartsWith(y,"1160")))[n])

Helpful resources

Announcements
PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

Top Solution Authors
Top Kudoed Authors