<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Power Query M - Optimization - Group and Filter in Developer</title>
    <link>https://community.fabric.microsoft.com/t5/Developer/Power-Query-M-Optimization-Group-and-Filter/m-p/2773947#M38698</link>
    <description>&lt;P&gt;Thank you&amp;nbsp;@Anonymous&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV id="content-frame"&gt;&amp;nbsp;&lt;/DIV&gt;</description>
    <pubDate>Fri, 16 Sep 2022 15:26:02 GMT</pubDate>
    <dc:creator>vojtechsima</dc:creator>
    <dc:date>2022-09-16T15:26:02Z</dc:date>
    <item>
      <title>Power Query M - Optimization - Group and Filter</title>
      <link>https://community.fabric.microsoft.com/t5/Developer/Power-Query-M-Optimization-Group-and-Filter/m-p/2764807#M38621</link>
      <description>&lt;P&gt;Hi, guys,&lt;BR /&gt;I have perfectly working M code, however, I wonder if there's the possibility to &lt;STRONG&gt;&lt;EM&gt;make it faster.&lt;/EM&gt;&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;The goal of the Column:&lt;BR /&gt;Check Document (ID) and if one of the rows in column Action_Performed is "Connection", then return "YES for each row where the Document is, otherwise "NO".&lt;BR /&gt;&lt;BR /&gt;Example:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="258"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="71"&gt;Document&lt;/TD&gt;
&lt;TD width="123"&gt;Action_Performed&lt;/TD&gt;
&lt;TD width="64"&gt;&lt;FONT color="#339966"&gt;Result&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;123&lt;/TD&gt;
&lt;TD&gt;Connection&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color="#339966"&gt;YES&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;123&lt;/TD&gt;
&lt;TD&gt;Start&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color="#339966"&gt;YES&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;123&lt;/TD&gt;
&lt;TD&gt;End&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color="#339966"&gt;YES&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;444&lt;/TD&gt;
&lt;TD&gt;Start&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color="#339966"&gt;NO&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;444&lt;/TD&gt;
&lt;TD&gt;End&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color="#339966"&gt;NO&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;444&lt;/TD&gt;
&lt;TD&gt;Start&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color="#339966"&gt;NO&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;444&lt;/TD&gt;
&lt;TD&gt;End&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color="#339966"&gt;NO&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;444&lt;/TD&gt;
&lt;TD&gt;Middle&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color="#339966"&gt;NO&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;555&lt;/TD&gt;
&lt;TD&gt;Connection&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color="#339966"&gt;YES&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&lt;BR /&gt;My M code for the column:&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt; #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each 
    let
        CurrentDocument = [Document],
        FindActionPerfromedOnly = Table.Group(#"Changed Type", {"Document", "Action_Performed"}, {{"Count", each Table.RowCount(_), Int64.Type}}),
        FilterConnection = Table.SelectRows(FindActionPerfromedOnly, each [Action_Performed] = "Connection" and [Count] &amp;gt;= 1)
    in
        if List.Contains(FilterConnection[Document], CurrentDocument) then "YES" else "NO")&lt;/LI-CODE&gt;
&lt;P&gt;&lt;BR /&gt;M code for whole table:&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("7di9jmRFDIbhe9mYoPxbdowIiQhXBIglQEKDhPb+hY9Gq/U75EStjaoD7zfd5/ix6/PnT6L26YdPP/799vbH71///Pvt068/fPvwl6+//fN1nX96+7JOP//55ctff6wP/vca7s4a7x98qPH+4fca7+dXjVeNV41XDdSIiP/WeP/we43387ca76dXjVeNV41XjVeNV41XjVeNV41XjVeNV41dIzNXjXvvOlXVOnX3OonI2UdV2Ucz3Ud33LJE7IVHMvffIffuSFK1M0n3DqVydipV3anUbKdS951KI3Yqzdyp9N6dSqt2Ku3eqUzOTmUqO5WZ7VTmvlNZxE5lmTuV3btTWdVOZd07lcvZqVxlp3LTnWr2zJ3KI3Yqz9yp/F7ccVVhZe3GkyhnpwqVnSpMd6pw26nm+dypInOnint3qqjaqaJ7p0o5O1Wq7FRpulOl206V4TvVvCU7Vd67U2XVTpXdO9WVs1NdlZ3qmuIFdNupbvhOdTN2qnlbd6pbtVPd7p2q5OxUpbJTlelOVW47VYWjL2TsVHVzp5qusVNV907VcnaqVtmp2nSnaredqsN3qs7Yqfom2lXdnWq6F/rVmX84q6BjHePF8HFDzzrhaFonA13r3ETbOnUL566P7RT5RAX5xBT5xA35JHCJJJLAQeSi0YsUWr1Io9mLHrb76e/s98aGr86Or8GWr8mer5dNX4tdX5tt3w76/nwdaPwPOMhnbgQp0PvFEs1f7KL7ixXav1ij/4sfACCuEGB+HhDwCIh8HkBAPINiXjAgXnBAvAGBxIEEEgoKJAwWzOMCDB6SkS8SHEhceCBRl6R30fQDEiQVJkgaUJB0qDCPL1h4ZgTkywsYJAsySDZokHtgg1w9HDoMOsh18CA34MO8TgDiGVqQ7xaIkNswQuoACSmFElIGJqRcORUFoJBKSDGvN6h4pijkqwYW0gdaSCu4kDZ4Ie0AQzoghnQ6x7YLM6bdAI1nrMPkdg7Y0KNwY9IBjvn2IMf8uqBjnj7YMW8H8Ji3F3pMdwEfz5yJfNMgkU8Mfoyu8GPQhx8zi8CPGZHgx0xu8GMGSvgxc259HHyRTw1+qDr8UA34oZrwQ/XCD9WCH6oNP9QO/Jj/Hn48kzgnc4cfagE/1BJ+qF34oVbwQ63hh/qBH+rCvWHaMfLNaoB8Hh9Wh+Tu4JfLgxe3B2+uD3G4P4TAj/k54MfwCT+eXQX5IuGHxg3uNgU/NBp+aB74oSnwQ9Pgxzwe8GM4hx/P8oR8eeGHZsEPzYYfek9x+xL4odfgh16HH/O4wo8ZL+DHs80h3y34obfhh9aBH1oCP7TscD10+KEV8GNeH/gx4w78eNZL5KuGH9oHfmgL/NA2+KHt8EM7lPtrwo95neHHjF/w49l3scOeAz/sCPywY/Bj0sGP+fbgx/y68GOePvgxbwf8mLcXfjwLOPLNQIt8M0Ainzj8GG3hx0wD8GOmFfgx01TwAqCTNwAHfjw3Asg3DRP5pkEhnwb8mC0RfszyCj9mp4Yfs+rDD5svFPnmD/h4RYF85vDDLOCHWcIPsws/zAp+mDX8MD/wY/47+DE8wI/nzoR3KAE/zBN+mF/4YV7ww7zhh8WBHxYCP+bPhx+zTsCP5xIH+SKNlzwXflgU/LBo+GF54IelwA9L5QXUtF/km/Ed+TJ5B5WXl1BZH26h+sM11OE91BVeRF2FH/M4wI/hG37MugU/nmsu5LsFP+w2/LA68MNKivdkCj+sHH7M4wk/ZpyAH7P+wY/n3g35quGH9YEf1gI/rBV+WPvhRV7Aj3ld4MeMN/Bj1lH48VwE4jbvHPjhR+CHH/3ux6//Ag==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Document = _t, Action_Performed = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Document", Int64.Type}, {"Action_Performed", type text}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each 
    let
        CurrentDocument = [Document],
        FindActionPerfromedOnly = Table.Group(#"Changed Type", {"Document", "Action_Performed"}, {{"Count", each Table.RowCount(_), Int64.Type}}),
        FilterConnection = Table.SelectRows(FindActionPerfromedOnly, each [Action_Performed] = "Connection" and [Count] &amp;gt;= 1)
    in
        if List.Contains(FilterConnection[Document], CurrentDocument) then "YES" else "NO")
in
   #"Added Custom"&lt;/LI-CODE&gt;
&lt;P&gt;Whole PBIX attached.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;DIV id="content-frame"&gt;&amp;nbsp;&lt;/DIV&gt;</description>
      <pubDate>Tue, 13 Sep 2022 15:20:44 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Developer/Power-Query-M-Optimization-Group-and-Filter/m-p/2764807#M38621</guid>
      <dc:creator>vojtechsima</dc:creator>
      <dc:date>2022-09-13T15:20:44Z</dc:date>
    </item>
    <item>
      <title>Re: Power Query M - Optimization - Group and Filter</title>
      <link>https://community.fabric.microsoft.com/t5/Developer/Power-Query-M-Optimization-Group-and-Filter/m-p/2766770#M38644</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.fabric.microsoft.com/t5/user/viewprofilepage/user-id/285182"&gt;@vojtechsima&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;I updated your sample pbix file,&amp;nbsp; please find the details in &lt;EM&gt;&lt;STRONG&gt;the attachment&lt;/STRONG&gt;&lt;/EM&gt;. You can update the codes as below in Advanced Editor, later check if it can run faster...&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("7di9jmRFDIbhe9mYoPxbdowIiQhXBIglQEKDhPb+hY9Gq/U75EStjaoD7zfd5/ix6/PnT6L26YdPP/799vbH71///Pvt068/fPvwl6+//fN1nX96+7JOP//55ctff6wP/vca7s4a7x98qPH+4fca7+dXjVeNV41XDdSIiP/WeP/we43387ca76dXjVeNV41XjVeNV41XjVeNV41XjVeNV41dIzNXjXvvOlXVOnX3OonI2UdV2Ucz3Ud33LJE7IVHMvffIffuSFK1M0n3DqVydipV3anUbKdS951KI3Yqzdyp9N6dSqt2Ku3eqUzOTmUqO5WZ7VTmvlNZxE5lmTuV3btTWdVOZd07lcvZqVxlp3LTnWr2zJ3KI3Yqz9yp/F7ccVVhZe3GkyhnpwqVnSpMd6pw26nm+dypInOnint3qqjaqaJ7p0o5O1Wq7FRpulOl206V4TvVvCU7Vd67U2XVTpXdO9WVs1NdlZ3qmuIFdNupbvhOdTN2qnlbd6pbtVPd7p2q5OxUpbJTlelOVW47VYWjL2TsVHVzp5qusVNV907VcnaqVtmp2nSnaredqsN3qs7Yqfom2lXdnWq6F/rVmX84q6BjHePF8HFDzzrhaFonA13r3ETbOnUL566P7RT5RAX5xBT5xA35JHCJJJLAQeSi0YsUWr1Io9mLHrb76e/s98aGr86Or8GWr8mer5dNX4tdX5tt3w76/nwdaPwPOMhnbgQp0PvFEs1f7KL7ixXav1ij/4sfACCuEGB+HhDwCIh8HkBAPINiXjAgXnBAvAGBxIEEEgoKJAwWzOMCDB6SkS8SHEhceCBRl6R30fQDEiQVJkgaUJB0qDCPL1h4ZgTkywsYJAsySDZokHtgg1w9HDoMOsh18CA34MO8TgDiGVqQ7xaIkNswQuoACSmFElIGJqRcORUFoJBKSDGvN6h4pijkqwYW0gdaSCu4kDZ4Ie0AQzoghnQ6x7YLM6bdAI1nrMPkdg7Y0KNwY9IBjvn2IMf8uqBjnj7YMW8H8Ji3F3pMdwEfz5yJfNMgkU8Mfoyu8GPQhx8zi8CPGZHgx0xu8GMGSvgxc259HHyRTw1+qDr8UA34oZrwQ/XCD9WCH6oNP9QO/Jj/Hn48kzgnc4cfagE/1BJ+qF34oVbwQ63hh/qBH+rCvWHaMfLNaoB8Hh9Wh+Tu4JfLgxe3B2+uD3G4P4TAj/k54MfwCT+eXQX5IuGHxg3uNgU/NBp+aB74oSnwQ9Pgxzwe8GM4hx/P8oR8eeGHZsEPzYYfek9x+xL4odfgh16HH/O4wo8ZL+DHs80h3y34obfhh9aBH1oCP7TscD10+KEV8GNeH/gx4w78eNZL5KuGH9oHfmgL/NA2+KHt8EM7lPtrwo95neHHjF/w49l3scOeAz/sCPywY/Bj0sGP+fbgx/y68GOePvgxbwf8mLcXfjwLOPLNQIt8M0Ainzj8GG3hx0wD8GOmFfgx01TwAqCTNwAHfjw3Asg3DRP5pkEhnwb8mC0RfszyCj9mp4Yfs+rDD5svFPnmD/h4RYF85vDDLOCHWcIPsws/zAp+mDX8MD/wY/47+DE8wI/nzoR3KAE/zBN+mF/4YV7ww7zhh8WBHxYCP+bPhx+zTsCP5xIH+SKNlzwXflgU/LBo+GF54IelwA9L5QXUtF/km/Ed+TJ5B5WXl1BZH26h+sM11OE91BVeRF2FH/M4wI/hG37MugU/nmsu5LsFP+w2/LA68MNKivdkCj+sHH7M4wk/ZpyAH7P+wY/n3g35quGH9YEf1gI/rBV+WPvhRV7Aj3ld4MeMN/Bj1lH48VwE4jbvHPjhR+CHH/3ux6//Ag==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Document = _t, Action_Performed = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Document", Int64.Type}, {"Action_Performed", type text}}),
    #"Grouped Rows" = Table.Group(#"Changed Type", {"Document"}, {{"Details", each _, type table [Document=nullable number, Action_Performed=nullable text]}}),
    #"Added Custom" = Table.AddColumn(#"Grouped Rows", "Result", each if List.Contains([Details][Action_Performed], "Connection") then "YES" else "NO"),
    #"Expanded Details" = Table.ExpandTableColumn(#"Added Custom", "Details", {"Action_Performed"}, {"Action_Performed"})
in
    #"Expanded Details"&lt;/LI-CODE&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="yingyinr_1-1663147747252.png" style="width: 999px;"&gt;&lt;img src="https://community.fabric.microsoft.com/t5/image/serverpage/image-id/783436iA0924DBECBEE2711/image-size/large?v=v2&amp;amp;px=999" role="button" title="yingyinr_1-1663147747252.png" alt="yingyinr_1-1663147747252.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;In addition, you can create a calculated column as below to get the same result...&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;Column = 
VAR _count =
    CALCULATE (
        COUNT ( 'SpeedTestTable'[Document] ),
        FILTER (
            'SpeedTestTable',
            'SpeedTestTable'[Document] = EARLIER ( 'SpeedTestTable'[Document] )
                &amp;amp;&amp;amp; 'SpeedTestTable'[Action_Performed] = "Connection"
        )
    )
RETURN
    IF ( _count &amp;gt;= 1, "YES", "NO" )&lt;/LI-CODE&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="yingyinr_2-1663147804472.png" style="width: 999px;"&gt;&lt;img src="https://community.fabric.microsoft.com/t5/image/serverpage/image-id/783438i67F900B41D9385F4/image-size/large?v=v2&amp;amp;px=999" role="button" title="yingyinr_2-1663147804472.png" alt="yingyinr_2-1663147804472.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Best Regards&lt;/P&gt;</description>
      <pubDate>Wed, 14 Sep 2022 09:31:35 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Developer/Power-Query-M-Optimization-Group-and-Filter/m-p/2766770#M38644</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2022-09-14T09:31:35Z</dc:date>
    </item>
    <item>
      <title>Re: Power Query M - Optimization - Group and Filter</title>
      <link>https://community.fabric.microsoft.com/t5/Developer/Power-Query-M-Optimization-Group-and-Filter/m-p/2773947#M38698</link>
      <description>&lt;P&gt;Thank you&amp;nbsp;@Anonymous&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV id="content-frame"&gt;&amp;nbsp;&lt;/DIV&gt;</description>
      <pubDate>Fri, 16 Sep 2022 15:26:02 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Developer/Power-Query-M-Optimization-Group-and-Filter/m-p/2773947#M38698</guid>
      <dc:creator>vojtechsima</dc:creator>
      <dc:date>2022-09-16T15:26:02Z</dc:date>
    </item>
  </channel>
</rss>

