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
RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

MayPowerBICarousel

Fabric Monthly Update - May 2024

Check out the May 2024 Fabric update to learn about new features.

LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.

Top Solution Authors
Top Kudoed Authors