Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
6 years ago

Split rows by interval in M query

Hi,

I have two tables:

-Account scheduled

Schedule_NameLine_NoRow_NoTotalingTotaling_TypeNew_PageIndentation
BALANSAS P750000E.I.1.3'4013'|4014Registravimo sąskaitosFALSE3
PARDAVIMAI1000015..5zBendrosios sąskaitosFALSE0
PINIGŲ.SRA40000I.1.1.1.27..27130Registravimo sąskaitosFALSE0
.....................

- Account

NoNameAccount_TypeTotalingParent_Acc_No
1ILGALAIKIS TURTASTotal1..199999 
11Nematerialusis turtasTotal111..1191
111Plėtros darbaiTotal1110..111911
1110Plėtros darbų atlikimo savikainaPosting 111
1118Plėtros darbų vertės amortizacija (−)Posting 111
1119Plėtros darbų vertės sumažėjimas (−)Posting 111
112PrestižasTotal1120..112911
1120Prestižo įsigijimo savikainaPosting 112
1128Prestižo vertės amortizacija (−)Posting 112
1129Prestižo vertės sumažėjimas (−)Posting 112
113Programinė įrangaTotal1130..113911
1130Programinės įrangos įsigijimo savikainaPosting 113
1138Programinė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_NameLine_NoRow_NoTotalingTotaling_TypeNew_PageIndentation
BALANSAS P750000E.I.1.34013Registravimo sąskaitosFALSE3
BALANSAS P750000E.I.1.34014Registravimo sąskaitosFALSE3

 

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_NameLine_NoRow_NoTotalingTotaling_TypeNew_PageIndentation
PINIGŲ.SRA40000I.1.1.1.27110Registravimo sąskaitosFALSE0
PINIGŲ.SRA40000I.1.1.1.27111Registravimo sąskaitosFALSE0
PINIGŲ.SRA40000I.1.1.1.27112Registravimo sąskaitosFALSE0
PINIGŲ.SRA40000I.1.1.1.27113Registravimo sąskaitosFALSE0
PINIGŲ.SRA40000I.1.1.1.27120Registravimo sąskaitosFALSE0
PINIGŲ.SRA40000I.1.1.1.27121Registravimo sąskaitosFALSE0
PINIGŲ.SRA40000I.1.1.1.2713Registravimo sąskaitosFALSE0
PINIGŲ.SRA40000I.1.1.1.27130Registravimo sąskaitosFALSE0

 

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*)

PARDAVIMAI1000015000Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015001Bendrosios sąskaitosFALSE0
PARDAVIMAI10000150071Bendrosios sąskaitosFALSE0
PARDAVIMAI10000150072Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015009Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015090Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015091Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015092Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015093Bendrosios sąskaitosFALSE0
PARDAVIMAI10000151Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015400Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015401Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015500Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015501Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015600Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015601Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015604Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015609Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015802Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015803Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015804Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015805Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015806Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015808Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015809Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015810Bendrosios sąskaitosFALSE0

The table should look like this:

Schedule_NameLine_NoRow_NoTotalingTotaling_TypeNew_PageIndentation
BALANSAS P750000E.I.1.34013Registravimo sąskaitosFALSE3
BALANSAS P750000E.I.1.34014Registravimo sąskaitosFALSE3
PINIGŲ.SRA40000I.1.1.1.27110Registravimo sąskaitosFALSE0
PINIGŲ.SRA40000I.1.1.1.27111Registravimo sąskaitosFALSE0
PINIGŲ.SRA40000I.1.1.1.27112Registravimo sąskaitosFALSE0
PINIGŲ.SRA40000I.1.1.1.27113Registravimo sąskaitosFALSE0
PINIGŲ.SRA40000I.1.1.1.27120Registravimo sąskaitosFALSE0
PINIGŲ.SRA40000I.1.1.1.27121Registravimo sąskaitosFALSE0
PINIGŲ.SRA40000I.1.1.1.2713Registravimo sąskaitosFALSE0
PINIGŲ.SRA40000I.1.1.1.27130Registravimo sąskaitosFALSE0
PARDAVIMAI1000015000Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015001Bendrosios sąskaitosFALSE0
PARDAVIMAI10000150071Bendrosios sąskaitosFALSE0
PARDAVIMAI10000150072Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015009Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015090Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015091Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015092Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015093Bendrosios sąskaitosFALSE0
PARDAVIMAI10000151Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015400Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015401Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015500Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015501Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015600Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015601Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015604Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015609Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015802Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015803Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015804Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015805Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015806Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015808Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015809Bendrosios sąskaitosFALSE0
PARDAVIMAI1000015810Bendrosios sąskaitosFALSE0

 

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-msft's avatar
    v-juanli-msft
    Community 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

     

    • Anonymous's avatar
      Anonymous
      Not applicable

      Hi, v-juanli-msft , thanks, for replay,

      There are those accounts in the Account table...

      27110Sąskaita SEB Eur
      27111Sąskaita SEB kita valiuta
      27112Sąskaita SEB VISA
      27113Sąskaita SEB MasterCard
      27120Sąskaita DNB Eur
      27121Sąskaita DNB kita
      2713Sąskaita AS DNB Pank EESTI Filial
      27130Są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

      CaseInterval
      Case11..3
      Case25..12
      Case37..10

       

      How do I get split rows by interval, like this with M language:

      CaseInterval
      Case11
      Case12
      Case13
      Case25
      Case26
      Case27
      Case28
      Case29
      Case210
      Case211
      Case212
      Case37
      Case38
      Case39
      Case310