Split by Variable Columns in Power Query

Поділитися
Вставка
  • Опубліковано 11 лип 2024
  • Check out our newly launched M Language course ↗️ - goodly.co.in/learn-m-powerquery/
    The default Split by feature in Power Query produces a fixed number of columns. In this videos I'll share an interesting M technique to split by Variable Columns in Power Query. Enjoy!
    ===== ONLINE COURSES =====
    ✔️ Mastering DAX in Power BI -
    goodly.co.in/learn-dax-powerbi/
    ✔️ Power Query Course-
    goodly.co.in/learn-power-query/
    ✔️ Master Excel Step by Step-
    goodly.co.in/learn-excel/
    ✔️ Business Intelligence Dashboards-
    goodly.co.in/learn-excel-dash...
    ===== LINKS 🔗 =====
    Blog 📰 - www.goodly.co.in/blog/
    Corporate Training 👨‍🏫 - www.goodly.co.in/training/
    Need my help on a Project 💻- www.goodly.co.in/consulting/
    Split by Delimiter Blog - www.goodly.co.in/split-by-var...
    ===== CONTACT 🌐 =====
    Twitter - / chandeep2786
    LinkedIn - / chandeepchhabra
    Email - goodly.wordpress@gmail.com
    ===== CHAPTERS =====
    0:00 Intro
    0:37 Split by Columns - The Problem
    2:23 The Logic
    4:22 The Solution
    12:09 Testing the Solution
    13:02 My Courses
    ===== WHO AM I? =====
    A lot of people think that my name is Goodly, it's NOT ;)
    My name is Chandeep. Goodly is my full-time venture where I share what I learn about Excel and Power BI.
    Please browse around, you'd find a ton of interesting videos that I have created :) Cheers!
    - - - - -
    Music By: "After The Fall"
    Track Name: "Tears Of Gaia"
    Published by: Chill Out Records
    - Source: goo.gl/fh3rEJ​
    Official After The Fall UA-cam Channel Below
    ua-cam.com/channels/GQE.html...
    License: Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)
    Full license here: creativecommons.org/licenses
  • Наука та технологія

КОМЕНТАРІ • 145

  • @GoodlyChandeep
    @GoodlyChandeep  8 місяців тому +1

    Check out our newly launched M Language course ↗ - goodly.co.in/learn-m-powerquery/

  • @shirleymoreman6725
    @shirleymoreman6725 7 місяців тому

    Fabulous! Thanks for the clear explanation.

  • @nonoobott8602
    @nonoobott8602 2 роки тому

    Great solution as always. I've learned so much on your channel. Thanks for sharing

  • @pabeader1941
    @pabeader1941 2 роки тому +1

    Great idea. I love the way you conserve steps and combine so much into each one. I do see an issue that will come up with steps beyond these dynamic columns. But I suppose that can be handled as the cases arise.

  • @qiancasper
    @qiancasper 2 роки тому

    Thanks for demonstrating the procedure of solving the problem really amazing

  • @Clau.08
    @Clau.08 3 місяці тому

    mind blown. great tutorial and great explanation!!!!!

  • @jaymehta3320
    @jaymehta3320 2 роки тому +1

    Really amazing. Dynamic columns, even outside split, remains a very challenging area - like pivoting and unpivoting a dynamic list of columns. This video definitely helps.

  • @suki9860
    @suki9860 2 роки тому

    Always cutting-edge, Chandeep. Thanks!

  • @yumyumhotsauce1
    @yumyumhotsauce1 2 роки тому

    wow, this just came just at the right time. I have a use case where I have to do a report on dynamic product category/products. Just subscribed. thanks!

  • @wayneedmondson1065
    @wayneedmondson1065 2 роки тому +4

    Awesome Chandeep! Very clever.. as always. Thanks for walking through the steps.. well explained and easy to follow. Thumbs up!!

  • @JoseMariaGomezMartinez
    @JoseMariaGomezMartinez 2 роки тому

    Glorious! Mastering as always Chandeep, many thanks for sharing!

  • @eduardokeane
    @eduardokeane 7 місяців тому

    Excelente, me ayudó el tutorial para aplicarlo en un reporte, saludos desde Perú.

  • @shoaibrehman9988
    @shoaibrehman9988 2 роки тому

    Excellent way to deal with this types of queries. Thanks

  • @GeorgeKlucsarits
    @GeorgeKlucsarits Рік тому +1

    Came across your video trying to solve this exact problem today. I needed to separate a list in a cell to separate columns prior to unpivoting. Your explanation was terrific and probably the most straightforward solution I've come across. Thanks!

  • @leebecker8255
    @leebecker8255 2 роки тому

    Brilliant!! This is exactly what I was looking for about a year ago, but I couldn't quite work out how to do it. I can't wait to implement this. I really like the way you explained all the step. THANK YOU!!! I have just subscribed :)

  • @Jujubeterraba
    @Jujubeterraba 2 роки тому

    Thank you, this video has saved my day!

  • @VS.R3LeVant
    @VS.R3LeVant 2 роки тому

    You are a wizard with this. Thanks for sharing!!!

  • @cristian.angyal
    @cristian.angyal 2 роки тому

    Great video! Thanks for sharing!

  • @patrickbrom2702
    @patrickbrom2702 2 роки тому

    This is great, can also be used with loading PDF, and so on, thank you!

  • @Chris_in_fremantle
    @Chris_in_fremantle 2 роки тому

    As always, very clever. Mind blown regarding not having to to refer to the immediately proceeding applied step. Well done.

  • @RonDavidowicz
    @RonDavidowicz 2 роки тому +2

    Great video, I'm sure these techniques can be used for many other problems.

  • @adityadeshmukh3150
    @adityadeshmukh3150 2 роки тому

    This technique blows my mind. I think M query can makes our work faster.. Thanks for sharing this knowledge. 👍

  • @AndrewWright26
    @AndrewWright26 Рік тому

    Thank you so much. You explain the concept so well.
    I'm going to apply this to a problem I have. Thanks again!

  • @raimundojs9547
    @raimundojs9547 Рік тому

    Fantastic! Beautiful! Thanks for sharing.

  • @jawadahmadehssan6251
    @jawadahmadehssan6251 2 роки тому

    Thanks Chandeep for sharing this brilliant content.

  • @IlaPatel811
    @IlaPatel811 Рік тому

    Just the tip I was looking for, Thank you! :)

  • @teaking1981
    @teaking1981 2 роки тому +3

    Really enjoyed the video, and found the use of the functions a great learning experience.
    For this example I think the list of names can be replaced with the number of columns, so you could have used the max number straight in the argument, although the video was more informative using the other way
    = let
    _max = List.Max(Table.AddColumn(Source,"Custom",each List.Count(Text.PositionOfAny([Hobbies],{","},Occurrence.All)))[Custom])+1
    in
    Table.SplitColumn(Source, "Hobbies",Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv),_max)

  • @AlesKus
    @AlesKus Рік тому

    You are... just unbelivable 🙂 Thank you!

  • @ErickNishimoto
    @ErickNishimoto Рік тому

    Thx from Brazil! 💚💛

  • @fajnefajne4339
    @fajnefajne4339 2 роки тому

    Excellent. Thank you very much!

  • @martyc5674
    @martyc5674 2 роки тому

    Excellent Chandeep 👍👍

  • @franciscom.paredesarias2356
    @franciscom.paredesarias2356 2 роки тому

    Extraordinary result, thank you very much for sharing this type of solutions, personally it has helped me a lot.
    Greetings from Chile

  • @LuciusSullaFelix
    @LuciusSullaFelix Рік тому

    Excellent video...great explanation....subscribed.

  • @stlaurent26
    @stlaurent26 Рік тому

    Thank you!

  • @egbertdejong6377
    @egbertdejong6377 2 роки тому

    Great content!

  • @davidmvg216146
    @davidmvg216146 2 роки тому

    This great content, cheer for your good work! 👍🎉

  • @joebateman9668
    @joebateman9668 Рік тому

    Very, very cool and handy tip!!

  • @bithepower9081
    @bithepower9081 2 роки тому

    As always amazing stuff Chandeep

  • @Softwaretrain
    @Softwaretrain 2 роки тому +4

    Thanks, Chandeep, I liked the part which you use Text.PositionOf for AllOccurance but for split by variable columns why do you make it really complicated?!!!
    Just remove the list in the last argument of Table.SplitColumn function. (then it will be dynamic for new columns)😉

    • @GoodlyChandeep
      @GoodlyChandeep  2 роки тому +3

      Didn't know that.. thanks

    • @martyc5674
      @martyc5674 2 роки тому +1

      Wow-- That works really well.. makes me wonder if lots of hardcoded lists in M are Optional Arguments

    • @martyc5674
      @martyc5674 2 роки тому

      This only works if the first row happens to have the max delimiters required, I have tried, and lets say if the first record has 2 delimiters, then you get 3 columns and no more.

    • @Softwaretrain
      @Softwaretrain 2 роки тому +2

      @@martyc5674 Of course, I reached to this point and the solution is making Custom column as =List.Count(List.Split([Hobbies],","))
      And before split, we must sort z to a this custom column.
      Still easier.

  • @yewchoob85
    @yewchoob85 Рік тому

    Very well put together video

  • @pmsocho
    @pmsocho 4 місяці тому

    Awesome! 👍

  • @CJamesEnglish
    @CJamesEnglish 9 місяців тому +1

    Great presentation - excellent walkthrough of the critical thinking and problem-solving technique. I wonder if there's a way to do it in DAX, as well...
    Also... I, too, enjoy Hulking. Excellent choice, Rehet.

  • @Tuhin380
    @Tuhin380 3 місяці тому

    Just amezing❤❤

  • @ajinkyashinde1778
    @ajinkyashinde1778 Рік тому

    Amazing....The only guy on UA-cam who can teach power query transformation like bread & butter... Kudus Chandeep for this awesome playlist. ❤❤

  • @kennethstephani692
    @kennethstephani692 2 роки тому

    Great Video!!

  • @thamilanban
    @thamilanban 2 роки тому

    Thank you

  • @user-lm5wb8vi1x
    @user-lm5wb8vi1x 7 місяців тому

    Finished watching

  • @nonoobott8602
    @nonoobott8602 3 місяці тому

    Amazing ❤

  • @OzduSoleilDATA
    @OzduSoleilDATA 11 місяців тому

    Very Goodly,my good sir! 🔥👊🏽🔥

  • @rrrraaaacccc80
    @rrrraaaacccc80 4 місяці тому

    Great 💯👍

  • @iankr
    @iankr Рік тому

    Great video, thanks! Your son sounds cool 😀

  • @samuraize24
    @samuraize24 Рік тому

    Golden!

  • @sukhomoyb
    @sukhomoyb 2 роки тому +1

    Wow just wow ...

  • @KuldeepSingh-nq1vi
    @KuldeepSingh-nq1vi 2 роки тому

    Wow 😲 Chandeep Amazing!, what a technique you taught. Please solve my problem also which I commented in another's video. How can I pass dynamic list into table.combine function.

  • @antoniodelpozzo2652
    @antoniodelpozzo2652 2 роки тому

    Great!

  • @thebhaskarjoshi
    @thebhaskarjoshi 2 роки тому

    Great video

  • @Tat-cx1lr
    @Tat-cx1lr Рік тому

    Bravo

  • @sahiladya8473
    @sahiladya8473 2 роки тому

    that's amazing

  • @tomekleddo8537
    @tomekleddo8537 Рік тому

    Cheers!

  • @NarendraSunku
    @NarendraSunku 2 роки тому

    You are genius

  • @pawewrona9749
    @pawewrona9749 2 роки тому

    I did this solution some time ago more for a "sport" activity. However, the easier way is to use to Text.Split which will convert the text into list, and then expand the list.

  • @josealvesferreira1683
    @josealvesferreira1683 2 роки тому

    Very good

  • @singhalmonica
    @singhalmonica 2 роки тому

    Great lesson once again.... Sir pls help to understand how get total of if we have numbers in place of Hobbies. Pls help sir...

  • @jimmy3862
    @jimmy3862 2 роки тому

    The BEST TEATCHER EVER about Power Query (M) language. Loving all videos about it. Thank you a lot for your great and amazing commitment to help world community. I wish all the best to you and your family!

  • @AnbarasuAnnamalai
    @AnbarasuAnnamalai Рік тому

    It is nice

  • @MarioSaldanhaLobo
    @MarioSaldanhaLobo Рік тому

    Thanks for the explanation.
    I've shorten it a bit.
    This avoids me having to clean up added columns in the end. The 'n' column, that contains the number of occurrences for ';' exists only inside the MaxAnswers step.
    I could also add it and then refer to a previous step, true...
    MaxAnswers = List.Max(Table.AddColumn(Source, "n", each List.Count(Text.PositionOf([Answers], ";", Occurrence.All)) + 1)[n]),
    HeadersAnswers = List.Transform({1..MaxAnswers}, each "Answer"&Text.From(_)),

  • @teigenxayden
    @teigenxayden 3 місяці тому

    The red color code is hard code,to modify them is a good job.

  • @mahathmasadineni2884
    @mahathmasadineni2884 2 роки тому

    It is awesome chandeep sir,
    Can you please help me how can we add multiple custom columns in single step at power query

  • @irenegurne8953
    @irenegurne8953 Рік тому

    Love it! but is there also a way to covert it each in a rows rather than columns?

  • @qasimawan3569
    @qasimawan3569 9 місяців тому

    This is amazing, exactly what I needed.
    Can I ask, how do you come up with this logic/idea? Does it come naturally or..

  • @blitzerdisco
    @blitzerdisco Рік тому

    thanks for great tutorial! what if there would be more columns like Hobbies_1, Hobbies_2 and few items in each of them?

  • @JenMayB
    @JenMayB Рік тому +1

    Thank you so much! I am having a problem in that I need to split a column up to 15 characters for example. The column has characters up to 15 and then a space and then another set of characters but within those first 15 characters there can also be spaces, So I can’t split by the delimiter of a space. And I can’t split by 15 characters because sometimes it is less than 15 characters. I need to make the split dynamic but I am very lost on what to tell it to do.

  • @emilmubarakshin49
    @emilmubarakshin49 4 місяці тому

    Excellent video once again. Does Rehet means Happiness?

  • @mattmatt245
    @mattmatt245 2 роки тому

    Hi Chandeep,
    Did you do a video on how to remove duplicates when column values can be swapped like (1,2) and (2,1) would be a duplicate. Thanks

  • @rrrraaaacccc80
    @rrrraaaacccc80 3 місяці тому

    💯👍

  • @gennarocimmino
    @gennarocimmino Рік тому

    Very interesting tutorial.
    But you didn't foresee that in the future you might list a little friend of your friends and that he will have other hobbies, for example football and Crying, just two hobbies, but football would deserve a new separate column and the current formula does not provide for this case .... :) :)
    Greetings.

  • @theresaverburg
    @theresaverburg 4 місяці тому

    Is it possible to have unique values only in the columns?
    In your example, the "sleeping" value would have its own column.

  • @janayarangel4238
    @janayarangel4238 Рік тому

    SAVING LIIIIIIVESSSSSSS

  • @arunkumarkesavan6077
    @arunkumarkesavan6077 Рік тому

    Super duber

  • @MrAbrandao
    @MrAbrandao 2 місяці тому

    I found a bug in the split function while working with a large dataset. I was manually applying a sequence of commands, with the split function in the middle. I was splitting a column using the delimiter ";;;". The columns had a varying number of delimiter occurrences, but I expected them to consistently generate 4 or 5 columns each.
    Only later did I realize that the split function was only generating 2 columns. I had to re-run the split operation, and only then did it generate the correct number of columns. Now, whenever I apply the split command, I wait for it to show the detected number of columns before applying it again.

  • @leebecker8255
    @leebecker8255 2 роки тому

    Now I want to trim (or do some other function) to all of the columns.. Can you think of a good way to do that?

  • @mchllwoods
    @mchllwoods 2 роки тому +1

    This tutorial is great but it's not meeting my needs exactly. My issue is I have a list of names and I want to split them into columns by First Name, Middle Name or Initial, Last Name, and Suffix name. Not all have a suffix, middle int/name or period. when I split them last names go into the middle name column and I don't know how to bring it to the right column. When I split the delimiter one step at a time by the first name it's in the right column but when I split the second time I run into problems. How do I fix this?

    • @GoodlyChandeep
      @GoodlyChandeep  2 роки тому

      Can you please send me some dummy data and describe the problem clearly - goodly.wordpress@gmail.com

  • @HarshilPatel497
    @HarshilPatel497 Рік тому

    This solved my main issue to learn m code how to modify but couldn't we split the hobies by delimiter by row and then we get a unique list and refer that list this would solve issue if you have duplicate entries...

    • @GoodlyChandeep
      @GoodlyChandeep  Рік тому

      Yes there could be many ways of solving such problems

    • @HarshilPatel497
      @HarshilPatel497 Рік тому

      Yes, And you know it all... You explain things very well..and i think far better than anyone else when it comes to power query.....

  • @augustriandyrizkymaris2894
    @augustriandyrizkymaris2894 Рік тому

    my report have an uneven space length.. is there a way to split them?

  • @adilarsalan6020
    @adilarsalan6020 2 роки тому

    Hello where to find your fundamental course.

  • @danielbarber7329
    @danielbarber7329 Рік тому

    Awesome trick however is there a way to sort the information.
    Let's say you asked 100 people and they chose a hobby but it appears any of them columns in the order it was split.
    Maybe you want a column based on the hobby type.

  • @sebfromgermany3819
    @sebfromgermany3819 Рік тому

    Other functions, e.g. Text.Combine uses a list to reference the columns to be combined. So far I was unable to define a list similar to this example to get this function working. Was anybody more successful with Text.Combine? Seb

    • @GoodlyChandeep
      @GoodlyChandeep  Рік тому

      Sorry what is the issue that you're facing.
      Text.Combine works on a list (and not a column references)

    • @sebfromgermany3819
      @sebfromgermany3819 Рік тому

      I have a table with three columns Col1 … Col3. I merge the columns into a new column via add column / merge column with gives this M code:
      = Table.AddColumn(Source, "ColCombine", each Text.Combine({[Col1], [Col2], [Col3]}, "|"), type text)
      I wanted to do something similar to your video that I have a formula like
      = Table.AddColumn(Source, "ColCombine", each Text.Combine(ListColHeading, "|"), type text)
      So far I did not manage to create a List that the content of [Col1], [Col2], [Col3] is referenced - did I explain okay?

    • @sebfromgermany3819
      @sebfromgermany3819 Рік тому

      A possible solution is using Table.CombineColumns instead of merging the columns into a new column. The steps to perform are
      - Creating the list “ColList” from the tables header
      - Transforming every column into type text using “ColList“ in combination with Table.TransformColumnTypes
      - Applying Table.CombineColumns in combination with “ColList“
      Code could look like this:
      Source …
      IntoText = Table.TransformColumnTypes(Source, List.Transform(ColList, each {_, type text})),
      CombineCols = Table.CombineColumns(IntoText,ColList,Combiner.CombineTextByDelimiter(":", QuoteStyle.None),"ColsCombined")
      I got the inspiration for this from the video 😉 ua-cam.com/video/1fn8fXYw6M4/v-deo.html

  • @viveksharma4193
    @viveksharma4193 2 роки тому

    Apart from your video, I have a question, is there any way to fetch data from Facebook by using a power query?

    • @GoodlyChandeep
      @GoodlyChandeep  2 роки тому

      www.goodly.co.in/facebook-dashboard-in-excel/

  • @BajrangSingh-js2qq
    @BajrangSingh-js2qq 6 місяців тому

    Hi I have some need in data

  • @SamehRSameh
    @SamehRSameh 2 роки тому

    What is the difference between
    each & _ ??
    When use this or this ????

    • @GoodlyChandeep
      @GoodlyChandeep  2 роки тому +1

      each is they keyword that let's you access each row of a table or a list.
      _ is the keyword to reference each item in the list or table.

  • @Ychhenghak
    @Ychhenghak 2 роки тому

    You made the step look fancy but it happens to me not remember the syntax.

  • @h.m.nafidrahman2145
    @h.m.nafidrahman2145 Рік тому

    Chandeep, how do i dynamically split up to the second last value in PBI for each record?
    For e.g. I have a table with EE hierarchy for each user-
    For John, hierarchy is User1.User2.User3.User4
    If John is User4, I want to split his hierarchy till User3.
    For Jane, hierarchy is User1.User2.User3.User4.User5
    If Jane is User5, I want to split her hierarchy till User4
    With the current setup, the columns are split into 5 columns by default, as there are 5 users in the table.
    So even though John is User4, the columns are split into 5 columns, where the 4th column consists of John's name.
    This is how the columns are split:
    User 1 | User 2 | User 3 | User 4 | User 5
    M1 | M2 | M3 | John | NULL
    M1 | M2 | M3 | M4 | Jane
    I want the columns to stop at User 3 for John, so column USER 4 should be NULL as well
    Any way to split the columns based on each record, rather than looking at the maximum number of splits in the table?

  • @powerbinareal
    @powerbinareal Рік тому

    #powerbinareal