<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>teylyn</title>
	<atom:link href="https://teylyn.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://teylyn.com</link>
	<description>about Excel, Power BI and other things I do</description>
	<lastBuildDate>Thu, 07 Dec 2023 00:27:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>

<image>
	<url>https://teylyn.com/wp-content/uploads/2017/02/cropped-mvp_blueonly.png?w=32</url>
	<title>teylyn</title>
	<link>https://teylyn.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">123264485</site><cloud domain='teylyn.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<atom:link rel="search" type="application/opensearchdescription+xml" href="https://teylyn.com/osd.xml" title="teylyn" />
	<atom:link rel='hub' href='https://teylyn.com/?pushpress=hub'/>
	<item>
		<title>Run Power Automate for a selected folder in SharePoint</title>
		<link>https://teylyn.com/2023/12/07/run-power-automate-for-a-selected-folder-in-sharepoint/</link>
					<comments>https://teylyn.com/2023/12/07/run-power-automate-for-a-selected-folder-in-sharepoint/#comments</comments>
		
		<dc:creator><![CDATA[teylyn]]></dc:creator>
		<pubDate>Thu, 07 Dec 2023 00:27:06 +0000</pubDate>
				<category><![CDATA[Office 365]]></category>
		<category><![CDATA[PowerAutomate]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[digital-organization]]></category>
		<category><![CDATA[document-scanning]]></category>
		<category><![CDATA[Flow]]></category>
		<category><![CDATA[m365]]></category>
		<category><![CDATA[minimalist-principles]]></category>
		<category><![CDATA[power-automate]]></category>
		<category><![CDATA[sharepoint-online]]></category>
		<guid isPermaLink="false">http://teylyn.com/?p=5264</guid>

					<description><![CDATA[Power Automate integrates nicely with SharePoint document libraries. One feature is that a Power Automate flow can be launched for a specific document, but it does not offer a trigger for a selected folder. This blog shows you in detail how to achieve that. For a selected file For documents, a flow is written with [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Power Automate integrates nicely with SharePoint document libraries. One feature is that a Power Automate flow can be launched for a specific document, but it does not offer a trigger for a selected folder. This blog shows you in detail how to achieve that. </p>



<h2 class="wp-block-heading">For a selected file</h2>



<p>For documents, a flow is written with the trigger &#8220;For a selected file&#8221;, and the SharePoint site and library are specified in the trigger.  To run the flow, you navigate to a file in the library, select the file and then open the Actions menu to click the desired flow. </p>



<p>That&#8217;s how it works for documents. But what if you want to run a flow on a specific folder? There is no Power Automate trigger &#8220;For a selected folder&#8221;. But I&#8217;m writing this because I found a way to <strong>run a workflow for a selected folder</strong>!! </p>



<h2 class="wp-block-heading">A common scenario</h2>



<p>My company uses a defined folder structure in our SharePoint library to organise the documents for our client projects . I have written a workflow that generates the correct folders and populates them with document templates. Now I would like to run this workflow when we start a new project with a client. I would like to select the client folder and start the workflow, so a new project folder is created inside the client folder. </p>



<h2 class="wp-block-heading">Let&#8217;s write the flow that runs for the selected folder</h2>



<p>I start with the trigger &#8220;For a selected file&#8221;. When we inspect the flow run for this trigger, we can see the output of the trigger. Click on &#8220;Show raw outputs&#8221; to display the side panel.</p>



<figure class="wp-block-image size-large"><img width="612" height="607" data-attachment-id="5269" data-permalink="https://teylyn.com/2023/12/07/run-power-automate-for-a-selected-folder-in-sharepoint/for-a-selected-file-01/" data-orig-file="https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-01.jpg" data-orig-size="612,607" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="for-a-selected-file-01" data-image-description="" data-image-caption="" data-medium-file="https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-01.jpg?w=300" data-large-file="https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-01.jpg?w=612" src="https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-01.jpg?w=612" alt="" class="wp-image-5269" srcset="https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-01.jpg 612w, https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-01.jpg?w=150 150w, https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-01.jpg?w=300 300w" sizes="(max-width: 612px) 100vw, 612px" /></figure>



<p>The output starts with a lot of lines in the headers section that are not of interest to us right now. We need only the section at the bottom that starts with &#8220;body&#8221;. The body contains the text field that I configured as the input parameter of the trigger.  That is followed by an &#8220;entity&#8221; that contains the <strong>itemURL </strong>and the <strong>fileName</strong>. </p>



<figure class="wp-block-image size-large"><img width="656" height="633" data-attachment-id="5270" data-permalink="https://teylyn.com/2023/12/07/run-power-automate-for-a-selected-folder-in-sharepoint/for-a-selected-file-02/" data-orig-file="https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-02.jpg" data-orig-size="656,633" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="for-a-selected-file-02" data-image-description="" data-image-caption="" data-medium-file="https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-02.jpg?w=300" data-large-file="https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-02.jpg?w=656" src="https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-02.jpg?w=656" alt="" class="wp-image-5270" srcset="https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-02.jpg 656w, https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-02.jpg?w=150 150w, https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-02.jpg?w=300 300w" sizes="(max-width: 656px) 100vw, 656px" /></figure>



<p>The fileName contains the name of the selected file or folder. The itemURL contains valuable information about what kind of item was selected, file or folder. You can select and copy the itemURL content and paste it into a text editor for easier inspection. </p>



<p>Here is the structure of the output for a file:</p>



<p><code>https://tenant.sharepoint.com/sites/&lt;SiteName&gt;/<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-red-color"><strong>_layouts/15/</strong></mark><strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-red-color">Doc.aspx</mark></strong>?sourcedoc=&lt;GUID&gt;&amp;action=default&amp;uid=&lt;GUID&gt;&amp;ListItemId=207345&amp;ListId=&lt;GUID&gt;&amp;odsp=1&amp;env=prod</code></p>



<p> And here is the output for a folder:</p>



<p><code>https://tenant.sharepoint.com/sites/&lt;SiteName&gt;/<strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-red-color">&lt;Library Name&gt;/Forms/</mark></strong>AllItems.aspx?id=%2Fsites%2F&lt;SiteName&gt;%2F&lt;LibraryName&gt;%2F&lt;FolderName&gt;%2F&lt;SubFolderName&gt;<strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-red-color">&amp;viewid=</mark></strong>&lt;GUID&gt;</code></p>



<p>We can clearly see differences:</p>



<ul class="wp-block-list">
<li>A selected file URL contains the library (ListID) as a GUID parameter, the document is identified with the sourcedoc GUID parameter and the URL contains the system view <strong>_layouts/15/Doc.aspx</strong> </li>



<li>a selected folder URL contains the library name written out, the view name in the URL, and the <strong>viewid </strong>as a parameter</li>
</ul>



<h3 class="wp-block-heading">Flow logic</h3>



<p>We can use these differences to determine if the selected item is a folder or a file, and then take corresponding action in the flow.  My flow starts with the trigger &#8220;For a selected file&#8221;. The next action is a condition that checks if thes selected item is a document or not.</p>



<figure class="wp-block-image size-large"><img width="1024" height="748" data-attachment-id="5274" data-permalink="https://teylyn.com/2023/12/07/run-power-automate-for-a-selected-folder-in-sharepoint/for-a-selected-file-03/" data-orig-file="https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-03.jpg" data-orig-size="1266,926" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="for-a-selected-file-03" data-image-description="" data-image-caption="" data-medium-file="https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-03.jpg?w=300" data-large-file="https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-03.jpg?w=723" src="https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-03.jpg?w=1024" alt="" class="wp-image-5274" srcset="https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-03.jpg?w=1024 1024w, https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-03.jpg?w=150 150w, https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-03.jpg?w=300 300w, https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-03.jpg?w=768 768w, https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-03.jpg 1266w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>I&#8217;m checking for the existence of the text &#8220;/Doc.aspx&#8221; in the itemURL. There are different ways to approach this. I have decided to use the function <strong>indexOf(&lt;where to look&gt;, &lt;what to look for&gt;)</strong>, which returns a positive number representing the position of the text if it is found in the string. If the text is not found, the value -1 is returned. </p>



<figure class="wp-block-image size-large"><img loading="lazy" width="738" height="598" data-attachment-id="5276" data-permalink="https://teylyn.com/2023/12/07/run-power-automate-for-a-selected-folder-in-sharepoint/for-a-selected-file-04/" data-orig-file="https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-04.jpg" data-orig-size="738,598" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="for-a-selected-file-04" data-image-description="" data-image-caption="" data-medium-file="https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-04.jpg?w=300" data-large-file="https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-04.jpg?w=723" src="https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-04.jpg?w=738" alt="" class="wp-image-5276" srcset="https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-04.jpg 738w, https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-04.jpg?w=150 150w, https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-04.jpg?w=300 300w" sizes="(max-width: 738px) 100vw, 738px" /></figure>



<p><code>indexOf(triggerBody()?['entity']?['itemUrl'],'Doc.aspx?')</code></p>



<p>When writing this formula, you don&#8217;t need to know the syntax for the first parameter. You can click on the button <strong>Dynamic values</strong> and pick the <strong>itemURL</strong> from the list. </p>



<figure class="wp-block-image size-large"><img loading="lazy" width="545" height="596" data-attachment-id="5278" data-permalink="https://teylyn.com/2023/12/07/run-power-automate-for-a-selected-folder-in-sharepoint/for-a-selected-file-05/" data-orig-file="https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-05.jpg" data-orig-size="545,596" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="for-a-selected-file-05" data-image-description="" data-image-caption="" data-medium-file="https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-05.jpg?w=274" data-large-file="https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-05.jpg?w=545" src="https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-05.jpg?w=545" alt="" class="wp-image-5278" srcset="https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-05.jpg 545w, https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-05.jpg?w=137 137w, https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-05.jpg?w=274 274w" sizes="(max-width: 545px) 100vw, 545px" /></figure>



<p>Type the search term manually. Make sure that you put the search text inside a pair of single quotes. (One of my pet peeves with the Power Platform tools is that there are so many differences between the formula languages for Power Automate and Power Apps. I&#8217;ve been bitten more than once, using single or double quotes in the wrong scenario.)</p>



<p>The comparison for my condition is &#8220;greater than 0&#8221;. The indexOf() function will return a zero if the search text is found at the beginning of the string, because it&#8217;s a zero index notation, but the text we&#8217;re looking for is always further along and its position will never be zero. </p>



<p>So, if the indexOf is greater than 0, we&#8217;re dealing with a document, otherwise we&#8217;re dealing with a folder.</p>



<p>In this particular workflow, I use a &#8220;Terminate&#8221; statement in the Yes branch of the condition, so the rest of the flow only runs if the selected item is not a document.</p>



<h2 class="wp-block-heading">This is it. We can now run a workflow on a selected folder.</h2>



<h2 class="wp-block-heading">Further processing</h2>



<p>You will need to develop your own approach for what you want to do next, based on your needs and business logic. In the following I&#8217;ll describe how to extract the path to the selected folder, so it can be used in an HTTP statement to create a sub folder.</p>



<p>The itemURL for a folder contains the full folder hierarchy up to the selected folder. The forward slash symbol &#8220;/&#8221; is written with the URL Encoding &#8220;%2F&#8221; and any space characters in the path will be showing as &#8220;%20&#8221;. You could use the <strong>replace()</strong> function to make the path more readable. A full list of URL Encoding can be found at the <a href="https://www.w3schools.com/tags/ref_urlencode.ASP" target="_blank" rel="noreferrer noopener">WWW3Schools</a> site. </p>



<p>You can use other text functions to extract the path to the current folder for further processing, for example:</p>



<p>Get the position of the beginning of the path, starting from &#8220;/sites&#8221; &#8211; find the text &#8220;=id&#8221; and increase the result by the length of the string &#8220;=id&#8221;, which is three characters long.</p>



<p><code>add(indexOf(triggerBody()?['entity']?['itemUrl'],'=id'),3)</code></p>



<p>Get the position of the &#8220;&amp;viewid&#8221; which marks the end of the path: </p>



<p><code>indexOf(triggerBody()?['entity']?['itemUrl'],'&amp;viewid') </code></p>



<p>With a start and an end position, you can then extract a substring, for example the full path starting with &#8220;/sites&#8221; and ending with the selected folder:</p>



<p><br><code>substring(indexOf(triggerBody()?['entity']?['itemUrl'],<br>   add(indexOf(triggerBody()?['entity']?['itemUrl'],'=id'),3),<br>   indexOf(triggerBody()?['entity']?['itemUrl'],'&amp;viewid')<br>)</code></p>



<p>Explore the other string functions like nthIndexOf() or lastIndexOf() to nail down specific places in the path.</p>



<p><strong>My tip:</strong> start with writing separate Compose actions for each of these exploratory index functions. Run the flow and you can see what number is returned by the Compose actions. When you are happy with the resulting numbers, you can construct a more complex all-in-one formula to return your desired string.</p>



<h2 class="wp-block-heading">Create a subfolder with HTTP</h2>



<p>With the folder path extracted, you can now use it in other actions that require an exact folder location or in a SharePoint HTTP action to create a new folder inside the currently selected one. The screenshot below uses a Compose statement with the path components that follow the &#8220;/sites/sitename/library/&#8221;</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="618" height="551" data-attachment-id="5282" data-permalink="https://teylyn.com/2023/12/07/run-power-automate-for-a-selected-folder-in-sharepoint/for-a-selected-file-06/" data-orig-file="https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-06.jpg" data-orig-size="618,551" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="for-a-selected-file-06" data-image-description="" data-image-caption="" data-medium-file="https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-06.jpg?w=300" data-large-file="https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-06.jpg?w=618" src="https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-06.jpg?w=618" alt="" class="wp-image-5282" srcset="https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-06.jpg 618w, https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-06.jpg?w=150 150w, https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-06.jpg?w=300 300w" sizes="(max-width: 618px) 100vw, 618px" /></figure>



<p>That&#8217;s my workflow. Let me know in the comments if you found this useful and in what scenario you want to use this approach. </p>



<p>Enjoy. </p>



<p>Cover Photo by <a href="https://unsplash.com/@seargreyson?utm_content=creditCopyText&amp;utm_medium=referral&amp;utm_source=unsplash">Sear Greyson</a> on <a href="https://unsplash.com/photos/brown-binder-lot-K-ZsC7YdJ6Y?utm_content=creditCopyText&amp;utm_medium=referral&amp;utm_source=unsplash">Unsplash</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://teylyn.com/2023/12/07/run-power-automate-for-a-selected-folder-in-sharepoint/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5264</post-id>
		<media:thumbnail url="https://teylyn.com/wp-content/uploads/2023/12/sear-greyson-k-zsc7ydj6y-unsplash.jpg" />
		<media:content url="https://teylyn.com/wp-content/uploads/2023/12/sear-greyson-k-zsc7ydj6y-unsplash.jpg" medium="image">
			<media:title type="html">sear-greyson-K-ZsC7YdJ6Y-unsplash</media:title>
		</media:content>

		<media:content url="https://1.gravatar.com/avatar/42a31893acf45c0ad0784e8f4c82d4f1299aa62c5173714238cdec5e95c43655?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">akismet-16a73f02bfb0768bed345de389c7e094</media:title>
		</media:content>

		<media:content url="https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-01.jpg?w=612" medium="image" />

		<media:content url="https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-02.jpg?w=656" medium="image" />

		<media:content url="https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-03.jpg?w=1024" medium="image" />

		<media:content url="https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-04.jpg?w=738" medium="image" />

		<media:content url="https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-05.jpg?w=545" medium="image" />

		<media:content url="https://teylyn.com/wp-content/uploads/2023/12/for-a-selected-file-06.jpg?w=618" medium="image" />
	</item>
		<item>
		<title>Stacking PowerApps controls in a single row</title>
		<link>https://teylyn.com/2020/06/10/stacking-powerapps-controls-in-a-single-row/</link>
					<comments>https://teylyn.com/2020/06/10/stacking-powerapps-controls-in-a-single-row/#comments</comments>
		
		<dc:creator><![CDATA[teylyn]]></dc:creator>
		<pubDate>Wed, 10 Jun 2020 01:42:07 +0000</pubDate>
				<category><![CDATA[Office 365]]></category>
		<category><![CDATA[PowerApps]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[featured]]></category>
		<category><![CDATA[rowspan]]></category>
		<guid isPermaLink="false">http://teylyn.com/?p=2975</guid>

					<description><![CDATA[How to stack multiple PowerApps controls in a row]]></description>
										<content:encoded><![CDATA[
<p>When I work with PowerApps forms for SharePoint lists, I often use a horizontal layout with several columns to avoid having to scroll through a long list of fields. Sometimes I would like individual cards to be wider or higher than the default.  It is easy to drag the width of a card so it is several columns wide. That is awesome.</p>



<p>But each row is always as high as the highest card in the row, and it is not possible to have a card extend over several rows.  </p>



<p>For example, I would like to arrange several smaller cards stacked vertically, side by side with a card that has a big text box.</p>



<p>Such a layout is very easy to do in Word or PowerPoint by merging rows and columns. HTML tables have parameters for <em>colspan</em> and <em>rowspan</em>. But in a PowerApps custom for for a SharePoint list, this is not easy to do. The table below illustrates what I mean. The green column spans are possible, but the red cell spanning several rows is not.</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="328" data-attachment-id="2977" data-permalink="https://teylyn.com/span01/" data-orig-file="https://teylyn.com/wp-content/uploads/2020/06/span01.png" data-orig-size="1324,425" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="span01" data-image-description="" data-image-caption="" data-medium-file="https://teylyn.com/wp-content/uploads/2020/06/span01.png?w=300" data-large-file="https://teylyn.com/wp-content/uploads/2020/06/span01.png?w=723" src="https://teylyn.com/wp-content/uploads/2020/06/span01.png?w=1024" alt="" class="wp-image-2977" srcset="https://teylyn.com/wp-content/uploads/2020/06/span01.png?w=1024 1024w, https://teylyn.com/wp-content/uploads/2020/06/span01.png?w=150 150w, https://teylyn.com/wp-content/uploads/2020/06/span01.png?w=300 300w, https://teylyn.com/wp-content/uploads/2020/06/span01.png?w=768 768w, https://teylyn.com/wp-content/uploads/2020/06/span01.png 1324w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption><sup>Table layout with cells spanning several columns and rows</sup></figcaption></figure>



<p>At least not by just arranging cards on the PowerApps form. In this blog I will show you what you need to do to get a form layout like this one:</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="446" data-attachment-id="2980" data-permalink="https://teylyn.com/span02/" data-orig-file="https://teylyn.com/wp-content/uploads/2020/06/span02.png" data-orig-size="1099,479" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="span02" data-image-description="" data-image-caption="" data-medium-file="https://teylyn.com/wp-content/uploads/2020/06/span02.png?w=300" data-large-file="https://teylyn.com/wp-content/uploads/2020/06/span02.png?w=723" src="https://teylyn.com/wp-content/uploads/2020/06/span02.png?w=1024" alt="" class="wp-image-2980" srcset="https://teylyn.com/wp-content/uploads/2020/06/span02.png?w=1024 1024w, https://teylyn.com/wp-content/uploads/2020/06/span02.png?w=150 150w, https://teylyn.com/wp-content/uploads/2020/06/span02.png?w=300 300w, https://teylyn.com/wp-content/uploads/2020/06/span02.png?w=768 768w, https://teylyn.com/wp-content/uploads/2020/06/span02.png 1099w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption><sup>PowerApps form with several controls stacked in one row</sup></figcaption></figure>



<p>I assume that you already know how to customize a SharePoint list form in PowerApps and that you have changed the screen size to a landscape orientation.  Change the properties of the SharePointForm1 to use at least two columns and turn the <strong>Snap to columns</strong> off. A form with a few fields should then look similar to this:</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="312" data-attachment-id="2982" data-permalink="https://teylyn.com/span03/" data-orig-file="https://teylyn.com/wp-content/uploads/2020/06/span03.png" data-orig-size="1065,325" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="span03" data-image-description="" data-image-caption="" data-medium-file="https://teylyn.com/wp-content/uploads/2020/06/span03.png?w=300" data-large-file="https://teylyn.com/wp-content/uploads/2020/06/span03.png?w=723" src="https://teylyn.com/wp-content/uploads/2020/06/span03.png?w=1024" alt="" class="wp-image-2982" srcset="https://teylyn.com/wp-content/uploads/2020/06/span03.png?w=1024 1024w, https://teylyn.com/wp-content/uploads/2020/06/span03.png?w=150 150w, https://teylyn.com/wp-content/uploads/2020/06/span03.png?w=300 300w, https://teylyn.com/wp-content/uploads/2020/06/span03.png?w=768 768w, https://teylyn.com/wp-content/uploads/2020/06/span03.png 1065w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption><sup>SharePoint list form in PowerApps, using 2 columns</sup></figcaption></figure>



<p>You can see that the toggle control card is as high as the multi-line text card. I want the three toggles to be stacked on top of each other and arranged next to the multi-line text card, so the text card would have to span three rows. </p>



<p>Here is how I did it.</p>



<h3 class="wp-block-heading">Create an empty custom card</h3>



<p>Select the form (probably still called SharePointForm1, and in the right hand side Properties panel click <strong>Edit fields</strong>. Click the three dots at the top and then select <strong>Add a custom card.</strong></p>



<figure class="wp-block-image size-large"><img loading="lazy" width="641" height="179" data-attachment-id="2984" data-permalink="https://teylyn.com/span05/" data-orig-file="https://teylyn.com/wp-content/uploads/2020/06/span05.png" data-orig-size="641,179" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="span05" data-image-description="" data-image-caption="" data-medium-file="https://teylyn.com/wp-content/uploads/2020/06/span05.png?w=300" data-large-file="https://teylyn.com/wp-content/uploads/2020/06/span05.png?w=641" src="https://teylyn.com/wp-content/uploads/2020/06/span05.png?w=641" alt="" class="wp-image-2984" srcset="https://teylyn.com/wp-content/uploads/2020/06/span05.png 641w, https://teylyn.com/wp-content/uploads/2020/06/span05.png?w=150 150w, https://teylyn.com/wp-content/uploads/2020/06/span05.png?w=300 300w" sizes="(max-width: 641px) 100vw, 641px" /><figcaption><sup>Adding a custom card to a PowerApps SharePoint list form</sup></figcaption></figure>



<p>Arrange the new custom card so it sits next to the card with the multi-level text field. You can do that by dragging the custom card in the field list, or by changing the X and Y position of the card in the Advanced settings of the card.</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="297" data-attachment-id="2985" data-permalink="https://teylyn.com/span04/" data-orig-file="https://teylyn.com/wp-content/uploads/2020/06/span04.png" data-orig-size="1038,302" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="span04" data-image-description="" data-image-caption="" data-medium-file="https://teylyn.com/wp-content/uploads/2020/06/span04.png?w=300" data-large-file="https://teylyn.com/wp-content/uploads/2020/06/span04.png?w=723" src="https://teylyn.com/wp-content/uploads/2020/06/span04.png?w=1024" alt="" class="wp-image-2985" srcset="https://teylyn.com/wp-content/uploads/2020/06/span04.png?w=1024 1024w, https://teylyn.com/wp-content/uploads/2020/06/span04.png?w=150 150w, https://teylyn.com/wp-content/uploads/2020/06/span04.png?w=300 300w, https://teylyn.com/wp-content/uploads/2020/06/span04.png?w=768 768w, https://teylyn.com/wp-content/uploads/2020/06/span04.png 1038w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption><sup>Blank custom card inserted into PowerApps SharePoint list form</sup></figcaption></figure>



<p>With the new custom card still selected, add three labels to the card, one for each toggle field, and arrange them vertically.</p>



<h3 class="wp-block-heading">Copy the original control</h3>



<p>Now select the control in the original card and copy it. You can use the keyboard shortcut <strong>Ctrl+C</strong> or right click and select <strong>Copy</strong> from the context menu.</p>



<p>Then click the empty custom card and use <strong>Ctrl_V</strong> or the right-click <strong>Paste</strong> command to paste the control into the custom card. You will notice that the control shows a red x to indicate that there is something wrong with it.</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="692" height="193" data-attachment-id="2988" data-permalink="https://teylyn.com/span06/" data-orig-file="https://teylyn.com/wp-content/uploads/2020/06/span06.png" data-orig-size="692,193" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="span06" data-image-description="" data-image-caption="" data-medium-file="https://teylyn.com/wp-content/uploads/2020/06/span06.png?w=300" data-large-file="https://teylyn.com/wp-content/uploads/2020/06/span06.png?w=692" src="https://teylyn.com/wp-content/uploads/2020/06/span06.png?w=692" alt="" class="wp-image-2988" srcset="https://teylyn.com/wp-content/uploads/2020/06/span06.png 692w, https://teylyn.com/wp-content/uploads/2020/06/span06.png?w=150 150w, https://teylyn.com/wp-content/uploads/2020/06/span06.png?w=300 300w" sizes="(max-width: 692px) 100vw, 692px" /><figcaption><sup>Pasted control with error indicator</sup></figcaption></figure>



<p>Click the down arrow on the error indicator and select <strong>Edit in the formula bar</strong>. The formula bar shows the formula <strong>Parent.Default</strong>. This property makes sense in the original card, which has a default setting for the toggle control. We need to re-establish the link back to that original card.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Whenever I reference cards or controls by their name, I usually edit their names and write in something more meaningful than the default that PowerApps generates.  My three data cards for the three Yes/No fields are called <strong>ONE_DataCard, TWO_DataCard</strong> and <strong>THREE_DataCard</strong>, and I renamed the three original toggle controls to <strong>OneToggle</strong>, <strong>TwoToggle</strong> and <strong>ThreeToggle</strong>. </p></blockquote>



<p>Change the <strong>Parent</strong> part of the formula to the name of the original card. In my case that is the <strong>ONE_DataCard</strong>, so the complete property now reads <strong>ONE_DataCard.Default</strong> and the red error indicator has gone away.</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="710" height="251" data-attachment-id="2989" data-permalink="https://teylyn.com/span07/" data-orig-file="https://teylyn.com/wp-content/uploads/2020/06/span07.png" data-orig-size="710,251" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="span07" data-image-description="" data-image-caption="" data-medium-file="https://teylyn.com/wp-content/uploads/2020/06/span07.png?w=300" data-large-file="https://teylyn.com/wp-content/uploads/2020/06/span07.png?w=710" src="https://teylyn.com/wp-content/uploads/2020/06/span07.png?w=710" alt="" class="wp-image-2989" srcset="https://teylyn.com/wp-content/uploads/2020/06/span07.png 710w, https://teylyn.com/wp-content/uploads/2020/06/span07.png?w=150 150w, https://teylyn.com/wp-content/uploads/2020/06/span07.png?w=300 300w" sizes="(max-width: 710px) 100vw, 710px" /><figcaption><sup>Referencing a different data card for the control default</sup></figcaption></figure>



<p>Repeat that process for the other controls that you want to place in that card. </p>



<p>Due to their default settings, these controls will now inherit their values from the original data cards. Next, we need to make sure that these controls send their changes back to the SharePoint list columns.</p>



<h3 class="wp-block-heading">Link the input controls to list columns</h3>



<p>Inspecting the original cards, there is one property that is responsible for updating the SharePoint list column when edits are made.  It is visible in the <strong>Advanced</strong> section of the data card, but only after clicking on the button for <strong>More options</strong> and is called <strong>Update</strong>.</p>



<p>Out of the box, this command refers to the control in the current card and returns the value of that control. The exact command to return a control&#8217;s value will depend on the type of control. A text control will use ControlName.<strong>Text</strong>, a combobox dropdown will use ControlName.<strong>Selected</strong> and a toggle will use ControlName.<strong>Value</strong>. But we don&#8217;t really have to worry about that, since we only copied the control and did not change its type. So, all we need to do is update the control name that the command is referring to.</p>



<p>When copied and pasted the control to the custom card, the copied control name ended up with a <strong>_1</strong> at the end. So copying <strong>OneToggle</strong> resulted in the name <strong>OneToggle_1</strong>. I&#8217;m not a big fan of numbering copies, because it is easy to lose track of what copy number is for what purpose. To stay in control (pardon the pun), I renamed the controls in the custom card to something more meaningful. I added a <strong>_fake</strong> at the end of the control copies.</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="857" height="242" data-attachment-id="2993" data-permalink="https://teylyn.com/span08/" data-orig-file="https://teylyn.com/wp-content/uploads/2020/06/span08.png" data-orig-size="857,242" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="span08" data-image-description="" data-image-caption="" data-medium-file="https://teylyn.com/wp-content/uploads/2020/06/span08.png?w=300" data-large-file="https://teylyn.com/wp-content/uploads/2020/06/span08.png?w=723" src="https://teylyn.com/wp-content/uploads/2020/06/span08.png?w=857" alt="" class="wp-image-2993" srcset="https://teylyn.com/wp-content/uploads/2020/06/span08.png 857w, https://teylyn.com/wp-content/uploads/2020/06/span08.png?w=150 150w, https://teylyn.com/wp-content/uploads/2020/06/span08.png?w=300 300w, https://teylyn.com/wp-content/uploads/2020/06/span08.png?w=768 768w" sizes="(max-width: 857px) 100vw, 857px" /><figcaption><sup>Give a meaningful name to the copy of the control</sup></figcaption></figure>



<p>Now it&#8217;s really easy to link the <strong>Update</strong> property of the original data card to the control that is used for data entry. Select each of the original controls and change the <strong>Update</strong> property to point to the copy of the control.</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="294" height="311" data-attachment-id="2994" data-permalink="https://teylyn.com/span09/" data-orig-file="https://teylyn.com/wp-content/uploads/2020/06/span09.png" data-orig-size="294,311" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="span09" data-image-description="" data-image-caption="" data-medium-file="https://teylyn.com/wp-content/uploads/2020/06/span09.png?w=284" data-large-file="https://teylyn.com/wp-content/uploads/2020/06/span09.png?w=294" src="https://teylyn.com/wp-content/uploads/2020/06/span09.png?w=294" alt="" class="wp-image-2994" srcset="https://teylyn.com/wp-content/uploads/2020/06/span09.png 294w, https://teylyn.com/wp-content/uploads/2020/06/span09.png?w=142 142w" sizes="(max-width: 294px) 100vw, 294px" /><figcaption><sup>Update the property of the original data card</sup></figcaption></figure>



<p>I did this for the remaining toggle controls. Just for kicks, I applied the same approach on the next row, this time using two custom cards side by side. The left hand custom card contains an image, and next to it, neatly stacked on top of each other, are three controls:  a text box, a choice drop-down and a people picker.</p>



<p>Since I copied the controls from the original data cards, all the definitions of the control, for example the choices for the drop-down, were copied with the control and I didn&#8217;t have to make any effort to understand how the control must be configured. You could create a control from scratch but copy and paste is a lot easier.</p>



<h3 class="wp-block-heading">Hide the original cards</h3>



<p>The final step for my custom designed form is to hide the original controls. To do that, select each card in turn and set the <strong>Visibility</strong> property to <strong>False</strong>.</p>



<p>After that, the cards have disappeared from the canvas and you can only select those cards in the Tree view on the left. </p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Important: do not delete the original data cards. You still need them, since they have the connection to the SharePoint list. Only hide them, so they don&#8217;t mess up your carfully designed multi-column form that now appears to have a large card spanning several rows.</p></blockquote>



<p>Here is the final form again:</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="723" height="315" data-attachment-id="2980" data-permalink="https://teylyn.com/span02/" data-orig-file="https://teylyn.com/wp-content/uploads/2020/06/span02.png" data-orig-size="1099,479" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="span02" data-image-description="" data-image-caption="" data-medium-file="https://teylyn.com/wp-content/uploads/2020/06/span02.png?w=300" data-large-file="https://teylyn.com/wp-content/uploads/2020/06/span02.png?w=723" src="https://teylyn.com/wp-content/uploads/2020/06/span02.png?w=723" alt="" class="wp-image-2980" srcset="https://teylyn.com/wp-content/uploads/2020/06/span02.png?w=723 723w, https://teylyn.com/wp-content/uploads/2020/06/span02.png?w=150 150w, https://teylyn.com/wp-content/uploads/2020/06/span02.png?w=300 300w, https://teylyn.com/wp-content/uploads/2020/06/span02.png?w=768 768w, https://teylyn.com/wp-content/uploads/2020/06/span02.png?w=1024 1024w, https://teylyn.com/wp-content/uploads/2020/06/span02.png 1099w" sizes="(max-width: 723px) 100vw, 723px" /><figcaption><sup>PowerApps form with several controls stacked in one row</sup></figcaption></figure>



<p>Did you find this useful? Which of your list forms will you re-arrange this way?</p>
]]></content:encoded>
					
					<wfw:commentRss>https://teylyn.com/2020/06/10/stacking-powerapps-controls-in-a-single-row/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2975</post-id>
		<media:thumbnail url="https://teylyn.com/wp-content/uploads/2020/06/wall-cropped-1.jpg" />
		<media:content url="https://teylyn.com/wp-content/uploads/2020/06/wall-cropped-1.jpg" medium="image">
			<media:title type="html">wall cropped</media:title>
		</media:content>

		<media:content url="https://1.gravatar.com/avatar/42a31893acf45c0ad0784e8f4c82d4f1299aa62c5173714238cdec5e95c43655?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">akismet-16a73f02bfb0768bed345de389c7e094</media:title>
		</media:content>

		<media:content url="https://teylyn.com/wp-content/uploads/2020/06/span01.png?w=1024" medium="image" />

		<media:content url="https://teylyn.com/wp-content/uploads/2020/06/span02.png?w=1024" medium="image" />

		<media:content url="https://teylyn.com/wp-content/uploads/2020/06/span03.png?w=1024" medium="image" />

		<media:content url="https://teylyn.com/wp-content/uploads/2020/06/span05.png?w=641" medium="image" />

		<media:content url="https://teylyn.com/wp-content/uploads/2020/06/span04.png?w=1024" medium="image" />

		<media:content url="https://teylyn.com/wp-content/uploads/2020/06/span06.png?w=692" medium="image" />

		<media:content url="https://teylyn.com/wp-content/uploads/2020/06/span07.png?w=710" medium="image" />

		<media:content url="https://teylyn.com/wp-content/uploads/2020/06/span08.png?w=857" medium="image" />

		<media:content url="https://teylyn.com/wp-content/uploads/2020/06/span09.png?w=294" medium="image" />

		<media:content url="https://teylyn.com/wp-content/uploads/2020/06/span02.png?w=723" medium="image" />
	</item>
		<item>
		<title>Covid-19 in New Zealand &#8211; a dashboard</title>
		<link>https://teylyn.com/2020/03/26/covid-19-in-new-zealand-a-dashboard/</link>
					<comments>https://teylyn.com/2020/03/26/covid-19-in-new-zealand-a-dashboard/#respond</comments>
		
		<dc:creator><![CDATA[teylyn]]></dc:creator>
		<pubDate>Thu, 26 Mar 2020 02:27:34 +0000</pubDate>
				<category><![CDATA[charts]]></category>
		<category><![CDATA[Power BI]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://teylyn.com/?p=2895</guid>

					<description><![CDATA[The New Zealand government posts the latest figures about Covid-19 in New Zealand on a dedicated page.  Unfortunately, the data quality and the data format are constantly changing. This morning, I could see individual case data with age and gender information. Now, the data is broken down and grouped by District Health Board. These health [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>The New Zealand government posts the latest figures about Covid-19 in New Zealand on <a href="https://www.health.govt.nz/our-work/diseases-and-conditions/covid-19-novel-coronavirus/covid-19-current-cases" target="_blank" rel="noopener">a dedicated page</a>.  Unfortunately, the data quality and the data format are constantly changing. This morning, I could see individual case data with age and gender information. Now, the data is broken down and grouped by District Health Board. These health providers reach across council, district and regional boundaries, so mapping is a challenge.</p>
<p>I will update this dashboard over the next few weeks, so come back and check how New Zealand is doing.</p>
<p>Click the screenshot to open the Power BI report.</p>
<p><a href="https://app.powerbi.com/view?r=eyJrIjoiMmUyNWM2ZGYtN2E5ZS00NDJmLWIyMDgtZjI5NTg1M2VlYTk3IiwidCI6IjZlNjRlZWMzLTFkYWItNDM3ZC1iZGE2LWZhNDA5MmVmY2YxZiIsImMiOjEwfQ%3D%3D" target="_blank" rel="noopener"><img loading="lazy" data-attachment-id="2908" data-permalink="https://teylyn.com/2020/03/26/covid-19-in-new-zealand-a-dashboard/covid19-2020-03-26/" data-orig-file="https://teylyn.com/wp-content/uploads/2020/03/covid19-2020-03-26-2-e1585193316553.png" data-orig-size="2557,1383" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Covid19-2020-03-26" data-image-description="" data-image-caption="" data-medium-file="https://teylyn.com/wp-content/uploads/2020/03/covid19-2020-03-26-2-e1585193316553.png?w=300" data-large-file="https://teylyn.com/wp-content/uploads/2020/03/covid19-2020-03-26-2-e1585193316553.png?w=723" class="alignnone size-full wp-image-2908" src="https://teylyn.com/wp-content/uploads/2020/03/covid19-2020-03-26-2-e1585193316553.png" alt="Covid19-2020-03-26" width="2557" height="1383" srcset="https://teylyn.com/wp-content/uploads/2020/03/covid19-2020-03-26-2-e1585193316553.png 2557w, https://teylyn.com/wp-content/uploads/2020/03/covid19-2020-03-26-2-e1585193316553.png?w=150&amp;h=81 150w, https://teylyn.com/wp-content/uploads/2020/03/covid19-2020-03-26-2-e1585193316553.png?w=300&amp;h=162 300w, https://teylyn.com/wp-content/uploads/2020/03/covid19-2020-03-26-2-e1585193316553.png?w=768&amp;h=415 768w, https://teylyn.com/wp-content/uploads/2020/03/covid19-2020-03-26-2-e1585193316553.png?w=1024&amp;h=554 1024w, https://teylyn.com/wp-content/uploads/2020/03/covid19-2020-03-26-2-e1585193316553.png?w=1440&amp;h=779 1440w" sizes="(max-width: 2557px) 100vw, 2557px" /></a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://teylyn.com/2020/03/26/covid-19-in-new-zealand-a-dashboard/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2895</post-id>
		<media:thumbnail url="https://teylyn.com/wp-content/uploads/2020/03/covid19feature.png" />
		<media:content url="https://teylyn.com/wp-content/uploads/2020/03/covid19feature.png" medium="image">
			<media:title type="html">Covid19Feature</media:title>
		</media:content>

		<media:content url="https://1.gravatar.com/avatar/42a31893acf45c0ad0784e8f4c82d4f1299aa62c5173714238cdec5e95c43655?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">akismet-16a73f02bfb0768bed345de389c7e094</media:title>
		</media:content>

		<media:content url="https://teylyn.com/wp-content/uploads/2020/03/covid19-2020-03-26-2-e1585193316553.png" medium="image">
			<media:title type="html">Covid19-2020-03-26</media:title>
		</media:content>
	</item>
		<item>
		<title>LET() it be! New Excel function to avoid formula duplication</title>
		<link>https://teylyn.com/2020/03/23/let-it-be/</link>
					<comments>https://teylyn.com/2020/03/23/let-it-be/#comments</comments>
		
		<dc:creator><![CDATA[teylyn]]></dc:creator>
		<pubDate>Sun, 22 Mar 2020 19:28:20 +0000</pubDate>
				<category><![CDATA[Excel]]></category>
		<category><![CDATA[Formulas]]></category>
		<category><![CDATA[Functions]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://teylyn.com/?p=2881</guid>

					<description><![CDATA[New Excel function helps to avoid formula duplication.]]></description>
										<content:encoded><![CDATA[<p>There&#8217;s a new kid on the Excel function block and I&#8217;m sure it won&#8217;t have any problems finding others to play with. The function is&nbsp; called LET() and can be used to define and assign a value to a variable. This variable can then be used multiple times within the braces of the LET() function.</p>
<p>Example:</p>
<p>Cell E2 has an XLookup function to return the value from B2:B4 for a match found in A2:A4. The formula goes like this:</p>
<table width="520">
<tbody>
<tr>
<td width="520">
<pre>=XLOOKUP(D2,A2:A4,B2:B4)</pre>
</td>
</tr>
</tbody>
</table>
<p><img loading="lazy" data-attachment-id="2884" data-permalink="https://teylyn.com/2020/03/23/let-it-be/00_let_01/" data-orig-file="https://teylyn.com/wp-content/uploads/2020/03/00_let_01.png" data-orig-size="314,121" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="00_LET_01" data-image-description="" data-image-caption="" data-medium-file="https://teylyn.com/wp-content/uploads/2020/03/00_let_01.png?w=300" data-large-file="https://teylyn.com/wp-content/uploads/2020/03/00_let_01.png?w=314" class="alignnone size-full wp-image-2884" src="https://teylyn.com/wp-content/uploads/2020/03/00_let_01.png" alt="00_LET_01" width="314" height="121" srcset="https://teylyn.com/wp-content/uploads/2020/03/00_let_01.png 314w, https://teylyn.com/wp-content/uploads/2020/03/00_let_01.png?w=150&amp;h=58 150w, https://teylyn.com/wp-content/uploads/2020/03/00_let_01.png?w=300&amp;h=116 300w" sizes="(max-width: 314px) 100vw, 314px"></p>
<p>The cell with the result is empty, so the XLookup function returns a zero. That does not look nice and I&#8217;d rather see a &#8220;not found&#8221; instead of the zero. The approach for that is one that Excel users have been applying for many years: Wrap the formula in an IF() statement, test if the formula returns a zero and if it doesn&#8217;t repeat the formula.</p>
<p>This is what that looks like:</p>
<table width="520">
<tbody>
<tr>
<td width="520">
<pre>=IF(XLOOKUP(D2,A2:A4,B2:B4)=0,"not found",XLOOKUP(D2,A2:A4,B2:B4))</pre>
</td>
</tr>
</tbody>
</table>
<p><img loading="lazy" data-attachment-id="2885" data-permalink="https://teylyn.com/2020/03/23/let-it-be/00_let_02/" data-orig-file="https://teylyn.com/wp-content/uploads/2020/03/00_let_02.png" data-orig-size="312,106" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="00_LET_02" data-image-description="" data-image-caption="" data-medium-file="https://teylyn.com/wp-content/uploads/2020/03/00_let_02.png?w=300" data-large-file="https://teylyn.com/wp-content/uploads/2020/03/00_let_02.png?w=312" class="alignnone size-full wp-image-2885" src="https://teylyn.com/wp-content/uploads/2020/03/00_let_02.png" alt="00_LET_02" width="312" height="106" srcset="https://teylyn.com/wp-content/uploads/2020/03/00_let_02.png 312w, https://teylyn.com/wp-content/uploads/2020/03/00_let_02.png?w=150&amp;h=51 150w, https://teylyn.com/wp-content/uploads/2020/03/00_let_02.png?w=300&amp;h=102 300w" sizes="(max-width: 312px) 100vw, 312px"></p>
<p>The result shows &#8220;not found&#8221;, but the formula repeats the XLookup calculation. With very long and complicated formulas, this approach has challenges. The calculation is duplicated, which can impact workbook performance when there are many formulas that use that approach. Also, when the formula needs to be changed, the changes must be made in each duplicate of the copy.</p>
<p>The new LET() function removes both of these complications.</p>
<p>The first parameter is the name of a new variable,&nbsp;<strong><code>MyResult</code></strong>. The variable is assigned a value with the second parameter. This can be a constant, like a number or a text, or like in this case, a formula.</p>
<p>The third parameter is a calculation that can use the variable value.</p>
<table width="520">
<tbody>
<tr>
<td width="520">
<pre>=LET(MyResult,XLOOKUP(D2,A2:A4,B2:B4),IF(MyResult=0,"not found",MyResult))</pre>
</td>
</tr>
</tbody>
</table>
<p>It&#8217;s also possible to assign several variables, for example like this:</p>
<table width="131">
<tbody>
<tr>
<td width="131">
<pre>=LET(A,25,B,4,A*B)</pre>
</td>
</tr>
</tbody>
</table>
<p>As of writing this, the new LET() function is available in Insider builds of Office 365.</p>
<p>Read more details about the new LET() function and how you can get it in this <a href="https://support.office.com/en-us/article/let-function-34842dd8-b92b-4d3f-b325-b8b8f9908999?NS=EXCEL&amp;Version=90&amp;SysLcid=1033&amp;UiLcid=1033&amp;AppVer=ZXL900&amp;HelpId=xlmain11.chm60687&amp;ui=en-US&amp;rs=en-US&amp;ad=US" target="_blank" rel="noopener">Microsoft support article</a>.</p>
<p>What will you do with the LET() function?</p>
]]></content:encoded>
					
					<wfw:commentRss>https://teylyn.com/2020/03/23/let-it-be/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2881</post-id>
		<media:thumbnail url="https://teylyn.com/wp-content/uploads/2020/03/jorgen-haland-4yogrb_b_i4-unsplash-e1584905048184.jpg" />
		<media:content url="https://teylyn.com/wp-content/uploads/2020/03/jorgen-haland-4yogrb_b_i4-unsplash-e1584905048184.jpg" medium="image">
			<media:title type="html">jorgen-haland-4yOgRb_b_i4-unsplash</media:title>
		</media:content>

		<media:content url="https://1.gravatar.com/avatar/42a31893acf45c0ad0784e8f4c82d4f1299aa62c5173714238cdec5e95c43655?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">akismet-16a73f02bfb0768bed345de389c7e094</media:title>
		</media:content>

		<media:content url="https://teylyn.com/wp-content/uploads/2020/03/00_let_01.png" medium="image">
			<media:title type="html">00_LET_01</media:title>
		</media:content>

		<media:content url="https://teylyn.com/wp-content/uploads/2020/03/00_let_02.png" medium="image">
			<media:title type="html">00_LET_02</media:title>
		</media:content>
	</item>
		<item>
		<title>Timing Microsoft PowerAutomate Approval Reminders</title>
		<link>https://teylyn.com/2020/01/07/timing-microsoft-powerautomate-approval-reminders/</link>
					<comments>https://teylyn.com/2020/01/07/timing-microsoft-powerautomate-approval-reminders/#comments</comments>
		
		<dc:creator><![CDATA[teylyn]]></dc:creator>
		<pubDate>Tue, 07 Jan 2020 00:13:19 +0000</pubDate>
				<category><![CDATA[Flow]]></category>
		<category><![CDATA[Office 365]]></category>
		<category><![CDATA[PowerAutomate]]></category>
		<category><![CDATA[reminder]]></category>
		<category><![CDATA[timeout]]></category>
		<guid isPermaLink="false">http://teylyn.com/?p=2817</guid>

					<description><![CDATA[In Microsoft PowerAutomate (previously called Microsoft Flow), Approvals are a great way to automate the sign-off on a process or document. Approvals can be actioned right in the email in Outlook as well as in the PowerAutomate phone app or in the web portal.  Unfortunately, sometimes the email notification for the approval gets overlooked and [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>In Microsoft PowerAutomate (previously called Microsoft Flow), Approvals are a great way to automate the sign-off on a process or document. Approvals can be actioned right in the email in Outlook as well as in the PowerAutomate phone app or in the web portal.  Unfortunately, sometimes the email notification for the approval gets overlooked and the approval will just sit there until it times out. In this blog I&#8217;ll show you how to create reminder emails that can handle the timeout and progress the workflow without failing it.</p>
<p><figure data-shortcode="caption" id="attachment_2820" aria-describedby="caption-attachment-2820" style="width: 342px" class="wp-caption alignleft"><img loading="lazy" data-attachment-id="2820" data-permalink="https://teylyn.com/2020/01/07/timing-microsoft-powerautomate-approval-reminders/flowapprovalreminder01/" data-orig-file="https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder01.png" data-orig-size="342,442" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="FlowApprovalReminder01" data-image-description="" data-image-caption="&lt;p&gt;Simple reminder flow&lt;/p&gt;
" data-medium-file="https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder01.png?w=232" data-large-file="https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder01.png?w=342" class="wp-image-2820 size-full" src="https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder01.png" alt="simple flow chart" width="342" height="442" srcset="https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder01.png 342w, https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder01.png?w=116&amp;h=150 116w, https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder01.png?w=232&amp;h=300 232w" sizes="(max-width: 342px) 100vw, 342px" /><figcaption id="caption-attachment-2820" class="wp-caption-text">Simple reminder flow</figcaption></figure></p>
<p>The plan is to start a <strong>Do Until</strong> loop as a parallel branch to the approval step. The loop runs until a variable value shows &#8220;complete&#8221;. Inside the loop is a delay, then the variable is checked. If the variable value is &#8220;pending&#8221;, an email reminder is sent to the approver.</p>
<p>When the approval has been processed, the next action sets the variable to &#8220;completed&#8221;, so after the current delay is over, the loop will end.</p>
<p>This approach is easy to set up, but it has a few issues.</p>
<ul>
<li>The delay period must be completed before the loop can be ended. This can lead to undesired lag. For example, if the delay period is one day, the following can happen: The flow sends a reminder email at, say,  1 pm and a new delay is started. The approver actions the approval at 1:30 pm, but the flow will still wait until 1 pm the next day before the loop is ended and the next action after the loop is carried out.</li>
<li>If despite all reminders the approval times out, the next actions after the approval don&#8217;t run. That means the variable never gets set to &#8220;completed&#8221; and the reminders keep getting emailed until the flow itself times out.</li>
</ul>
<p>Let&#8217;s see how to fix this.</p>
<h2>Shorten the delay without spamming the approver</h2>
<p>For the first issue, I&#8217;ll shorten the duration of the delay and use a counter variable that gets incremented in each iteration of the loop.  Let&#8217;s say one hour instead of one day (24 hours). We don&#8217;t want email reminders to go out every hour, though. The approver would certainly not appreciate getting hourly reminders. I only want to send the email once a day, so before I send the email, I divide the counter by 24 (the number of hours I want to wait between emails reminders) and look at the remainder. If the remainder is zero, the counter is a multiple of 24 hours and the email will be sent. The mathematical term for the &#8220;remainder of a division&#8221; calculation is the &#8220;modulo&#8221;. Very conveniently, PowerAutomate has a function to calculate that.</p>
<pre>mod(variables('varCounter'),24)</pre>
<p>I use that expression in a variable of the data type <strong>float</strong> and then check if that variable is zero. That way I can see the result of the <strong>mod()</strong> function in the run history after the Flow has run.</p>
<p>So here is what the <strong>Do Until</strong> loop looks like now.</p>
<p><figure data-shortcode="caption" id="attachment_2822" aria-describedby="caption-attachment-2822" style="width: 475px" class="wp-caption alignnone"><a href="https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder03.png"><img loading="lazy" data-attachment-id="2822" data-permalink="https://teylyn.com/2020/01/07/timing-microsoft-powerautomate-approval-reminders/flowapprovalreminder03/" data-orig-file="https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder03.png" data-orig-size="635,1397" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="FlowApprovalReminder03" data-image-description="" data-image-caption="&lt;p&gt;Do Until actions&lt;/p&gt;
" data-medium-file="https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder03.png?w=136" data-large-file="https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder03.png?w=465" class="wp-image-2822 size-large" src="https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder03.png?w=465" alt="Do Until actions" width="465" height="1024" srcset="https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder03.png?w=465 465w, https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder03.png?w=68 68w, https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder03.png?w=136 136w, https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder03.png 635w" sizes="(max-width: 465px) 100vw, 465px" /></a><figcaption id="caption-attachment-2822" class="wp-caption-text">Do Until actions &#8211; click to enlarge</figcaption></figure></p>
<p>Caveat! Be aware that the <strong>Do Until</strong> action has its own limits for how often it runs and when it times out. The default limits are 60 runs and a one hour timeout. If either of these limits are reached, the loop will end and no more email reminders will be sent. You can change the limits to a higher run count and a different time period, though. Just click the <strong>Change Limits</strong> drop down. In my scenario, my approval will be set to time out after 5 days, so I&#8217;ll set the Do Until to the same timeout limit. The duration is written in <a href="https://en.wikipedia.org/wiki/ISO_8601#Durations" target="_blank" rel="noopener">ISO 8601 duration format</a>, so for 5 days I need to write <strong>P5D</strong>.  With 24 hrs in a day and hourly delays that means I need a count of no fewer than 120 hours.</p>
<p><figure data-shortcode="caption" id="attachment_2826" aria-describedby="caption-attachment-2826" style="width: 649px" class="wp-caption alignnone"><a href="https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder04.png"><img loading="lazy" data-attachment-id="2826" data-permalink="https://teylyn.com/2020/01/07/timing-microsoft-powerautomate-approval-reminders/flowapprovalreminder04/" data-orig-file="https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder04.png" data-orig-size="649,541" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="FlowApprovalReminder04" data-image-description="" data-image-caption="&lt;p&gt;Do Until limit settings &amp;#8211; click to expand&lt;/p&gt;
" data-medium-file="https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder04.png?w=300" data-large-file="https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder04.png?w=649" class="wp-image-2826 size-full" src="https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder04.png" alt="Do Until limits" width="649" height="541" srcset="https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder04.png 649w, https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder04.png?w=150&amp;h=125 150w, https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder04.png?w=300&amp;h=250 300w" sizes="(max-width: 649px) 100vw, 649px" /></a><figcaption id="caption-attachment-2826" class="wp-caption-text">Do Until limit settings</figcaption></figure></p>
<p>Now the progress of the approval is checked every hour and a reminder is sent once a day while the approval is still pending.</p>
<h2>Managing the approval timeout</h2>
<p>By default, an approval times out after 30 days. It will then vanish from the approval portal page, as if it never happened. The Flow itself also times out after 30 days. When that happens, the Flow registers as &#8220;Failed&#8221; and conveniently (NOT!!) also disappears from the run history, which keeps only 30 days of Flows.</p>
<p>While you cannot do anything about the Flow timeouts, you can change the approval timeout to something shorter and take action while you are still in control. The timeout can be changed in the <strong>Settings</strong> of the approval action, which you can find in the three dot menu of the action. Change the duration to the value you want to use and set the <strong>Retry Policy</strong> to <strong>None</strong>.</p>
<p><figure data-shortcode="caption" id="attachment_2831" aria-describedby="caption-attachment-2831" style="width: 733px" class="wp-caption alignnone"><a href="https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder05-1.png"><img loading="lazy" data-attachment-id="2831" data-permalink="https://teylyn.com/2020/01/07/timing-microsoft-powerautomate-approval-reminders/flowapprovalreminder05-2/" data-orig-file="https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder05-1.png" data-orig-size="835,679" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="FlowApprovalReminder05" data-image-description="" data-image-caption="&lt;p&gt;Approval timeout settings &amp;#8211; click to enlarge&lt;/p&gt;
" data-medium-file="https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder05-1.png?w=300" data-large-file="https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder05-1.png?w=723" class="size-large wp-image-2831" src="https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder05-1.png?w=723" alt="Approval Timeout settings" width="723" height="588" srcset="https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder05-1.png?w=723 723w, https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder05-1.png?w=150 150w, https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder05-1.png?w=300 300w, https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder05-1.png?w=768 768w, https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder05-1.png 835w" sizes="(max-width: 723px) 100vw, 723px" /></a><figcaption id="caption-attachment-2831" class="wp-caption-text">Approval timeout settings &#8211; click to enlarge</figcaption></figure></p>
<p>The screenshot shows a timeout interval of 15 minutes, i.e. <strong>PT15M</strong>, which I used during testing the flow. I later changed it to five days, i.e. <strong>P5D</strong> to align with the loop timeout.</p>
<p>The next step after the approval is a condition that checks the approval outcome.  That will be either <strong>Approve</strong> or <strong>Reject</strong> if the approval is actioned in time, but if the approval times out, this next action step does not run unless it is set up with a <strong>Configure run after</strong>.  Click the three dots of the condition step and select <strong>Configure run after</strong>. Now tick two options, i.e. <strong>is successful</strong> and also <strong>has timed out</strong>.</p>
<p><figure data-shortcode="caption" id="attachment_2833" aria-describedby="caption-attachment-2833" style="width: 505px" class="wp-caption alignnone"><a href="https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder06.png"><img loading="lazy" data-attachment-id="2833" data-permalink="https://teylyn.com/2020/01/07/timing-microsoft-powerautomate-approval-reminders/flowapprovalreminder06/" data-orig-file="https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder06.png" data-orig-size="505,254" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="FlowApprovalReminder06" data-image-description="" data-image-caption="&lt;p&gt;Configure run after&lt;/p&gt;
" data-medium-file="https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder06.png?w=300" data-large-file="https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder06.png?w=505" class="size-full wp-image-2833" src="https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder06.png" alt="Configure run after" width="505" height="254" srcset="https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder06.png 505w, https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder06.png?w=150&amp;h=75 150w, https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder06.png?w=300&amp;h=151 300w" sizes="(max-width: 505px) 100vw, 505px" /></a><figcaption id="caption-attachment-2833" class="wp-caption-text">Configure run after</figcaption></figure></p>
<p>The condition action will now be executed when the approval is completed (a <strong>Reject</strong> outcome is still a successful outcome). If the approval has timed out, there will be no outcome. I can exploit this behaviour with a nested condition in the No branch. In words: If the approval outcome is &#8220;Approve&#8221;, send an email with the approval news. Else, if the approval outcome is &#8220;Reject&#8221;,  send an email with the rejection news, otherwise it must be a timeout, so send an email with the timeout news.</p>
<p>This gives me a handle to deal with each outcome differently.</p>
<p>After that, the varApproval is set to &#8220;complete&#8221; and within the next hour the loop will exit and the Flow can process the actions following the parallel branches.</p>
<p><figure data-shortcode="caption" id="attachment_2834" aria-describedby="caption-attachment-2834" style="width: 428px" class="wp-caption alignnone"><a href="https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder07.png"><img loading="lazy" data-attachment-id="2834" data-permalink="https://teylyn.com/2020/01/07/timing-microsoft-powerautomate-approval-reminders/flowapprovalreminder07/" data-orig-file="https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder07.png" data-orig-size="625,1530" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="FlowApprovalReminder07" data-image-description="" data-image-caption="&lt;p&gt;Approval processing conditions &amp;#8211; click to enlarge&lt;/p&gt;
" data-medium-file="https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder07.png?w=123" data-large-file="https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder07.png?w=418" class="size-large wp-image-2834" src="https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder07.png?w=418" alt="Approval processing" width="418" height="1024" srcset="https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder07.png?w=418 418w, https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder07.png?w=61 61w, https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder07.png?w=123 123w, https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder07.png 625w" sizes="(max-width: 418px) 100vw, 418px" /></a><figcaption id="caption-attachment-2834" class="wp-caption-text">Approval processing conditions &#8211; click to enlarge</figcaption></figure></p>
<p>The nested conditions are not pretty, but this approach works. I tried a Switch instead of a Condition, but the Switch will fail after a timed out approval, since there is no outcome. The Condition handles that scenario much better.</p>
<p>That&#8217;s it. We can now send reminders, control the timeouts and process the result of the approval.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://teylyn.com/2020/01/07/timing-microsoft-powerautomate-approval-reminders/feed/</wfw:commentRss>
			<slash:comments>34</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2817</post-id>
		<media:thumbnail url="https://teylyn.com/wp-content/uploads/2020/01/veri-ivanova-p3pj7joyvnm-unsplash.jpg" />
		<media:content url="https://teylyn.com/wp-content/uploads/2020/01/veri-ivanova-p3pj7joyvnm-unsplash.jpg" medium="image">
			<media:title type="html">veri-ivanova-p3Pj7jOYvnM-unsplash</media:title>
		</media:content>

		<media:content url="https://1.gravatar.com/avatar/42a31893acf45c0ad0784e8f4c82d4f1299aa62c5173714238cdec5e95c43655?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">akismet-16a73f02bfb0768bed345de389c7e094</media:title>
		</media:content>

		<media:content url="https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder01.png" medium="image">
			<media:title type="html">simple flow chart</media:title>
		</media:content>

		<media:content url="https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder03.png?w=465" medium="image">
			<media:title type="html">Do Until actions</media:title>
		</media:content>

		<media:content url="https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder04.png" medium="image">
			<media:title type="html">Do Until limits</media:title>
		</media:content>

		<media:content url="https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder05-1.png?w=723" medium="image">
			<media:title type="html">Approval Timeout settings</media:title>
		</media:content>

		<media:content url="https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder06.png" medium="image">
			<media:title type="html">Configure run after</media:title>
		</media:content>

		<media:content url="https://teylyn.com/wp-content/uploads/2020/01/flowapprovalreminder07.png?w=418" medium="image">
			<media:title type="html">Approval processing</media:title>
		</media:content>
	</item>
		<item>
		<title>Excel for Artists &#8211; A size calculator</title>
		<link>https://teylyn.com/2019/08/20/excel-for-artists-a-size-calculator/</link>
					<comments>https://teylyn.com/2019/08/20/excel-for-artists-a-size-calculator/#respond</comments>
		
		<dc:creator><![CDATA[teylyn]]></dc:creator>
		<pubDate>Tue, 20 Aug 2019 01:28:30 +0000</pubDate>
				<category><![CDATA[charts]]></category>
		<category><![CDATA[Excel]]></category>
		<guid isPermaLink="false">http://teylyn.com/?p=2841</guid>

					<description><![CDATA[Check out my guest post on the Microsoft Excel Blog.  I have created a tool that you can use to compare paper sizes across different measurement systems. Free sample file included! &#160;]]></description>
										<content:encoded><![CDATA[<p>Check out my guest post on the <a href="https://techcommunity.microsoft.com/t5/excel-blog/excel-for-artists-a-size-calculator-by-ingeborg-hawighorst-excel/ba-p/809713" target="_blank" rel="noopener">Microsoft Excel Blog</a>.  I have created a tool that you can use to compare paper sizes across different measurement systems. Free sample file included!</p>
<p><figure data-shortcode="caption" id="attachment_2845" aria-describedby="caption-attachment-2845" style="width: 733px" class="wp-caption alignnone"><a href="https://techcommunity.microsoft.com/t5/excel-blog/excel-for-artists-a-size-calculator-by-ingeborg-hawighorst-excel/ba-p/809713" target="_blank" rel="noopener"><img loading="lazy" data-attachment-id="2845" data-permalink="https://teylyn.com/2019/08/20/excel-for-artists-a-size-calculator/ingeborg_sizecalculator_01/" data-orig-file="https://teylyn.com/wp-content/uploads/2020/01/ingeborg_sizecalculator_01.jpg" data-orig-size="999,659" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Ingeborg_SizeCalculator_01" data-image-description="" data-image-caption="&lt;p&gt;Excel size comparison tool&lt;/p&gt;
" data-medium-file="https://teylyn.com/wp-content/uploads/2020/01/ingeborg_sizecalculator_01.jpg?w=300" data-large-file="https://teylyn.com/wp-content/uploads/2020/01/ingeborg_sizecalculator_01.jpg?w=723" class="size-large wp-image-2845" src="https://teylyn.com/wp-content/uploads/2020/01/ingeborg_sizecalculator_01.jpg?w=723" alt="size comparison tool" width="723" height="477" srcset="https://teylyn.com/wp-content/uploads/2020/01/ingeborg_sizecalculator_01.jpg?w=723 723w, https://teylyn.com/wp-content/uploads/2020/01/ingeborg_sizecalculator_01.jpg?w=150 150w, https://teylyn.com/wp-content/uploads/2020/01/ingeborg_sizecalculator_01.jpg?w=300 300w, https://teylyn.com/wp-content/uploads/2020/01/ingeborg_sizecalculator_01.jpg?w=768 768w, https://teylyn.com/wp-content/uploads/2020/01/ingeborg_sizecalculator_01.jpg 999w" sizes="(max-width: 723px) 100vw, 723px" /></a><figcaption id="caption-attachment-2845" class="wp-caption-text">Excel size comparison tool</figcaption></figure></p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://teylyn.com/2019/08/20/excel-for-artists-a-size-calculator/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2841</post-id>
		<media:thumbnail url="https://teylyn.com/wp-content/uploads/2020/01/ingeborg_paintingbear.jpg" />
		<media:content url="https://teylyn.com/wp-content/uploads/2020/01/ingeborg_paintingbear.jpg" medium="image">
			<media:title type="html">Ingeborg_PaintingBear</media:title>
		</media:content>

		<media:content url="https://1.gravatar.com/avatar/42a31893acf45c0ad0784e8f4c82d4f1299aa62c5173714238cdec5e95c43655?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">akismet-16a73f02bfb0768bed345de389c7e094</media:title>
		</media:content>

		<media:content url="https://teylyn.com/wp-content/uploads/2020/01/ingeborg_sizecalculator_01.jpg?w=723" medium="image">
			<media:title type="html">size comparison tool</media:title>
		</media:content>
	</item>
		<item>
		<title>Digital Workplace Conference NZ</title>
		<link>https://teylyn.com/2018/05/01/digital-workplace-conference-nz/</link>
					<comments>https://teylyn.com/2018/05/01/digital-workplace-conference-nz/#respond</comments>
		
		<dc:creator><![CDATA[teylyn]]></dc:creator>
		<pubDate>Tue, 01 May 2018 05:16:50 +0000</pubDate>
				<category><![CDATA[charts]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[Office 365]]></category>
		<category><![CDATA[Presentations]]></category>
		<guid isPermaLink="false">http://teylyn.com/?p=1454</guid>

					<description><![CDATA[What a great conference it was today. Looking forward to tomorrow&#8217;s sessions. Below you can find my presentation and the Excel Form workbook to download and inspect. DWCNZ Form workbook Forms Plus Slide Deck]]></description>
										<content:encoded><![CDATA[<p>What a great conference it was today. Looking forward to tomorrow&#8217;s sessions.</p>
<p>Below you can find my presentation and the Excel Form workbook to download and inspect.</p>
<p><a title="DWCNZ" href="https://teylyn.com/wp-content/uploads/2018/05/dwcnz.xlsx" target="_blank" rel="noopener">DWCNZ Form workbook</a></p>
<p><a title="Forms Plus" href="https://teylyn.com/wp-content/uploads/2018/05/forms-plus.pptx" target="_blank" rel="noopener">Forms Plus Slide Deck</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://teylyn.com/2018/05/01/digital-workplace-conference-nz/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1454</post-id>
		<media:thumbnail url="https://teylyn.com/wp-content/uploads/2018/05/dwc-nz-logo1.png" />
		<media:content url="https://teylyn.com/wp-content/uploads/2018/05/dwc-nz-logo1.png" medium="image">
			<media:title type="html">DWC-NZ-logo</media:title>
		</media:content>

		<media:content url="https://1.gravatar.com/avatar/42a31893acf45c0ad0784e8f4c82d4f1299aa62c5173714238cdec5e95c43655?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">akismet-16a73f02bfb0768bed345de389c7e094</media:title>
		</media:content>
	</item>
		<item>
		<title>Choosing a chart</title>
		<link>https://teylyn.com/2018/03/19/choosing-a-chart/</link>
					<comments>https://teylyn.com/2018/03/19/choosing-a-chart/#comments</comments>
		
		<dc:creator><![CDATA[teylyn]]></dc:creator>
		<pubDate>Mon, 19 Mar 2018 07:49:50 +0000</pubDate>
				<category><![CDATA[charts]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[featured]]></category>
		<guid isPermaLink="false">http://teylyn.com/?p=1443</guid>

					<description><![CDATA[Last week, during the MVP Global Summit conference at Microsoft&#8217;s headquarters in Redmond, Washington, I had the opportunity to record a video in the professional Microsoft production studios. The production team pulled out all the stops and we got the whole treatment with backstage crew, hair, makeup, lighting, several cameras and a lot of professional [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Last week, during the MVP Global Summit conference at Microsoft&#8217;s headquarters in Redmond, Washington, I had the opportunity to record a video in the professional Microsoft production studios. The production team pulled out all the stops and we got the whole treatment with backstage crew, hair, makeup, lighting, several cameras and a lot of professional atmosphere. I did a little demo about why pie charts are not the best data visualisation in all scenarios and here is my video:</p>
<div class="jetpack-video-wrapper"><iframe class="youtube-player" width="723" height="407" src="https://www.youtube.com/embed/mkVPfupPidQ?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=en&#038;autohide=2&#038;wmode=transparent" allowfullscreen="true" style="border:0;" sandbox="allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox"></iframe></div>
<p>If you want to follow the steps here is the Excel file I used:</p>
<p><a href="https://teylyn.com/wp-content/uploads/2018/03/summit-video-pie-chart-demo.xlsx">Summit Video Pie chart demo</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://teylyn.com/2018/03/19/choosing-a-chart/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1443</post-id>
		<media:thumbnail url="https://teylyn.com/wp-content/uploads/2018/03/cover.jpg" />
		<media:content url="https://teylyn.com/wp-content/uploads/2018/03/cover.jpg" medium="image">
			<media:title type="html">cover</media:title>
		</media:content>

		<media:content url="https://1.gravatar.com/avatar/42a31893acf45c0ad0784e8f4c82d4f1299aa62c5173714238cdec5e95c43655?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">akismet-16a73f02bfb0768bed345de389c7e094</media:title>
		</media:content>
	</item>
		<item>
		<title>Excel for Mac &#8211; New features</title>
		<link>https://teylyn.com/2017/10/05/excel-for-mac-new-features/</link>
					<comments>https://teylyn.com/2017/10/05/excel-for-mac-new-features/#respond</comments>
		
		<dc:creator><![CDATA[teylyn]]></dc:creator>
		<pubDate>Thu, 05 Oct 2017 07:09:10 +0000</pubDate>
				<category><![CDATA[Excel]]></category>
		<category><![CDATA[Excel for Mac]]></category>
		<category><![CDATA[Office 365]]></category>
		<guid isPermaLink="false">http://teylyn.com/?p=1419</guid>

					<description><![CDATA[I don&#8217;t use a Mac, but I&#8217;ve just seen an exciting announcement on the release notes for the newest Insider Fast build for Excel for Mac 16.6 (Build 171001) on a 365 subscription.  Check out the full article here. The article also contains details about installing Excel for Mac. The new features include: Collaborate &#8211; For [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>I don&#8217;t use a Mac, but I&#8217;ve just seen an exciting announcement on the release notes for the newest Insider Fast build for Excel for Mac 16.6 (Build 171001) on a 365 subscription.  Check out the full article <a href="https://support.office.com/en-us/article/Excel-2016-for-Mac-%E2%80%93-Release-notes-for-Insider-Fast-builds-2425ec86-7c37-4d37-a276-225d4d7e1e17?ui=en-US&amp;rs=en-US&amp;ad=US" target="_blank" rel="noopener">here</a>. The article also contains details about installing Excel for Mac.</p>
<p>The new features include:</p>
<ul>
<li>Collaborate &#8211; For Office 365 subscribers, you can edit at the same time with others for workbooks stored in OneDrive and SharePoint.</li>
<li>New functions &#8211; For O365 subscribers, use the new IFS and SWITCH functions to simplify and shorten your formulas.</li>
<li>Better support for charts with a PivotTable as the data source &#8211; charts will update if you update the PivotTable.</li>
<li>Table Slicers &#8211; Add a Slicer to filter your tables quickly.</li>
<li>New and modern chart types &#8211; for O365 subscribers, visualize your data with new chart types, including Box &amp; Whisker, funnel, histogram, Pareto, sunburst, treemap, and waterfall.</li>
<li>Updated Visual Basic for Applications (VBA) &#8211; Some additional methods, properties, and objects available to Windows Office users will now work on Mac as well. There are still differences between the Mac and Windows Object Model, so you will still see “not supported on this platform” for some elements. More details on the Object Model changes will be available soon.</li>
</ul>
<p>Be aware that Insider Fast builds can still be a little bit unpolished and not everything may work perfectly. But if you try it out and provide feedback with the smiley icon, that feedback will go directly to the Excel team and will get their attention.</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://teylyn.com/2017/10/05/excel-for-mac-new-features/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1419</post-id>
		<media:content url="https://1.gravatar.com/avatar/42a31893acf45c0ad0784e8f4c82d4f1299aa62c5173714238cdec5e95c43655?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">akismet-16a73f02bfb0768bed345de389c7e094</media:title>
		</media:content>
	</item>
		<item>
		<title>Feed the dragons in Game of Thrones with Excel 365 TextJoin</title>
		<link>https://teylyn.com/2017/08/14/feed-the-dragons-in-game-of-thrones-with-excel-365-textjoin/</link>
					<comments>https://teylyn.com/2017/08/14/feed-the-dragons-in-game-of-thrones-with-excel-365-textjoin/#comments</comments>
		
		<dc:creator><![CDATA[teylyn]]></dc:creator>
		<pubDate>Mon, 14 Aug 2017 09:47:51 +0000</pubDate>
				<category><![CDATA[Excel]]></category>
		<category><![CDATA[Formulas]]></category>
		<category><![CDATA[Functions]]></category>
		<guid isPermaLink="false">http://teylyn.com/?p=1215</guid>

					<description><![CDATA[Imagine you&#8217;re organizing a party for the major Game of Thrones characters (or maybe just your office crowd).  Your event would include food, so in order to ensure everybody is served food they enjoy, your RSVP form would include a question where your guests can select what type of meal they want. (This post is [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Imagine you&#8217;re organizing a party for the major Game of Thrones characters (or maybe just your office crowd).  Your event would include food, so in order to ensure everybody is served food they enjoy, your RSVP form would include a question where your guests can select what type of meal they want. (This post is not about how to set up and collect this data. You could use Outlook voting buttons, an Excel Online survey or something like that.)</p>
<p>Once all people have returned their RSVPs, you can use Excel to organise the replies into a list with two columns: <strong>Name</strong> and <strong>Meal choice</strong>. Something like this:</p>
<p><img loading="lazy" data-attachment-id="1224" data-permalink="https://teylyn.com/2017/08/14/feed-the-dragons-in-game-of-thrones-with-excel-365-textjoin/mealchoice01/" data-orig-file="https://teylyn.com/wp-content/uploads/2017/08/mealchoice01.jpg" data-orig-size="320,776" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="mealchoice01" data-image-description="" data-image-caption="" data-medium-file="https://teylyn.com/wp-content/uploads/2017/08/mealchoice01.jpg?w=124" data-large-file="https://teylyn.com/wp-content/uploads/2017/08/mealchoice01.jpg?w=320" class="alignleft  wp-image-1224" src="https://teylyn.com/wp-content/uploads/2017/08/mealchoice01.jpg?w=248" alt="mealchoice01" width="166" height="366" /></p>
<p>The name of the table is <strong>MealOrders</strong>.</p>
<p>Now you need to work out how many meals of each type you need to order from your catering company.</p>
<p>You could build a pivot table, but since there is a fixed number of just seven meal choices, we can also just build a simple table with a formula. Place the seven meal choices into seven cells and use a Countif function. Turn that into a table by pressing Ctrl-T or click Insert &gt; Table. (Tables are great for working with data!!)</p>
<p>Something like this: The blue table has the user data, the green table has the count per meal choice.</p>
<p><img loading="lazy" data-attachment-id="1268" data-permalink="https://teylyn.com/2017/08/14/feed-the-dragons-in-game-of-thrones-with-excel-365-textjoin/mealchoice02-4/" data-orig-file="https://teylyn.com/wp-content/uploads/2017/08/mealchoice023.jpg" data-orig-size="764,400" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="mealchoice02" data-image-description="" data-image-caption="" data-medium-file="https://teylyn.com/wp-content/uploads/2017/08/mealchoice023.jpg?w=300" data-large-file="https://teylyn.com/wp-content/uploads/2017/08/mealchoice023.jpg?w=723" class="alignnone size-full wp-image-1268" src="https://teylyn.com/wp-content/uploads/2017/08/mealchoice023.jpg" alt="mealchoice02" width="764" height="400" srcset="https://teylyn.com/wp-content/uploads/2017/08/mealchoice023.jpg 764w, https://teylyn.com/wp-content/uploads/2017/08/mealchoice023.jpg?w=150&amp;h=79 150w, https://teylyn.com/wp-content/uploads/2017/08/mealchoice023.jpg?w=300&amp;h=157 300w" sizes="(max-width: 764px) 100vw, 764px" /></p>
<p>The formula to calculate <strong>how many</strong> meals to order (in the green table) is a simple Countif function, which you can see in the formula bar, but here it is if you want to copy it:</p>
<pre>=COUNTIF(MealOrders[meal choice],[@[meal chosen]])</pre>
<p>In plain words: In the table <strong>MealOrders</strong> (the blue table), look at the column <strong>meal choice</strong> and count how often the value of the column <strong>meal chosen</strong> from the current table (the green table) appears.</p>
<p>So far, so good. You know how many meals of each type to order to keep your GOT team happy, which is, as we all know, not easy at times.</p>
<p>Now the catering company delivers the food. You need to instruct your wait staff to deliver the right meal to the right person. Let&#8217;s say you have one waiter for each meal type. How can you work out who has ordered which meal, so you can give each of the wait staff a distinct list of people to deliver these meals to? One option is to sort the MealOrder table by the column <strong>meal choice</strong>. That will still result in quite a long list and require some scrolling to see all the data.</p>
<p><img loading="lazy" data-attachment-id="1242" data-permalink="https://teylyn.com/2017/08/14/feed-the-dragons-in-game-of-thrones-with-excel-365-textjoin/mealchoice03/" data-orig-file="https://teylyn.com/wp-content/uploads/2017/08/mealchoice03.jpg" data-orig-size="277,472" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="mealchoice03" data-image-description="" data-image-caption="" data-medium-file="https://teylyn.com/wp-content/uploads/2017/08/mealchoice03.jpg?w=176" data-large-file="https://teylyn.com/wp-content/uploads/2017/08/mealchoice03.jpg?w=277" class="alignnone size-full wp-image-1242" src="https://teylyn.com/wp-content/uploads/2017/08/mealchoice03.jpg" alt="mealchoice03" width="277" height="472" srcset="https://teylyn.com/wp-content/uploads/2017/08/mealchoice03.jpg 277w, https://teylyn.com/wp-content/uploads/2017/08/mealchoice03.jpg?w=88&amp;h=150 88w" sizes="(max-width: 277px) 100vw, 277px" /></p>
<p>What if there were a way to list all names for kosher meals in one cell?  If you&#8217;ve been using Excel for a while, you know that this may not be so easy, but, &#8230;. drum roll &#8230;.</p>
<h2>&#8212; Let me take you on a little excursion &#8212;</h2>
<p>Excel 2016 with an Office 365 subscription has a new function called TextJoin().  The syntax for TextJoin is</p>
<pre>=Textjoin(Delimiter, IgnoreBlank, Range)</pre>
<p><strong>Delimiter </strong>is a text string. You can specify any delimiter you want, and the delimiter can be more than one character. So, if you want to separate list entries with a comma and a space, then use a comma and a space, like &#8220;, &#8220;.</p>
<p><strong>IgnoreBlank</strong> will take TRUE or FALSE. If the source data has blank cells and you want to ignore these, select TRUE.</p>
<p><strong>Range</strong> is the list of cells that holds the values that you want to join or concatenate. \</p>
<p>Here are two examples:</p>
<p><img loading="lazy" data-attachment-id="1286" data-permalink="https://teylyn.com/2017/08/14/feed-the-dragons-in-game-of-thrones-with-excel-365-textjoin/mealchoice04/" data-orig-file="https://teylyn.com/wp-content/uploads/2017/08/mealchoice04.jpg" data-orig-size="428,362" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="mealchoice04" data-image-description="" data-image-caption="" data-medium-file="https://teylyn.com/wp-content/uploads/2017/08/mealchoice04.jpg?w=300" data-large-file="https://teylyn.com/wp-content/uploads/2017/08/mealchoice04.jpg?w=428" class="alignnone size-full wp-image-1286" src="https://teylyn.com/wp-content/uploads/2017/08/mealchoice04.jpg" alt="mealchoice04.jpg" width="428" height="362" srcset="https://teylyn.com/wp-content/uploads/2017/08/mealchoice04.jpg 428w, https://teylyn.com/wp-content/uploads/2017/08/mealchoice04.jpg?w=150&amp;h=127 150w, https://teylyn.com/wp-content/uploads/2017/08/mealchoice04.jpg?w=300&amp;h=254 300w" sizes="(max-width: 428px) 100vw, 428px" /></p>
<p>You see that you can use cell references (formula in cell A9, written out in cell A10) as well as Structured References (formula in cell A12, written out in cell A13) like table names and table columns in the TextJoin function. With the IgnoreBlank parameter set to TRUE, blanks don&#8217;t feature in the result.</p>
<h2>&#8212; That&#8217;s the end of our excursion. Thank you for taking the time. &#8212;</h2>
<p>Now, back to our hungry Game of Thrones crowd.</p>
<p>Using TextJoin, we can create a comma separated list of characters for each meal choice in a single cell. But it requires a little twist.</p>
<p>Let&#8217;s add a column next to the <strong>How many</strong> column. We need to feed (pardon the pun) the TextJoin function only those cells that have the meal choice listed in our <strong>meal chosen</strong> column of the same row.</p>
<p>As the <strong>Range</strong> parameter, we need to use an IF function. If the <strong>meal choice</strong> in the <strong>MealOrder</strong> table is the same text as the <strong>meal chosen</strong> column in the current row, then return the <strong>Name</strong> from the <strong>MealOrders</strong> table, otherwise, return a blank cell.</p>
<p>So the parameter for the <strong>Range</strong> looks like this:</p>
<pre>IF(MealOrders[meal choice]=[@[meal chosen]],MealOrders[Name],"")</pre>
<p>This is not a complete formula, just the parameter for the <strong>Range</strong>. This IF function will return a list (or array) of values, which the TextJoin function can then interpret.  Let&#8217;s go back to the unsorted list of orders:</p>
<p><img loading="lazy" data-attachment-id="1224" data-permalink="https://teylyn.com/2017/08/14/feed-the-dragons-in-game-of-thrones-with-excel-365-textjoin/mealchoice01/" data-orig-file="https://teylyn.com/wp-content/uploads/2017/08/mealchoice01.jpg" data-orig-size="320,776" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="mealchoice01" data-image-description="" data-image-caption="" data-medium-file="https://teylyn.com/wp-content/uploads/2017/08/mealchoice01.jpg?w=124" data-large-file="https://teylyn.com/wp-content/uploads/2017/08/mealchoice01.jpg?w=320" class="  wp-image-1224 alignleft" src="https://teylyn.com/wp-content/uploads/2017/08/mealchoice01.jpg" alt="mealchoice01" width="216" height="524" srcset="https://teylyn.com/wp-content/uploads/2017/08/mealchoice01.jpg?w=216&amp;h=524 216w, https://teylyn.com/wp-content/uploads/2017/08/mealchoice01.jpg?w=62&amp;h=150 62w, https://teylyn.com/wp-content/uploads/2017/08/mealchoice01.jpg?w=124&amp;h=300 124w, https://teylyn.com/wp-content/uploads/2017/08/mealchoice01.jpg 320w" sizes="(max-width: 216px) 100vw, 216px" /></p>
<p>If we apply the IF function above to the meal choice column when looking at &#8220;regular&#8221;, then the IF function will return an array that starts like this:</p>
<pre>{"","Robert","","Catelyn","","","Jorah","Petyr".......}</pre>
<p>For every name that sits next to the &#8220;regular&#8221; meal choice, the list will show the name. For all other meal choices, the list will show a blank.</p>
<p>In the TextJoin function, we&#8217;re asking to ignore the blanks when we set the second parameter to TRUE, remember?</p>
<pre>=Textjoin(Delimiter, IgnoreBlank, Range)</pre>
<p>So that&#8217;s what we will exploit for the solution.</p>
<p>In the results table with the column for <strong>How many</strong> meals we need to order, we can add another column to show who these meals need to be delivered to in a nice, concise, comma separated list. Like this:</p>
<p><img loading="lazy" data-attachment-id="1324" data-permalink="https://teylyn.com/2017/08/14/feed-the-dragons-in-game-of-thrones-with-excel-365-textjoin/mealchoice05/" data-orig-file="https://teylyn.com/wp-content/uploads/2017/08/mealchoice05.jpg" data-orig-size="1023,429" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="mealchoice05" data-image-description="" data-image-caption="" data-medium-file="https://teylyn.com/wp-content/uploads/2017/08/mealchoice05.jpg?w=300" data-large-file="https://teylyn.com/wp-content/uploads/2017/08/mealchoice05.jpg?w=723" class="alignnone size-full wp-image-1324" src="https://teylyn.com/wp-content/uploads/2017/08/mealchoice05.jpg" alt="mealchoice05" width="1023" height="429" srcset="https://teylyn.com/wp-content/uploads/2017/08/mealchoice05.jpg 1023w, https://teylyn.com/wp-content/uploads/2017/08/mealchoice05.jpg?w=150&amp;h=63 150w, https://teylyn.com/wp-content/uploads/2017/08/mealchoice05.jpg?w=300&amp;h=126 300w, https://teylyn.com/wp-content/uploads/2017/08/mealchoice05.jpg?w=768&amp;h=322 768w" sizes="(max-width: 1023px) 100vw, 1023px" /></p>
<p>Here is the formula:</p>
<pre>=TEXTJOIN(", ",TRUE,IF(MealOrders[meal choice]=[@[meal chosen]],MealOrders[Name],""))</pre>
<p>Now, here comes the catch. You&#8217;ve been waiting for that, haven&#8217;t you? It was too good to be true, right?</p>
<p>The catch is that the nested IF function returns an array, i.e. multiple values, to the TextJoin function. This makes the whole formula in cell F3 a so-called <strong>array formula</strong>. In order to show all results properly, an array formula must be confirmed by holding down both the <strong>Ctrl</strong> and the <strong>Shift</strong> keys and then pressing <strong>Enter</strong>.</p>
<p>This special way of confirming a formula in a cell will enable the TextJoin function to check out <strong>all</strong> the values that the If function comes up with. If the formula is confirmed with just hitting Enter, then only the first value of the array (or list) served by the nested IF function will be looked at.</p>
<p>You can tell if a formula has been confirmed with Ctrl-Shift-Enter, because if it <strong>has</strong>, it will be wrapped in <strong>curly braces</strong> in the formula bar. Check the screenshot. Do you see the curly braces? They are easy to overlook but essential for an array formula to work.</p>
<p>Every time you edit an array formula, you have to remember to press Ctrl-Shift-Enter!!</p>
<p>If you forget that keystroke, all the formulas in the table will deliver wrong results. The wrath of Daenerys will be upon you and her dragons will engulf you in fire. To avoid that, you may want to download the sample file and check out how all this works.</p>
<p><a title="GOTMealChoices" href="https://teylyn.com/wp-content/uploads/2017/08/gotmealchoices.xlsx">Download the sample file</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://teylyn.com/2017/08/14/feed-the-dragons-in-game-of-thrones-with-excel-365-textjoin/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1215</post-id>
		<media:thumbnail url="https://teylyn.com/wp-content/uploads/2017/08/mealchoice061.jpg" />
		<media:content url="https://teylyn.com/wp-content/uploads/2017/08/mealchoice061.jpg" medium="image">
			<media:title type="html">mealchoice06</media:title>
		</media:content>

		<media:content url="https://1.gravatar.com/avatar/42a31893acf45c0ad0784e8f4c82d4f1299aa62c5173714238cdec5e95c43655?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">akismet-16a73f02bfb0768bed345de389c7e094</media:title>
		</media:content>

		<media:content url="https://teylyn.com/wp-content/uploads/2017/08/mealchoice01.jpg?w=248" medium="image">
			<media:title type="html">mealchoice01</media:title>
		</media:content>

		<media:content url="https://teylyn.com/wp-content/uploads/2017/08/mealchoice023.jpg" medium="image">
			<media:title type="html">mealchoice02</media:title>
		</media:content>

		<media:content url="https://teylyn.com/wp-content/uploads/2017/08/mealchoice03.jpg" medium="image">
			<media:title type="html">mealchoice03</media:title>
		</media:content>

		<media:content url="https://teylyn.com/wp-content/uploads/2017/08/mealchoice04.jpg" medium="image">
			<media:title type="html">mealchoice04.jpg</media:title>
		</media:content>

		<media:content url="https://teylyn.com/wp-content/uploads/2017/08/mealchoice01.jpg" medium="image">
			<media:title type="html">mealchoice01</media:title>
		</media:content>

		<media:content url="https://teylyn.com/wp-content/uploads/2017/08/mealchoice05.jpg" medium="image">
			<media:title type="html">mealchoice05</media:title>
		</media:content>
	</item>
		<item>
		<title>&#8220;Squinting data&#8221; for troubleshooting with Power Query and an Excel chart</title>
		<link>https://teylyn.com/2017/04/19/squinting-data-for-troubleshooting-with-power-query-and-an-excel-chart/</link>
					<comments>https://teylyn.com/2017/04/19/squinting-data-for-troubleshooting-with-power-query-and-an-excel-chart/#comments</comments>
		
		<dc:creator><![CDATA[teylyn]]></dc:creator>
		<pubDate>Wed, 19 Apr 2017 08:13:41 +0000</pubDate>
				<category><![CDATA[charts]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[SharePoint]]></category>
		<guid isPermaLink="false">http://teylyn.com/?p=1095</guid>

					<description><![CDATA[This post shows how a quick Excel chart, prepared with data cleaned up using Power Query, can help identify the point in time when a change in the IT landscape caused an error in a dependent system. The background Something was wrong. For the last two years, we&#8217;ve had a procedure in place that imports [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>This post shows how a quick Excel chart, prepared with data cleaned up using Power Query, can help identify the point in time when a change in the IT landscape caused an error in a dependent system.</p>
<h2>The background</h2>
<p>Something was wrong.</p>
<p>For the last two years, we&#8217;ve had a procedure in place that imports event data from System A to System B. Now the users reported that the time stamps from System A were off in System B. All of them. By 12 hours.</p>
<p>OK, my employer&#8217;s company is in New Zealand, which means that time zones, regions and locales are a big problem for software that can be very US centric. Therefore, the &#8220;12 hours off&#8221; pointed towards a possible locale issue.  But we couldn&#8217;t really see what had changed in our environment, or when.</p>
<p>We run many different systems from many different vendors, most of them from the US (Looking at you, Microsoft). There&#8217;s often a lot of fine-tuning and workarounds involved, so things work in New Zealand. And when the vendor publishes an update, our workarounds may be superseded and become obsolete, or in the worst case, even revert the issue and turn against us. That&#8217;s why we suspected that some change in one of our systems was to blame.</p>
<p>But which change? And when did it happen?</p>
<h2>The approach</h2>
<p>Enter Power Query and Excel charting for some quick ad-hoc analysis.</p>
<p>We knew in December 2016 the imported dates were still fine. We knew by the end of March 2017 the imported dates were off by 12 hours. So, something must have happened between December and March.</p>
<p>There are hundreds of events every day, so just &#8220;downloading&#8221; a few months worth of data into Excel would probably have caused a major grind-to-a-halt of my machine. But with Power Query, things are different.</p>
<p>I created a connection to the system where the dates were showing &#8220;wrong&#8221;, which is an on-premise SharePoint 2010 list. With just a few clicks on commands in the ribbon of the Power Query editor, I specified that I wanted data after 1-Dec 2016, and divided the data for date and time into different columns.</p>
<p>With that data in my spreadsheet, I created an XY Scatter chart with the dates on the X axis and the time on the Y axis.</p>
<p>Our business is 24/7, but I know that most of our events are during the day, so I expected a pattern of data points between 6 am and 6 pm. And sure enough, that is what I saw when I filtered the data for December:</p>
<p><img loading="lazy" data-attachment-id="1142" data-permalink="https://teylyn.com/2017/04/19/squinting-data-for-troubleshooting-with-power-query-and-an-excel-chart/eventdatapatternnormal/" data-orig-file="https://teylyn.com/wp-content/uploads/2017/04/eventdatapatternnormal.png" data-orig-size="660,360" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="eventDataPatternNormal" data-image-description="" data-image-caption="" data-medium-file="https://teylyn.com/wp-content/uploads/2017/04/eventdatapatternnormal.png?w=300" data-large-file="https://teylyn.com/wp-content/uploads/2017/04/eventdatapatternnormal.png?w=660" class="alignnone size-full wp-image-1142" src="https://teylyn.com/wp-content/uploads/2017/04/eventdatapatternnormal.png" alt="eventDataPatternNormal" width="660" height="360" srcset="https://teylyn.com/wp-content/uploads/2017/04/eventdatapatternnormal.png 660w, https://teylyn.com/wp-content/uploads/2017/04/eventdatapatternnormal.png?w=150&amp;h=82 150w, https://teylyn.com/wp-content/uploads/2017/04/eventdatapatternnormal.png?w=300&amp;h=164 300w" sizes="(max-width: 660px) 100vw, 660px" /></p>
<p>That looked pretty normal. Each event is a dot. Most events happen during the day.</p>
<p>I changed the filter to January, then to February. The pattern stayed the same. Then I changed the filter to March and saw this:</p>
<p><img loading="lazy" data-attachment-id="1147" data-permalink="https://teylyn.com/2017/04/19/squinting-data-for-troubleshooting-with-power-query-and-an-excel-chart/eventdatapattern/" data-orig-file="https://teylyn.com/wp-content/uploads/2017/04/eventdatapattern.png" data-orig-size="660,360" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="eventDataPattern" data-image-description="" data-image-caption="" data-medium-file="https://teylyn.com/wp-content/uploads/2017/04/eventdatapattern.png?w=300" data-large-file="https://teylyn.com/wp-content/uploads/2017/04/eventdatapattern.png?w=660" class="alignnone size-full wp-image-1147" src="https://teylyn.com/wp-content/uploads/2017/04/eventdatapattern.png" alt="eventDataPattern" width="660" height="360" srcset="https://teylyn.com/wp-content/uploads/2017/04/eventdatapattern.png 660w, https://teylyn.com/wp-content/uploads/2017/04/eventdatapattern.png?w=150&amp;h=82 150w, https://teylyn.com/wp-content/uploads/2017/04/eventdatapattern.png?w=300&amp;h=164 300w" sizes="(max-width: 660px) 100vw, 660px" /></p>
<p>Gotcha! The pattern changed after 15-March.</p>
<p>Now we know WHEN the change happened and we can consult our change management system to find out more about the exact changes that were performed on our systems that day and take steps to fix the problem.</p>
<p>That&#8217;s what I call &#8220;data squinting&#8221;.</p>
<p>Sometimes you don&#8217;t need a perfect chart, as long as you can identify a pattern by just glancing sideways at the data.</p>
<p>Setting up the data with Power Query was a breeze.</p>
<p>Before Power Query, I would have had to create a view in SharePoint first, with all the trouble you have when a list has more than 5,000 items. Then, after exporting the view to Excel, I&#8217;d have to use Excel formulas to split date and time into two columns. With that many data points, I&#8217;d be looking at some calculation time.</p>
<p>With Power Query, I can quickly set up my filter parameters by clicking a few commands, then split out date and time into different columns and load the query.</p>
<p>Then set up a scatter chart and off we go data squinting.</p>
<p>Have you used Power Query for a quick ad-hoc analysis like that? Let me know what you found.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://teylyn.com/2017/04/19/squinting-data-for-troubleshooting-with-power-query-and-an-excel-chart/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1095</post-id>
		<media:thumbnail url="https://teylyn.com/wp-content/uploads/2017/04/featureeventdatapattern.png" />
		<media:content url="https://teylyn.com/wp-content/uploads/2017/04/featureeventdatapattern.png" medium="image">
			<media:title type="html">featureeventDataPattern</media:title>
		</media:content>

		<media:content url="https://1.gravatar.com/avatar/42a31893acf45c0ad0784e8f4c82d4f1299aa62c5173714238cdec5e95c43655?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">akismet-16a73f02bfb0768bed345de389c7e094</media:title>
		</media:content>

		<media:content url="https://teylyn.com/wp-content/uploads/2017/04/eventdatapatternnormal.png" medium="image">
			<media:title type="html">eventDataPatternNormal</media:title>
		</media:content>

		<media:content url="https://teylyn.com/wp-content/uploads/2017/04/eventdatapattern.png" medium="image">
			<media:title type="html">eventDataPattern</media:title>
		</media:content>
	</item>
		<item>
		<title>Speaking at Unlock Excel</title>
		<link>https://teylyn.com/2017/03/21/unlock-excel/</link>
					<comments>https://teylyn.com/2017/03/21/unlock-excel/#respond</comments>
		
		<dc:creator><![CDATA[teylyn]]></dc:creator>
		<pubDate>Mon, 20 Mar 2017 21:36:18 +0000</pubDate>
				<category><![CDATA[Excel]]></category>
		<guid isPermaLink="false">http://teylyn.com/?p=1082</guid>

					<description><![CDATA[I&#8217;m excited to announce that I will be sharing my favourite Excel tips at CPA Australia&#8217;s newest conference, Unlock Excel, happening in Melbourne, Brisbane, Sydney and Auckland this May. In conjunction with SumProduct, Unlock Excel is bringing together myself and six of my fellow Microsoft Excel Most Value Professionals (MVPs) to unlock the secrets, new spreadsheet features [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" data-attachment-id="1087" data-permalink="https://teylyn.com/2017/03/21/unlock-excel/cpah2246_unlock_excel_edm1_header_v2_600x250_01/" data-orig-file="https://teylyn.com/wp-content/uploads/2017/03/cpah2246_unlock_excel_edm1_header_v2_600x250_01.jpeg" data-orig-size="600,250" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="CPAH2246_Unlock_Excel_eDM1_Header_V2_600x250_01" data-image-description="" data-image-caption="" data-medium-file="https://teylyn.com/wp-content/uploads/2017/03/cpah2246_unlock_excel_edm1_header_v2_600x250_01.jpeg?w=300" data-large-file="https://teylyn.com/wp-content/uploads/2017/03/cpah2246_unlock_excel_edm1_header_v2_600x250_01.jpeg?w=600" class=" size-full wp-image-1087 alignnone" src="https://teylyn.com/wp-content/uploads/2017/03/cpah2246_unlock_excel_edm1_header_v2_600x250_01.jpeg" alt="CPAH2246_Unlock_Excel_eDM1_Header_V2_600x250_01" width="600" height="250" srcset="https://teylyn.com/wp-content/uploads/2017/03/cpah2246_unlock_excel_edm1_header_v2_600x250_01.jpeg 600w, https://teylyn.com/wp-content/uploads/2017/03/cpah2246_unlock_excel_edm1_header_v2_600x250_01.jpeg?w=150&amp;h=63 150w, https://teylyn.com/wp-content/uploads/2017/03/cpah2246_unlock_excel_edm1_header_v2_600x250_01.jpeg?w=300&amp;h=125 300w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>I&#8217;m excited to announce that I will be sharing my favourite Excel tips at CPA Australia&#8217;s newest conference, Unlock Excel, happening in <a title="Melbourne" href="http://click.e.cpaaustralia.com.au/?qs=0dbd4f60d4452666d84f0cc3cc1d8b7c2993a5e996c18f88e83603d06c289af0c28aaeb34ea0a0673368888ad3c61e60fa50619fd90d81b1">Melbourne</a>, <a title="Brisbane" href="http://click.e.cpaaustralia.com.au/?qs=0dbd4f60d4452666e7d7941631c1cf280685001e3c14fa32f51c0d97107b81a5627b5c2b96ffa97e130a5c3f339555fddb4050d9ad187a96">Brisbane</a>, <a title="Sydney" href="http://click.e.cpaaustralia.com.au/?qs=0dbd4f60d44526667c247069c7bb7cffd5d99a0b3493f0b3d425238222e3ff3744f0e4c00e86487250636e703aba55a060ac8927447bf9a4">Sydney</a> and <a title="Auckland" href="http://click.e.cpaaustralia.com.au/?qs=0dbd4f60d4452666bb245810a09e2b14a6bdb7318e92a91eaf3bd54a32e07f0311d79d6b6832492c66a6dd605c2e4b523e6746abe5e92d1d">Auckland</a> this May.</p>
<p>In conjunction with SumProduct, Unlock Excel is bringing together myself and six of my fellow Microsoft Excel Most Value Professionals (MVPs) to unlock the secrets, new spreadsheet features and tips on how to become an Excel master over two captivating days.</p>
<p>There will also be an opportunity for you to get the answers to your most challenging problems direct from the Microsoft&#8217;s Excel developers and to hear what the next version of Excel will include!</p>
<p><a title="Tickets on sale now." href="http://click.e.cpaaustralia.com.au/?qs=0dbd4f60d4452666a7b0e5203a4c2b74db29b99f85991db24ff42981aae7ad85e3bf0d4fd4b7b17e95718fb7f30f0a9bb9541b3c496571a5">Tickets on sale now.</a> See you at Unlock Excel.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://teylyn.com/2017/03/21/unlock-excel/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1082</post-id>
		<media:thumbnail url="https://teylyn.com/wp-content/uploads/2017/03/cpah2246_unlock_excel_edm1_header_v2_600x250_01.jpeg" />
		<media:content url="https://teylyn.com/wp-content/uploads/2017/03/cpah2246_unlock_excel_edm1_header_v2_600x250_01.jpeg" medium="image">
			<media:title type="html">CPAH2246_Unlock_Excel_eDM1_Header_V2_600x250_01</media:title>
		</media:content>

		<media:content url="https://1.gravatar.com/avatar/42a31893acf45c0ad0784e8f4c82d4f1299aa62c5173714238cdec5e95c43655?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">akismet-16a73f02bfb0768bed345de389c7e094</media:title>
		</media:content>
	</item>
	</channel>
</rss>
