{"id":225,"date":"2020-08-19T10:27:55","date_gmt":"2020-08-19T15:27:55","guid":{"rendered":"http:\/\/ninmonkeys.com\/blog\/?p=225"},"modified":"2020-08-20T14:11:50","modified_gmt":"2020-08-20T19:11:50","slug":"resources-to-learn-power-query","status":"publish","type":"post","link":"https:\/\/ninmonkeys.com\/blog\/2020\/08\/19\/resources-to-learn-power-query\/","title":{"rendered":"Resources to learn Power Query"},"content":{"rendered":"\n<h2>Tutorials<\/h2>\n\n\n\n\n\n<figure class=\"wp-block-embed-wordpress wp-block-embed is-type-wp-embed is-provider-ben-gribaudo\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"i1WTW3OLHI\"><a href=\"https:\/\/bengribaudo.com\/blog\/2017\/11\/17\/4107\/power-query-m-primer-part1-introduction-simple-expressions-let\">Power Query M Primer (part 1):Introduction, Simple Expressions &#038; let<\/a><\/blockquote><iframe class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;Power Query M Primer (part 1):&lt;br \/&gt;Introduction, Simple Expressions &#038; &lt;code&gt;let&lt;\/code&gt;&#8221; &#8212; Ben Gribaudo\" src=\"https:\/\/bengribaudo.com\/blog\/2017\/11\/17\/4107\/power-query-m-primer-part1-introduction-simple-expressions-let\/embed#?secret=i1WTW3OLHI\" data-secret=\"i1WTW3OLHI\" width=\"580\" height=\"327\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><figcaption><strong>Ben Gribaudo<\/strong> dives into Power Query topic by topic<br><br><a href=\"https:\/\/bengribaudo.com\/blog\/2017\/11\/17\/4107\/power-query-m-primer-part1-introduction-simple-expressions-let\" data-type=\"URL\" data-id=\"https:\/\/bengribaudo.com\/blog\/2017\/11\/17\/4107\/power-query-m-primer-part1-introduction-simple-expressions-let\">Part 1: Introduction to let expressions<\/a><br><a href=\"https:\/\/bengribaudo.com\/blog\/2017\/12\/08\/4270\/power-query-m-primer-part3-functions-function-values-passing-returning-defining-inline-recursion\">Part 3: Using and writing Functions<\/a><br><a href=\"https:\/\/bengribaudo.com\/blog\/2018\/08\/15\/4557\/power-query-m-primer-part8-types-the-temporal-family\">Part 8: Time: <code class=\"\" data-line=\"\">date<\/code>, <code class=\"\" data-line=\"\">time<\/code>, <code class=\"\" data-line=\"\">datetime<\/code>, <code class=\"\" data-line=\"\">datetimezone<\/code> and <code class=\"\" data-line=\"\">duration<\/code><\/a><br><a href=\"https:\/\/bengribaudo.com\/blog\/2019\/09\/19\/4713\/power-query-m-primer-part11-tables-syntax\">Part 11-13: Tables<\/a><br><a href=\"https:\/\/bengribaudo.com\/blog\/2020\/01\/15\/4883\/power-query-m-primer-part-15-error-handling\">Part 15: Error handling<\/a><br><a href=\"https:\/\/bengribaudo.com\/blog\/2020\/02\/05\/4948\/power-query-m-primer-part16-type-system-i\">Part 16: Power Query <code class=\"\" data-line=\"\">primative<\/code> types<\/a><br><a href=\"https:\/\/bengribaudo.com\/blog\/2020\/02\/28\/5009\/power-query-m-primer-part17-type-system-ii-facets\">Part 17: <code class=\"\" data-line=\"\">Facets<\/code><\/a><br><a href=\"https:\/\/bengribaudo.com\/blog\/2020\/06\/02\/5259\/power-query-m-primer-part18-type-system-iii-custom-types\">Part 18: Custom types<\/a><br><br><br><a href=\"https:\/\/blog.crossjoin.co.uk\/\" data-type=\"URL\" data-id=\"https:\/\/blog.crossjoin.co.uk\/\">Chris Webb&#8217;s blog: Crossjoin.co.uk<\/a><br>Another high quality resource.<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-embed-wordpress wp-block-embed is-type-wp-embed is-provider-chris-webb-039-s-bi-blog\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"GA9kf657bN\"><a href=\"https:\/\/blog.crossjoin.co.uk\/2016\/08\/16\/using-the-relativepath-and-query-options-with-web-contents-in-power-query-and-power-bi-m-code\/\">Using The RelativePath And Query Options With Web.Contents() In Power Query And Power BI M Code<\/a><\/blockquote><iframe class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;Using The RelativePath And Query Options With Web.Contents() In Power Query And Power BI M Code&#8221; &#8212; Chris Webb&#039;s BI Blog\" src=\"https:\/\/blog.crossjoin.co.uk\/2016\/08\/16\/using-the-relativepath-and-query-options-with-web-contents-in-power-query-and-power-bi-m-code\/embed\/#?secret=GA9kf657bN\" data-secret=\"GA9kf657bN\" width=\"580\" height=\"327\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><figcaption>How to use Web API&#8217;s through <code class=\"\" data-line=\"\">Web.Content<\/code>&#8216;s <code class=\"\" data-line=\"\">Query<\/code> and <code class=\"\" data-line=\"\">RelativePath<\/code> parameters<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-embed-wordpress wp-block-embed is-type-wp-embed is-provider-chris-webb-039-s-bi-blog\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"ciIH5QZNhp\"><a href=\"https:\/\/blog.crossjoin.co.uk\/2016\/08\/23\/web-contents-m-functions-and-dataset-refresh-errors-in-power-bi\/\">Web.Contents(), M Functions And Dataset Refresh Errors In Power BI<\/a><\/blockquote><iframe class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;Web.Contents(), M Functions And Dataset Refresh Errors In Power BI&#8221; &#8212; Chris Webb&#039;s BI Blog\" src=\"https:\/\/blog.crossjoin.co.uk\/2016\/08\/23\/web-contents-m-functions-and-dataset-refresh-errors-in-power-bi\/embed\/#?secret=ciIH5QZNhp\" data-secret=\"ciIH5QZNhp\" width=\"580\" height=\"327\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><figcaption>He knew how to fix <code class=\"\" data-line=\"\">Web.Contents()<\/code> refresh errors all the way back in 2016!<\/figcaption><\/figure>\n\n\n\n<h2>Documentation<\/h2>\n\n\n\n<ul><li><a href=\"https:\/\/docs.microsoft.com\/en-us\/power-bi\/\">Power BI docs<\/a>: top level<\/li><li><a href=\"https:\/\/docs.microsoft.com\/en-us\/power-query\/\">Power Query<\/a>: top level<ul><li><a href=\"https:\/\/docs.microsoft.com\/en-us\/powerquery-m\/understanding-power-query-m-functions\">Understanding Functions<\/a><\/li><\/ul><\/li><li><a href=\"https:\/\/docs.microsoft.com\/en-us\/powerquery-m\/power-query-m-function-reference\">Power Query Functions<\/a>: top level reference<\/li><li><a href=\"https:\/\/docs.microsoft.com\/en-us\/powerquery-m\/power-query-m-language-specification\">Power Query Language Specification<\/a><ul><li><a href=\"https:\/\/docs.microsoft.com\/en-us\/powerquery-m\/m-spec-types\">Primitive Types<\/a><\/li><\/ul><ul><li><a href=\"https:\/\/docs.microsoft.com\/en-us\/powerquery-m\/m-spec-consolidated-grammar\">Lexical Grammar<\/a><\/li><li><a href=\"https:\/\/docs.microsoft.com\/en-us\/powerquery-m\/m-spec-consolidated-grammar#expressions\"><code class=\"\" data-line=\"\">each<\/code> expression<\/a><\/li><li><a href=\"https:\/\/docs.microsoft.com\/en-us\/powerquery-m\/m-spec-values\">Values<\/a><\/li><li><a href=\"https:\/\/docs.microsoft.com\/en-us\/powerquery-m\/m-spec-operators\">Operators<\/a><\/li><\/ul><\/li><\/ul>\n\n\n\n<h2>Tools<\/h2>\n\n\n\n<h3>VS Code extension: Power Query<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"798\" height=\"444\" src=\"https:\/\/ninmonkeys.com\/blog\/wp-content\/uploads\/2020\/08\/image-16.png\" alt=\"\" class=\"wp-image-230\" srcset=\"https:\/\/ninmonkeys.com\/blog\/wp-content\/uploads\/2020\/08\/image-16.png 798w, https:\/\/ninmonkeys.com\/blog\/wp-content\/uploads\/2020\/08\/image-16-300x167.png 300w, https:\/\/ninmonkeys.com\/blog\/wp-content\/uploads\/2020\/08\/image-16-768x427.png 768w\" sizes=\"(max-width: 798px) 100vw, 798px\" \/><figcaption>If you use the <code class=\"\" data-line=\"\">advanced editor<\/code>  check this out.<br>It supports autocomplete Tool tips display optional parameters.<br><\/figcaption><\/figure>\n\n\n\n<p><a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=PowerQuery.vscode-powerquery\">VS Code extension: Power Query<\/a> uses <a href=\"https:\/\/github.com\/microsoft\/powerquery-parser\">PowerQuery-Parser<\/a> and <a href=\"https:\/\/github.com\/microsoft\/powerquery-formatter\" data-type=\"URL\" data-id=\"https:\/\/github.com\/microsoft\/powerquery-formatter\">PowerQuery-Formatter<\/a><\/p>\n\n\n\n<h3>Query Diagnostics<\/h3>\n\n\n\n<p><a href=\"https:\/\/docs.microsoft.com\/en-us\/power-query\/querydiagnostics\">Query Diagnostics<\/a> in Power BI<\/p>\n\n\n\n<h2>Tips<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"511\" height=\"519\" src=\"https:\/\/ninmonkeys.com\/blog\/wp-content\/uploads\/2020\/08\/2020-08-19-copy-paste-queries-as-text.png\" alt=\"\" class=\"wp-image-247\" srcset=\"https:\/\/ninmonkeys.com\/blog\/wp-content\/uploads\/2020\/08\/2020-08-19-copy-paste-queries-as-text.png 511w, https:\/\/ninmonkeys.com\/blog\/wp-content\/uploads\/2020\/08\/2020-08-19-copy-paste-queries-as-text-295x300.png 295w\" sizes=\"(max-width: 511px) 100vw, 511px\" \/><figcaption>You can <code class=\"\" data-line=\"\">copy -&gt; paste<\/code> multiple queries into a new <strong>Power BI Report<\/strong> (notice it included a required <strong>referenced query <\/strong><code class=\"\" data-line=\"\">ListAsText<\/code> even though I didn&#8217;t select it.<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"873\" height=\"522\" src=\"https:\/\/ninmonkeys.com\/blog\/wp-content\/uploads\/2020\/08\/image-19.png\" alt=\"\" class=\"wp-image-245\" srcset=\"https:\/\/ninmonkeys.com\/blog\/wp-content\/uploads\/2020\/08\/image-19.png 873w, https:\/\/ninmonkeys.com\/blog\/wp-content\/uploads\/2020\/08\/image-19-300x179.png 300w, https:\/\/ninmonkeys.com\/blog\/wp-content\/uploads\/2020\/08\/image-19-768x459.png 768w\" sizes=\"(max-width: 873px) 100vw, 873px\" \/><figcaption>You can <code class=\"\" data-line=\"\">copy -&gt; paste<\/code> <strong>multiple queries<\/strong> into at text editor<\/figcaption><\/figure>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>High quality Tutorials, tools, and blog posts for Power Query<\/p>\n","protected":false},"author":1,"featured_media":246,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[13,9,14],"tags":[6,7,15,8],"_links":{"self":[{"href":"https:\/\/ninmonkeys.com\/blog\/wp-json\/wp\/v2\/posts\/225"}],"collection":[{"href":"https:\/\/ninmonkeys.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ninmonkeys.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ninmonkeys.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ninmonkeys.com\/blog\/wp-json\/wp\/v2\/comments?post=225"}],"version-history":[{"count":20,"href":"https:\/\/ninmonkeys.com\/blog\/wp-json\/wp\/v2\/posts\/225\/revisions"}],"predecessor-version":[{"id":288,"href":"https:\/\/ninmonkeys.com\/blog\/wp-json\/wp\/v2\/posts\/225\/revisions\/288"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ninmonkeys.com\/blog\/wp-json\/wp\/v2\/media\/246"}],"wp:attachment":[{"href":"https:\/\/ninmonkeys.com\/blog\/wp-json\/wp\/v2\/media?parent=225"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ninmonkeys.com\/blog\/wp-json\/wp\/v2\/categories?post=225"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ninmonkeys.com\/blog\/wp-json\/wp\/v2\/tags?post=225"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}