Forum Discussion
Split rows by interval in M query
Hi,
I have two tables:
-Account scheduled
| Schedule_Name | Line_No | Row_No | Totaling | Totaling_Type | New_Page | Indentation |
| BALANSAS P | 750000 | E.I.1.3 | '4013'|4014 | Registravimo sąskaitos | FALSE | 3 |
| PARDAVIMAI | 10000 | 1 | 5..5z | Bendrosios sąskaitos | FALSE | 0 |
| PINIGŲ.SRA | 40000 | I.1.1.1. | 27..27130 | Registravimo sąskaitos | FALSE | 0 |
| ... | ... | ... | ... | ... | ... | ... |
- Account
| No | Name | Account_Type | Totaling | Parent_Acc_No |
| 1 | ILGALAIKIS TURTAS | Total | 1..199999 | |
| 11 | Nematerialusis turtas | Total | 111..119 | 1 |
| 111 | Plėtros darbai | Total | 1110..1119 | 11 |
| 1110 | Plėtros darbų atlikimo savikaina | Posting | 111 | |
| 1118 | Plėtros darbų vertės amortizacija (−) | Posting | 111 | |
| 1119 | Plėtros darbų vertės sumažėjimas (−) | Posting | 111 | |
| 112 | Prestižas | Total | 1120..1129 | 11 |
| 1120 | Prestižo įsigijimo savikaina | Posting | 112 | |
| 1128 | Prestižo vertės amortizacija (−) | Posting | 112 | |
| 1129 | Prestižo vertės sumažėjimas (−) | Posting | 112 | |
| 113 | Programinė įranga | Total | 1130..1139 | 11 |
| 1130 | Programinės įrangos įsigijimo savikaina | Posting | 113 | |
| 1138 | Programinės įrangos vertės amortizacija (−) | Posting | 113 |
Column Account_scheduled[Totaling] shows what Account[No] is summed up for a particular Account Scheduled line.
I what to split interval to rows according to Accout_Scheduled [Totaling] column:
If there is "I" it should take just those Account [No]. From Example '4013'|4014 there would be:
| Schedule_Name | Line_No | Row_No | Totaling | Totaling_Type | New_Page | Indentation |
| BALANSAS P | 750000 | E.I.1.3 | 4013 | Registravimo sąskaitos | FALSE | 3 |
| BALANSAS P | 750000 | E.I.1.3 | 4014 | Registravimo sąskaitos | FALSE | 3 |
If there is ".." it should take interval from...to for those Account[No] where Account[Account_Type] = "Posting". From Example 27.. 27130 there would be:
| Schedule_Name | Line_No | Row_No | Totaling | Totaling_Type | New_Page | Indentation |
| PINIGŲ.SRA | 40000 | I.1.1.1. | 27110 | Registravimo sąskaitos | FALSE | 0 |
| PINIGŲ.SRA | 40000 | I.1.1.1. | 27111 | Registravimo sąskaitos | FALSE | 0 |
| PINIGŲ.SRA | 40000 | I.1.1.1. | 27112 | Registravimo sąskaitos | FALSE | 0 |
| PINIGŲ.SRA | 40000 | I.1.1.1. | 27113 | Registravimo sąskaitos | FALSE | 0 |
| PINIGŲ.SRA | 40000 | I.1.1.1. | 27120 | Registravimo sąskaitos | FALSE | 0 |
| PINIGŲ.SRA | 40000 | I.1.1.1. | 27121 | Registravimo sąskaitos | FALSE | 0 |
| PINIGŲ.SRA | 40000 | I.1.1.1. | 2713 | Registravimo sąskaitos | FALSE | 0 |
| PINIGŲ.SRA | 40000 | I.1.1.1. | 27130 | Registravimo sąskaitos | FALSE | 0 |
And if there is an interval ".." and with the end z, it should take Account[No] where Account[Account_Type] = "Posting" and begins with these numbers. From Example 5..5z (it's like 5..5*)
| PARDAVIMAI | 10000 | 1 | 5000 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5001 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 50071 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 50072 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5009 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5090 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5091 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5092 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5093 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 51 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5400 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5401 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5500 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5501 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5600 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5601 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5604 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5609 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5802 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5803 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5804 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5805 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5806 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5808 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5809 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5810 | Bendrosios sąskaitos | FALSE | 0 |
The table should look like this:
| Schedule_Name | Line_No | Row_No | Totaling | Totaling_Type | New_Page | Indentation |
| BALANSAS P | 750000 | E.I.1.3 | 4013 | Registravimo sąskaitos | FALSE | 3 |
| BALANSAS P | 750000 | E.I.1.3 | 4014 | Registravimo sąskaitos | FALSE | 3 |
| PINIGŲ.SRA | 40000 | I.1.1.1. | 27110 | Registravimo sąskaitos | FALSE | 0 |
| PINIGŲ.SRA | 40000 | I.1.1.1. | 27111 | Registravimo sąskaitos | FALSE | 0 |
| PINIGŲ.SRA | 40000 | I.1.1.1. | 27112 | Registravimo sąskaitos | FALSE | 0 |
| PINIGŲ.SRA | 40000 | I.1.1.1. | 27113 | Registravimo sąskaitos | FALSE | 0 |
| PINIGŲ.SRA | 40000 | I.1.1.1. | 27120 | Registravimo sąskaitos | FALSE | 0 |
| PINIGŲ.SRA | 40000 | I.1.1.1. | 27121 | Registravimo sąskaitos | FALSE | 0 |
| PINIGŲ.SRA | 40000 | I.1.1.1. | 2713 | Registravimo sąskaitos | FALSE | 0 |
| PINIGŲ.SRA | 40000 | I.1.1.1. | 27130 | Registravimo sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5000 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5001 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 50071 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 50072 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5009 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5090 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5091 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5092 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5093 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 51 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5400 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5401 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5500 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5501 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5600 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5601 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5604 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5609 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5802 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5803 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5804 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5805 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5806 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5808 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5809 | Bendrosios sąskaitos | FALSE | 0 |
| PARDAVIMAI | 10000 | 1 | 5810 | Bendrosios sąskaitos | FALSE | 0 |
I 'm willing to do it in M query.
I managed split the rows just with "|", with others I got stuck, maybe you can help me?
There are Example tables if you need: https://drive.google.com/open?id=1vPo4_-Qa6pHfBcdN3-BaPxBKYzKrqzJB
2 Replies
- v-juanli-msftCommunity Support
Hi Anonymous
I don't understand how to get the numbers below in total column
27110 27111 27112 27113
27120 27121
2713 27130
There is no such number in Account table.
Best Regards
Maggie- AnonymousNot applicable
Hi, v-juanli-msft , thanks, for replay,
There are those accounts in the Account table...
27110 Sąskaita SEB Eur 27111 Sąskaita SEB kita valiuta 27112 Sąskaita SEB VISA 27113 Sąskaita SEB MasterCard 27120 Sąskaita DNB Eur 27121 Sąskaita DNB kita 2713 Sąskaita AS DNB Pank EESTI Filial 27130 Sąskaita AS DNB Pank EESTI Filial But I think that this case is a bit confusing, let's make it easier to understand
We have a table with a list of numbers, from 1 to 20
No. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 And another table where is two columns: case and interval
Case Interval Case1 1..3 Case2 5..12 Case3 7..10 How do I get split rows by interval, like this with M language:
Case Interval Case1 1 Case1 2 Case1 3 Case2 5 Case2 6 Case2 7 Case2 8 Case2 9 Case2 10 Case2 11 Case2 12 Case3 7 Case3 8 Case3 9 Case3 10