<?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/"
	>

<channel>
	<title>Glen Gilchrist</title>
	<atom:link href="http://www.glengilchrist.co.uk/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.glengilchrist.co.uk</link>
	<description>Splendiferous Excel</description>
	<lastBuildDate>Tue, 18 Jun 2013 14:15:50 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Inserting a webcam picture into Excel</title>
		<link>http://www.glengilchrist.co.uk/inserting-a-webcam-picture-into-excel/</link>
		<comments>http://www.glengilchrist.co.uk/inserting-a-webcam-picture-into-excel/#comments</comments>
		<pubDate>Tue, 18 Jun 2013 14:14:09 +0000</pubDate>
		<dc:creator>Glen Gilchrist</dc:creator>
				<category><![CDATA[Excel]]></category>
		<category><![CDATA[addcym]]></category>
		<category><![CDATA[asechat]]></category>
		<category><![CDATA[ukedchat]]></category>

		<guid isPermaLink="false">http://www.glengilchrist.co.uk/?p=2135</guid>
		<description><![CDATA[Being one to automate things where and when possible, especially if it makes my learners achieve more, by doing less &#8211; I wanted to automatically insert an image from a webcam into Excel.
I was working with a group of learners on a Science write up and we thought it would be a good idea to take an image of the ...]]></description>
				<content:encoded><![CDATA[<p>Being one to automate things where and when possible, especially if it makes my learners achieve more, by doing less &#8211; I wanted to automatically insert an image from a webcam into Excel.</p>
<p>I was working with a group of learners on a Science write up and we thought it would be a good idea to take an image of the practical set up and plonk into into Excel. &nbsp;This would aid our write up, or for some, replace a long winded explanation.</p>
<p>Excel doesn&#8217;t have a naive &#8220;insert image from webcam&#8221; button, so we had to build one.</p>
<p style="text-align: center;"><a href="http://www.glengilchrist.co.uk/wp-content/uploads/2013/06/insert-image.xlsm">Download Insert WebCam into Excel Workbook</a></p>
<p><strong>Inserting a webcam image into Excel</strong></p>
<p style="text-align: center;"><a href="http://www.glengilchrist.co.uk/wp-content/uploads/2013/06/WebCam-to-Excel.gif"><img class="aligncenter size-full wp-image-2136" style="border: 0px;" alt="Insert WebCam image into Excel" src="http://www.glengilchrist.co.uk/wp-content/uploads/2013/06/WebCam-to-Excel.gif" width="440" height="268" /></a></p>
<p style="text-align: center;">(The quality of the image captured is 640&#215;480 at the camera resolution &#8211; this looks pixelated due to the compression to animated GIF)</p>
<p>An extensive search on Google discovered that this is not a unique question, but the solutions are few and far between. &nbsp;Eventually I happened upon the use of AVICAP32.DLL (only in 32 bit Windows &#8211; I&#8217;m on Windows 8 and it works fine. &nbsp;This should work in all Windows XP+ I believe).</p>
<p>The code:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="vb.net"><div class="devcodeoverflow"><ol><li><span style="color: #0000FF; font-weight: bold;">Option</span> Explicit</li><li>&nbsp;</li><li><span style="color: #0000FF; font-weight: bold;">Const</span> WM_CAP <span style="color: #0000FF; font-weight: bold;">As</span> <span style="color: #6a5acd;">Long</span> <span style="color: #000000;">=</span> <span style="color: #000000;">&amp;</span>H400</li><li><span style="color: #0000FF; font-weight: bold;">Const</span> WM_CAP_DRIVER_CONNECT <span style="color: #0000FF; font-weight: bold;">As</span> <span style="color: #6a5acd;">Long</span> <span style="color: #000000;">=</span> WM_CAP <span style="color: #000000;">+</span> <span style="color: #a52a2a; back-color: #fffacd;">10</span></li><li><span style="color: #0000FF; font-weight: bold;">Const</span> WM_CAP_DRIVER_DISCONNECT <span style="color: #0000FF; font-weight: bold;">As</span> <span style="color: #6a5acd;">Long</span> <span style="color: #000000;">=</span> WM_CAP <span style="color: #000000;">+</span> <span style="color: #a52a2a; back-color: #fffacd;">11</span></li><li><span style="color: #0000FF; font-weight: bold;">Const</span> WM_CAP_EDIT_COPY <span style="color: #0000FF; font-weight: bold;">As</span> <span style="color: #6a5acd;">Long</span> <span style="color: #000000;">=</span> WM_CAP <span style="color: #000000;">+</span> <span style="color: #a52a2a; back-color: #fffacd;">30</span></li><li><span style="color: #0000FF; font-weight: bold;">Const</span> WS_CHILD <span style="color: #0000FF; font-weight: bold;">As</span> <span style="color: #6a5acd;">Long</span> <span style="color: #000000;">=</span> <span style="color: #000000;">&amp;</span>H40000000</li><li><span style="color: #0000FF; font-weight: bold;">Const</span> WS_VISIBLE <span style="color: #0000FF; font-weight: bold;">As</span> <span style="color: #6a5acd;">Long</span> <span style="color: #000000;">=</span> <span style="color: #000000;">&amp;</span>H10000000</li><li>&nbsp;</li><li><span style="color: #0000FF; font-weight: bold;">Declare</span> <span style="color: #0000FF; font-weight: bold;">Function</span> SendMessage <span style="color: #0000FF; font-weight: bold;">Lib</span> <span style="color: #a52a2a; back-color: #fffacd;">&quot;User32&quot;</span> <span style="color: #0000FF; font-weight: bold;">Alias</span> <span style="color: #a52a2a; back-color: #fffacd;">&quot;SendMessageA&quot;</span> <span style="color: #000000;">&#40;</span><span style="color: #0000FF; font-weight: bold;">ByVal</span> hwnd <span style="color: #0000FF; font-weight: bold;">As</span> <span style="color: #6a5acd;">Long</span>, <span style="color: #0000FF; font-weight: bold;">ByVal</span> wMsg <span style="color: #0000FF; font-weight: bold;">As</span> <span style="color: #6a5acd;">Long</span>, <span style="color: #0000FF; font-weight: bold;">ByVal</span> wParam <span style="color: #0000FF; font-weight: bold;">As</span> <span style="color: #6a5acd;">Long</span>, lParam <span style="color: #0000FF; font-weight: bold;">As</span> Any<span style="color: #000000;">&#41;</span> <span style="color: #0000FF; font-weight: bold;">As</span> <span style="color: #6a5acd;">Long</span></li><li>&nbsp;</li><li>&nbsp;</li><li><span style="color: #0000FF; font-weight: bold;">Declare</span> <span style="color: #0000FF; font-weight: bold;">Function</span> DestroyWindow <span style="color: #0000FF; font-weight: bold;">Lib</span> <span style="color: #a52a2a; back-color: #fffacd;">&quot;User32&quot;</span> <span style="color: #000000;">&#40;</span><span style="color: #0000FF; font-weight: bold;">ByVal</span> hndw <span style="color: #0000FF; font-weight: bold;">As</span> <span style="color: #6a5acd;">Long</span><span style="color: #000000;">&#41;</span> <span style="color: #0000FF; font-weight: bold;">As</span> <span style="color: #6a5acd;">Boolean</span></li><li>&nbsp;</li><li><span style="color: #0000FF; font-weight: bold;">Declare</span> <span style="color: #0000FF; font-weight: bold;">Function</span> capCreateCaptureWindowA <span style="color: #0000FF; font-weight: bold;">Lib</span> <span style="color: #a52a2a; back-color: #fffacd;">&quot;avicap32.dll&quot;</span> <span style="color: #000000;">&#40;</span><span style="color: #0000FF; font-weight: bold;">ByVal</span> lpszWindowName <span style="color: #0000FF; font-weight: bold;">As</span> <span style="color: #6a5acd;">String</span>, <span style="color: #0000FF; font-weight: bold;">ByVal</span> dwStyle <span style="color: #0000FF; font-weight: bold;">As</span> <span style="color: #6a5acd;">Long</span>, <span style="color: #0000FF; font-weight: bold;">ByVal</span> x <span style="color: #0000FF; font-weight: bold;">As</span> <span style="color: #6a5acd;">Long</span>, <span style="color: #0000FF; font-weight: bold;">ByVal</span> y <span style="color: #0000FF; font-weight: bold;">As</span> <span style="color: #6a5acd;">Long</span>, <span style="color: #0000FF; font-weight: bold;">ByVal</span> nWidth <span style="color: #0000FF; font-weight: bold;">As</span> <span style="color: #6a5acd;">Long</span>, <span style="color: #0000FF; font-weight: bold;">ByVal</span> nHeight <span style="color: #0000FF; font-weight: bold;">As</span> <span style="color: #6a5acd;">Integer</span>, <span style="color: #0000FF; font-weight: bold;">ByVal</span> hWndParent <span style="color: #0000FF; font-weight: bold;">As</span> <span style="color: #6a5acd;">Long</span>, <span style="color: #0000FF; font-weight: bold;">ByVal</span> nID <span style="color: #0000FF; font-weight: bold;">As</span> <span style="color: #6a5acd;">Long</span><span style="color: #000000;">&#41;</span> <span style="color: #0000FF; font-weight: bold;">As</span> <span style="color: #6a5acd;">Long</span></li><li>&nbsp;</li><li>&nbsp;</li><li><span style="color: #0000FF; font-weight: bold;">Declare</span> <span style="color: #0000FF; font-weight: bold;">Function</span> capGetDriverDescriptionA <span style="color: #0000FF; font-weight: bold;">Lib</span> <span style="color: #a52a2a; back-color: #fffacd;">&quot;avicap32.dll&quot;</span> <span style="color: #000000;">&#40;</span><span style="color: #0000FF; font-weight: bold;">ByVal</span> wDriver <span style="color: #0000FF; font-weight: bold;">As</span> <span style="color: #6a5acd;">Integer</span>, <span style="color: #0000FF; font-weight: bold;">ByVal</span> lpszName <span style="color: #0000FF; font-weight: bold;">As</span> <span style="color: #6a5acd;">String</span>, <span style="color: #0000FF; font-weight: bold;">ByVal</span> cbName <span style="color: #0000FF; font-weight: bold;">As</span> <span style="color: #6a5acd;">Long</span>, <span style="color: #0000FF; font-weight: bold;">ByVal</span> lpszVer <span style="color: #0000FF; font-weight: bold;">As</span> <span style="color: #6a5acd;">String</span>, <span style="color: #0000FF; font-weight: bold;">ByVal</span> cbVer <span style="color: #0000FF; font-weight: bold;">As</span> <span style="color: #6a5acd;">Long</span><span style="color: #000000;">&#41;</span> <span style="color: #0000FF; font-weight: bold;">As</span> <span style="color: #6a5acd;">Boolean</span></li><li>&nbsp;</li><li><span style="color: #0000FF; font-weight: bold;">Declare</span> <span style="color: #0000FF; font-weight: bold;">Function</span> GetDesktopWindow <span style="color: #0000FF; font-weight: bold;">Lib</span> <span style="color: #a52a2a; back-color: #fffacd;">&quot;User32&quot;</span> <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #0000FF; font-weight: bold;">As</span> <span style="color: #6a5acd;">Long</span></li><li>&nbsp;</li><li><span style="color: #0000FF; font-weight: bold;">Sub</span> WebCamClip<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span></li><li>&nbsp;</li><li><span style="color: #0000FF; font-weight: bold;">Dim</span> strName <span style="color: #0000FF; font-weight: bold;">As</span> <span style="color: #6a5acd;">String</span></li><li><span style="color: #0000FF; font-weight: bold;">Dim</span> strVer <span style="color: #0000FF; font-weight: bold;">As</span> <span style="color: #6a5acd;">String</span></li><li><span style="color: #0000FF; font-weight: bold;">Dim</span> hwnd <span style="color: #0000FF; font-weight: bold;">As</span> <span style="color: #6a5acd;">Long</span></li><li><span style="color: #0000FF; font-weight: bold;">Dim</span> iDevice <span style="color: #0000FF; font-weight: bold;">As</span> <span style="color: #6a5acd;">Long</span></li><li>&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;iDevice <span style="color: #000000;">=</span> <span style="color: #a52a2a; back-color: #fffacd;">0</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;strName <span style="color: #000000;">=</span> <span style="color: #000066;">Space</span><span style="color: #000000;">&#40;</span><span style="color: #a52a2a; back-color: #fffacd;">100</span><span style="color: #000000;">&#41;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;strVer <span style="color: #000000;">=</span> <span style="color: #000066;">Space</span><span style="color: #000000;">&#40;</span><span style="color: #a52a2a; back-color: #fffacd;">100</span><span style="color: #000000;">&#41;</span></li><li>&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; font-weight: bold;">If</span> capGetDriverDescriptionA<span style="color: #000000;">&#40;</span>iDevice, strName, <span style="color: #a52a2a; back-color: #fffacd;">50</span>, strVer, <span style="color: #a52a2a; back-color: #fffacd;">50</span><span style="color: #000000;">&#41;</span> <span style="color: #0000FF; font-weight: bold;">Then</span></li><li>&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hwnd <span style="color: #000000;">=</span> capCreateCaptureWindowA<span style="color: #000000;">&#40;</span>iDevice, WS_CHILD, <span style="color: #a52a2a; back-color: #fffacd;">0</span>, <span style="color: #a52a2a; back-color: #fffacd;">0</span>, <span style="color: #a52a2a; back-color: #fffacd;">640</span>, <span style="color: #a52a2a; back-color: #fffacd;">480</span>, GetDesktopWindow<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>, <span style="color: #a52a2a; back-color: #fffacd;">0</span><span style="color: #000000;">&#41;</span></li><li>&nbsp;</li><li>&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; font-weight: bold;">If</span> hwnd <span style="color: #0000FF; font-weight: bold;">Then</span></li><li>&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SendMessage hwnd, WM_CAP_DRIVER_CONNECT, iDevice, <span style="color: #a52a2a; back-color: #fffacd;">0</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SendMessage hwnd, WM_CAP_EDIT_COPY, <span style="color: #a52a2a; back-color: #fffacd;">0</span>, <span style="color: #a52a2a; back-color: #fffacd;">0</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SendMessage hwnd, WM_CAP_DRIVER_DISCONNECT, iDevice, <span style="color: #a52a2a; back-color: #fffacd;">0</span></li><li>&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DestroyWindow hwnd</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; font-weight: bold;">End</span> <span style="color: #0000FF; font-weight: bold;">If</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; font-weight: bold;">End</span> <span style="color: #0000FF; font-weight: bold;">If</span></li><li>ActiveSheet<span style="color: #000000;">.</span><span style="color: #000000;">Range</span><span style="color: #000000;">&#40;</span><span style="color: #a52a2a; back-color: #fffacd;">&quot;d3&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">.</span><span style="color: #0000FF; font-weight: bold;">Select</span></li><li>&nbsp;</li><li>&nbsp;</li><li>ActiveSheet<span style="color: #000000;">.</span><span style="color: #000000;">Paste</span></li><li>Selection<span style="color: #000000;">.</span><span style="color: #000000;">ShapeRange</span><span style="color: #000000;">.</span><span style="color: #000000;">ScaleWidth</span> <span style="color: #a52a2a; back-color: #fffacd;">0.5</span>, msoFalse, msoScaleFromTopLeft</li><li>Selection<span style="color: #000000;">.</span><span style="color: #000000;">ShapeRange</span><span style="color: #000000;">.</span><span style="color: #000000;">ScaleHeight</span> <span style="color: #a52a2a; back-color: #fffacd;">0.5</span>, msoFalse, msoScaleFromTopLeft</li><li>&nbsp;</li><li><span style="color: #0000FF; font-weight: bold;">End</span> <span style="color: #0000FF; font-weight: bold;">Sub</span></li><li></li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>Insert all this code into a new module and create a button on your worksheet linked to Macro&nbsp;WebCamClip.</p>
<p>Click the button and after the Camera has come to life &#8211; your image appears inside Excel.</p>
<p><strong>Why is this useful?</strong></p>
<p>Imagine making a series of buttons linked to image boxes, where a user assembles some practical experiment &#8211; Click! Evidence. &nbsp;Takes some results, Click! Evidence. &nbsp;</p>
<p style="text-align: center;">&nbsp;<a href="http://www.glengilchrist.co.uk/wp-content/uploads/2013/06/insert-image.xlsm">Download Insert WebCam into Excel Workbook</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.glengilchrist.co.uk/inserting-a-webcam-picture-into-excel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Distance between 2 postcodes (Excel user defined function)</title>
		<link>http://www.glengilchrist.co.uk/distance-between-2-postcodes-excel-user-defined-function/</link>
		<comments>http://www.glengilchrist.co.uk/distance-between-2-postcodes-excel-user-defined-function/#comments</comments>
		<pubDate>Mon, 17 Jun 2013 14:14:56 +0000</pubDate>
		<dc:creator>Glen Gilchrist</dc:creator>
				<category><![CDATA[Excel]]></category>
		<category><![CDATA[addcym]]></category>
		<category><![CDATA[ukedchat]]></category>

		<guid isPermaLink="false">http://www.glengilchrist.co.uk/?p=2132</guid>
		<description><![CDATA[One thing I love about blogging, is when you need to re use what you&#8217;ve blogged about before, and you turn to your own blog to find the answer.
Previously I blogged about using GoogleMaps Api to create a user defined function in Excel to calculate the distance between two postcodes. You can read about that here.
Recently I&#8217;ve been working with ...]]></description>
				<content:encoded><![CDATA[<p>One thing I love about blogging, is when you need to re use what you&#8217;ve blogged about before, and you turn to your own blog to find the answer.</p>
<p>Previously I blogged about using GoogleMaps Api to create a user defined function in Excel to calculate the distance between two postcodes. You can read about that <a title="Using Excel to calculate the distance between 2 postcodes" href="http://www.glengilchrist.co.uk/distance-between-postcodes-using-excel-and-google-maps-api/" target="_blank">here</a>.</p>
<p>Recently I&#8217;ve been working with a colleague to organise a series of <a title="HwbMeets" href="http://learning.wales.gov.uk/news/events/hwbmeet-2013/?skip=1&amp;lang=en" target="_blank">HwbMeets</a>&nbsp;(TeachMeet style gatherings coordinated by the Welsh Government). &nbsp;One thing we needed was to ensure that we got the message out there to the non Twitter teachers who would find such an event useful.</p>
<p>OK, we write to and email each school in Wales letting them know about the events, but nothing beats a phone call. So we got thinking that the best way forward would be to call those closest schools to each meeting and say &#8220;Hey, you know what, this is happening 3 miles up the road next week&#8221;.</p>
<p style="text-align: center;"><a href="http://www.glengilchrist.co.uk/wp-content/uploads/2013/06/venue-distance.png"><img class="aligncenter size-large wp-image-2133" style="border: 0px;" alt="Distance between postcodes using Excel" src="http://www.glengilchrist.co.uk/wp-content/uploads/2013/06/venue-distance-700x261.png" width="700" height="261" /></a></p>
<p>And thats what the G_Distance user defined function is ideal for. &nbsp;Given the postcode of a venue, I now have a spreadsheet that calculates the distance (on the roads, not as the crow flies) from each school in Wales to that venue.</p>
<p>Now we can target those schools closest to the venues and get a feel for how far teachers are willing to travel.</p>
<p>If you want to grab a copy of my code to calculate the distance between postcodes in Excel &#8211; download it here&nbsp;<a title="Using Excel to calculate the distance between 2 postcodes" href="http://www.glengilchrist.co.uk/distance-between-postcodes-using-excel-and-google-maps-api/" target="_blank">here</a>.</p>
<p>Splendiferous.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.glengilchrist.co.uk/distance-between-2-postcodes-excel-user-defined-function/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rolling dice in Excel &#8211; a lesson in computational thinking</title>
		<link>http://www.glengilchrist.co.uk/rolling-dice-in-excel-a-lesson-in-computational-thinking/</link>
		<comments>http://www.glengilchrist.co.uk/rolling-dice-in-excel-a-lesson-in-computational-thinking/#comments</comments>
		<pubDate>Mon, 17 Jun 2013 10:18:01 +0000</pubDate>
		<dc:creator>Glen Gilchrist</dc:creator>
				<category><![CDATA[Excel]]></category>
		<category><![CDATA[addcym]]></category>
		<category><![CDATA[ukedchat]]></category>

		<guid isPermaLink="false">http://www.glengilchrist.co.uk/?p=2123</guid>
		<description><![CDATA[Rolling dice is a random event &#8211; you have (all things being equal) the same chance of throwing a 1 as throwing a 6 &#8211; namely 1 in 6.
Dice rolling is used in school to generate random data, simulate radioactive decay or &#8220;to generate data to graph&#8221;.
During a visit to a Special School recently we discussed how, during a maths ...]]></description>
				<content:encoded><![CDATA[<p>Rolling dice is a random event &#8211; you have (all things being equal) the same chance of throwing a 1 as throwing a 6 &#8211; namely 1 in 6.</p>
<p>Dice rolling is used in school to generate random data, simulate radioactive decay or &#8220;to generate data to graph&#8221;.</p>
<p>During a visit to a Special School recently we discussed how, during a maths lesson the learners had 1, 2 or 3 dice and were &nbsp;rolling them, adding up the scores each time and plotting a graph of the results. &nbsp;The idea to be that with 1 dice, there is no &#8220;most common score&#8221;, but with 2 dice the most common is 7 and with 3 its 10 and 11. &nbsp;The students were expected to roll the dice hundreds of times, add up the face values, enter the scores into a tally chart and then draw a histogram of the results.</p>
<p>As you can imagine it was dice wars, with the little cubes being used as missiles round the class.</p>
<p>So, a different way was needed and splendiferous Excel to the rescue.</p>
<p><strong>Consider the face of a dice:</strong></p>
<p style="text-align: center;"><a href="http://www.glengilchrist.co.uk/wp-content/uploads/2013/06/dice-face1.png"><img class="aligncenter size-large wp-image-2125" style="border: 0px;" alt="Dice simulation in Excel" src="http://www.glengilchrist.co.uk/wp-content/uploads/2013/06/dice-face1-700x405.png" width="700" height="405" /></a></p>
<p style="text-align: center;"><a href="http://www.glengilchrist.co.uk/wp-content/uploads/2013/06/dice.xlsm">Download the Dice Worksheet</a></p>
<p style="text-align: left;">Thinking about the dice face logically we can build up some rules about when each &#8220;spot&#8221; is active. &nbsp;So as a class discussion we considered the rules:</p>
<ul>
<li>The indicated spot is active when the value of the dice is greater than 1</li>
<li>The next spot in the same row is never active</li>
<li>The spot in the top right corner is active when the value of the dice is 4, 5, or 6. &nbsp;Or when the value is greater than 3</li>
<li>The lefthand middle row spot is active when the value on the dice = 6</li>
<li>The center spot is active when the value on the dice =1, 3 or 5. &nbsp;Or when the value is Odd</li>
<li>The right hand middle row is active when the value on the dice = 6</li>
<li>The spot in the bottom left corner is active when the value of the dice is 4, 5, or 6. &nbsp;Or when the value is greater than 3</li>
<li>The bottom middle spot is never active</li>
<li>The right hand bottom corner is active when the value on the dice = 2,3,4,5 or 6. &nbsp;Or when the value is greater than 1</li>
</ul>
<p>Creating these rules took 30 minutes of class discussion and was a great example of cooperative learning as it took awhile for everyone to be happy with the wording of the rules AND people kept suggesting new ways of saying the same thing. &nbsp;However, no dice got thrown.</p>
<p><strong>Converting to Excel</strong></p>
<p>In Excel speak &#8211; the DOT is represented by Wingdings font, character 159. &nbsp;Which is entered into Excel as&nbsp;CHAR(159). Excel can generate random numbers &#8211; specifically between 1 and 6 for our dice with the RANDBETWEEN(1,6) formula.</p>
<p>Our statements above can be turned into a series of IF statements dependant on the value of the dice.</p>
<p>Assuming the value of the dice is stored in A1 as A1=RANDBETWEEN(1,6) &nbsp;the above statements reduce to:</p>
<ul>
<li><span style="line-height: 13px;">IF(A1&gt;1,CHAR(159),&#8221;") &#8212; If A1 is greater than 1, use CHAR(159) or else &#8220;&#8221; (nothing)</span></li>
<li>Leave blank</li>
<li>IF(A1&gt;3,CHAR(159),&#8221;") &#8212; If A1 is greater than 3, use CHAR(159) or else &#8220;&#8221; (nothing)</li>
<li>IF(A1=6,CHAR(159),&#8221;") &#8212; If A1 is equals 6, use CHAR(159) or else &#8220;&#8221; (nothing)</li>
<li>IF(ISODD(A1),CHAR(159),&#8221;") &#8212; IF A1 is ODD use CHAR(159) or&nbsp;else &#8220;&#8221; (nothing)</li>
<li>IF(A1=6,CHAR(159),&#8221;") &#8212; If A1 is equals 6, use CHAR(159) or else &#8220;&#8221; (nothing)</li>
<li>IF(A1&gt;3,CHAR(159),&#8221;") &#8212; If A1 is greater than 3, use CHAR(159) or else &#8220;&#8221; (nothing)</li>
<li>Leave blank</li>
<li>IF(A1&gt;1,CHAR(159),&#8221;") &#8212; If A1 is greater than 1, use CHAR(159) or else &#8220;&#8221; (nothing)</li>
</ul>
<p>This took about 15 minutes for the class to work through, but again, no dice thrown.</p>
<p>As the spreadsheet has a RANDBETWEEN statement in it, pressing F9 causes a recalculation and the numbers change.</p>
<p style="text-align: center;"><a href="http://www.glengilchrist.co.uk/wp-content/uploads/2013/06/dice.gif"><img class="aligncenter  wp-image-2126" style="border: 0px;" alt="Excel dice simulation" src="http://www.glengilchrist.co.uk/wp-content/uploads/2013/06/dice.gif" width="769" height="351" /></a></p>
<p><strong>Extensions</strong></p>
<p>To make 2, 3 or more dice &#8211; we just copy the code across for one dice, making sure to set up a new RANDBETWEEN for each dice (so they are different) .</p>
<p>Adding a small bit of VBA to a button, with a little loop makes the dice look like they are rolling.</p>
<p>To view my VBS code (in Excel), press ALT-F11 or access via the Developer Tab</p>
<p><strong>Conclusions</strong></p>
<ol>
<li><span style="line-height: 13px;">Real dice hurt when thrown</span></li>
<li>Focus on computational thinking instead of endlessly rolling dice</li>
<li>Learners are capable of some sophisticated thinking if you give them chance.</li>
<li>Excel is splendiferous.</li>
</ol>
<p style="text-align: center;"><a href="http://www.glengilchrist.co.uk/wp-content/uploads/2013/06/dice.xlsm">Download the Dice Worksheet</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.glengilchrist.co.uk/rolling-dice-in-excel-a-lesson-in-computational-thinking/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pimp your chart in Excel &#8211; Prospectus time again</title>
		<link>http://www.glengilchrist.co.uk/pimp-your-chart-in-excel-prospectus-time-again/</link>
		<comments>http://www.glengilchrist.co.uk/pimp-your-chart-in-excel-prospectus-time-again/#comments</comments>
		<pubDate>Sun, 16 Jun 2013 12:42:59 +0000</pubDate>
		<dc:creator>Glen Gilchrist</dc:creator>
				<category><![CDATA[Excel]]></category>
		<category><![CDATA[addcym]]></category>
		<category><![CDATA[asechat]]></category>
		<category><![CDATA[ukedchat]]></category>

		<guid isPermaLink="false">http://www.glengilchrist.co.uk/?p=2110</guid>
		<description><![CDATA[Before you read on, this is not a heavy post about the merits / demerits of data visualisation and how to extract the most meaning from data &#8211; it&#8217;s about sexing up your graphs in time for open days, transition evenings and for the annual &#8220;create a good message&#8221; fest that is the preparation of the prospectus.
So, in the spirit ...]]></description>
				<content:encoded><![CDATA[<p>Before you read on, this is not a heavy post about the merits / demerits of data visualisation and how to extract the most meaning from data &#8211; it&#8217;s about sexing up your graphs in time for open days, transition evenings and for the annual &#8220;create a good message&#8221; fest that is the preparation of the prospectus.</p>
<p>So, in the spirit of shameless marketing and eye candy, we are going to create this chart:</p>
<p>&nbsp;</p>
<p style="text-align: center;"><a href="http://www.glengilchrist.co.uk/wp-content/uploads/2013/06/Image_chart.jpg"><img class="aligncenter size-large wp-image-2111" style="border: 0px;" alt="Science GCSE Results" src="http://www.glengilchrist.co.uk/wp-content/uploads/2013/06/Image_chart-700x467.jpg" width="700" height="467" /></a></p>
<p style="text-align: center;">&nbsp;</p>
<p style="text-align: left;">This chart has the following &#8220;features&#8221;:</p>
<ul>
<li><span style="line-height: 13px;">The bars are filled with an image related to the content of the chart</span></li>
<li>There are no axes &#8211; instead the category data (2004, 2005 etc is added inside the bars as a label) and the y-axis being replaced with a data label inside each bar.</li>
</ul>
<p>&nbsp;</p>
<p>Whilst not terribly complex, the chart does need some prior planning.</p>
<p>&nbsp;</p>
<p><strong>Create data in Excel:</strong></p>
<p style="text-align: center;"><a href="http://www.glengilchrist.co.uk/wp-content/uploads/2013/06/data_image1.jpg"><img class="aligncenter size-full wp-image-2113" style="border: 0px;" alt="data_image" src="http://www.glengilchrist.co.uk/wp-content/uploads/2013/06/data_image1.jpg" width="373" height="285" /></a></p>
<p style="text-align: center;">&nbsp;</p>
<p style="text-align: center;">&nbsp;</p>
<ul>
<li><span style="line-height: 13px;">It&#8217;s important that you don&#8217;t label the Year column &#8211; leave it blank,</span></li>
<li>The &#8220;Difference&#8221; column is the difference from 100 for each of the data points. &nbsp;So 100-44 = 56 etc. &nbsp;</li>
<li>The Dummy value is a repeat of the actual data (more on that later).</li>
</ul>
<p>&nbsp;</p>
<p style="text-align: left;"><strong>Create a &#8220;stacked bar chart&#8221;:</strong></p>
<p style="text-align: left;"><strong></strong>Highlight everything in the table above and Insert a stacked bar chart (NOT a 100% stacked). &nbsp;Use all the defaults. &nbsp;You will end up with:</p>
<p style="text-align: center;"><a href="http://www.glengilchrist.co.uk/wp-content/uploads/2013/06/stacked-bar-chart.jpg"><img class="aligncenter size-full wp-image-2114" style="border: 0px;" alt="stacked bar chart" src="http://www.glengilchrist.co.uk/wp-content/uploads/2013/06/stacked-bar-chart.jpg" width="613" height="385" /></a></p>
<p style="text-align: center;">&nbsp;</p>
<p style="text-align: left;">&nbsp;</p>
<p style="text-align: left;"><strong>Remove the LEGEND and CHART TITLE</strong></p>
<p style="text-align: left;">&nbsp;</p>
<p style="text-align: left;"><strong>Insert Image into Chart Plot Area:</strong></p>
<p style="text-align: center;">&nbsp;</p>
<p style="text-align: center;">&nbsp;</p>
<p style="text-align: center;"><a href="http://www.glengilchrist.co.uk/wp-content/uploads/2013/06/plot-area-fill1.jpg"><img class="aligncenter size-large wp-image-2116" style="border: 0px;" alt="plot area fill" src="http://www.glengilchrist.co.uk/wp-content/uploads/2013/06/plot-area-fill1-700x404.jpg" width="700" height="404" /></a></p>
<p style="text-align: center;">&nbsp;</p>
<p style="text-align: left;">Not all images work &#8211; and some just make everything confusing. &nbsp;Choose carefully.</p>
<p style="text-align: left;">&nbsp;</p>
<p style="text-align: left;"><strong>Format Series</strong></p>
<ul>
<li>Select the 2 A*- C Series and reduce the Gap Width to 0% (this will push all the bars together</li>
<li>Select the 2 A*- C Series and set the series fill to &#8220;No Fill&#8221; (this will let the image show through)</li>
<li>Select the Difference Series and set the series fill to &#8220;Solid&#8221; and 50% Grey</li>
<li>Select the Dummy Series and change the Series Options to plot on a &#8220;Secondary Axis&#8221;</li>
<li>Select the Dummy Series and set the series fill to &#8220;No Fill&#8221;</li>
<li>Select the Primary Axis and set the Maximum to 100. &nbsp;Delete the axis</li>
<li>Select the Secondary Axis and set the Maximum to 100. Delete the axis</li>
<li>Select the Category Axis (the dates) and delete it</li>
</ul>
<p>You should have something that looks like this:</p>
<p style="text-align: center;"><a href="http://www.glengilchrist.co.uk/wp-content/uploads/2013/06/nearly-finished.jpg"><img class="aligncenter size-full wp-image-2117" style="border: 0px;" alt="nearly finished" src="http://www.glengilchrist.co.uk/wp-content/uploads/2013/06/nearly-finished.jpg" width="614" height="386" /></a></p>
<p style="text-align: center;">&nbsp;</p>
<p style="text-align: left;"><strong>Tidying up:</strong></p>
<ul>
<li>Select the Dummy Series and add Data Labels. &nbsp;Set the Data Label Position to &#8220;Inside Edge&#8221; (This will put the data label inside the bars at the TOP of the bar</li>
<li>Select the 2 A*- C Series and add Data Labels. &nbsp;Set the Label Options to Label Contains Category Name and Positon to Inside Base (This will put the category name at the bottom of the bar)</li>
<li>Add a Solid 3pt border to the 2 A* &#8211; C Series</li>
<li>Remove the &#8220;Major Gridlines&#8221; on the Y-Axis</li>
<li>Add a Solid 2pt border to the Plot Area of the Chart</li>
<li>Adjust the size and coloration of the fonts for the data labels as needed</li>
<li>Add chart Title (if needed)</li>
</ul>
<p>&nbsp;</p>
<p><strong>You will end up with:</strong></p>
<p style="text-align: center;"><a href="http://www.glengilchrist.co.uk/wp-content/uploads/2013/06/finished-chart1.jpg"><img class="aligncenter size-large wp-image-2119" style="border: 0px;" alt="Excel Multiple Data Labels on Bar Chart" src="http://www.glengilchrist.co.uk/wp-content/uploads/2013/06/finished-chart1-700x468.jpg" width="700" height="468" /></a></p>
<p style="text-align: center;">&nbsp;</p>
<p style="text-align: center;">&nbsp;</p>
<p style="text-align: left;"><strong>Questions:</strong></p>
<ol>
<li><span style="line-height: 13px;"><strong></strong>Is this more meaningful than a &#8220;plain&#8221; chart &#8211; err No.<br />
</span></li>
<li>Does it get your message across better &#8211; well that depends on what your purpose is</li>
<li>Does it look good &#8211; that&#8217;s for you to decide.</li>
<li>Will it look good in a prospectus &#8211; again, as above.</li>
</ol>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.glengilchrist.co.uk/pimp-your-chart-in-excel-prospectus-time-again/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Using Google Url Shrinker inside Excel</title>
		<link>http://www.glengilchrist.co.uk/using-google-url-shrinker-inside-excel/</link>
		<comments>http://www.glengilchrist.co.uk/using-google-url-shrinker-inside-excel/#comments</comments>
		<pubDate>Tue, 23 Apr 2013 10:20:25 +0000</pubDate>
		<dc:creator>Glen Gilchrist</dc:creator>
				<category><![CDATA[Excel]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[ukedchat]]></category>

		<guid isPermaLink="false">http://www.glengilchrist.co.uk/?p=2096</guid>
		<description><![CDATA[The project I&#8217;m currently working on requires me to collate web links into a regular Tweet. &#160;All good &#8211; use of Excel to collate the list and liberal CONCATENATES() soon work up the Tweet + #tags.&#160;
A LEN() lets me monitor the length of the Tweet so that I don&#8217;t go over 140 characters in total.
Where I run into a workflow ...]]></description>
				<content:encoded><![CDATA[<p>The project I&#8217;m currently working on requires me to collate web links into a regular Tweet. &nbsp;All good &#8211; use of Excel to collate the list and liberal CONCATENATES() soon work up the Tweet + #tags.&nbsp;</p>
<p>A LEN() lets me monitor the length of the Tweet so that I don&#8217;t go over 140 characters in total.</p>
<p>Where I run into a workflow issue is with the URL itself. &nbsp;I don&#8217;t want to use the full URL as it will take precious characters from my 140 &#8211; so I use a URL shortening service such as <a title="Url shortening from Google" href="http://goo.gl/">Goo.gl</a>. But that means I need to copy, paste into Goo.gl and copy paste back into Excel. &nbsp;There must be an easier way.</p>
<p>Google lets us access the Goo.gl service via its API. &nbsp;Log into your Google account and visit:&nbsp;<a title="Google APIs" href="https://code.google.com/apis/console">https://code.google.com/apis/console</a>&nbsp; &#8211; towards the bottom, you can choose to enable the&nbsp;<strong>URL Shortener API</strong>. &nbsp;With 1,000,000 requests per day, I am sure I&#8217;ll never over do it.</p>
<p>Once enabled you need to get your API Key. &nbsp;This is unique to you, so don&#8217;t share it.</p>
<p><strong>In Excel, VBA &#8211; Insert a new Module</strong></p>
<p>Now cut and paste this code, to make a new function <strong>GetGooglURL</strong></p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="vb.net"><div class="devcodeoverflow"><ol><li><span style="color: #0000FF; font-weight: bold;">Const</span> API_KEY <span style="color: #0000FF; font-weight: bold;">As</span> <span style="color: #6a5acd;">String</span> <span style="color: #000000;">=</span> <span style="color: #a52a2a; back-color: #fffacd;">&quot;YOUR API KEY HERE&quot;</span></li><li><span style="color: #0000FF; font-weight: bold;">Const</span> BASEURL <span style="color: #0000FF; font-weight: bold;">As</span> <span style="color: #6a5acd;">String</span> <span style="color: #000000;">=</span> <span style="color: #a52a2a; back-color: #fffacd;">&quot;https://www.googleapis.com/urlshortener/v1/url&quot;</span></li><li>&nbsp;</li><li><span style="color: #0000FF; font-weight: bold;">Function</span> GetGooglURL<span style="color: #000000;">&#40;</span>url <span style="color: #0000FF; font-weight: bold;">As</span> <span style="color: #6a5acd;">String</span><span style="color: #000000;">&#41;</span> <span style="color: #0000FF; font-weight: bold;">As</span> <span style="color: #6a5acd;">String</span></li><li>&nbsp;</li><li>&nbsp;&nbsp;<span style="color: #0000FF; font-weight: bold;">Dim</span> xml <span style="color: #0000FF; font-weight: bold;">As</span> <span style="color: #6a5acd;">Object</span>&nbsp;&nbsp;<span style="color: #008000; font-style: italic;">' MSXML2.XMLHTTP60</span></li><li>&nbsp;&nbsp;<span style="color: #0000FF; font-weight: bold;">Set</span> xml <span style="color: #000000;">=</span> <span style="color: #000066;">CreateObject</span><span style="color: #000000;">&#40;</span><span style="color: #a52a2a; back-color: #fffacd;">&quot;MSXML2.XMLHTTP.6.0&quot;</span><span style="color: #000000;">&#41;</span> </li><li>&nbsp;</li><li>&nbsp;&nbsp;<span style="color: #0000FF; font-weight: bold;">If</span> xml <span style="color: #0000FF; font-weight: bold;">Is</span> <span style="color: #0000FF; font-weight: bold;">Nothing</span> <span style="color: #0000FF; font-weight: bold;">Then</span> <span style="color: #0000FF; font-weight: bold;">Exit</span> <span style="color: #0000FF; font-weight: bold;">Function</span></li><li>&nbsp;</li><li>&nbsp;&nbsp;<span style="color: #0000FF; font-weight: bold;">With</span> xml</li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000;">.</span><span style="color: #000000;">Open</span> <span style="color: #a52a2a; back-color: #fffacd;">&quot;POST&quot;</span>, BASEURL <span style="color: #000000;">&amp;</span> <span style="color: #a52a2a; back-color: #fffacd;">&quot;?key=&quot;</span> <span style="color: #000000;">&amp;</span> API_KEY, <span style="color: #0000FF; font-weight: bold;">False</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000;">.</span><span style="color: #000000;">setRequestHeader</span> <span style="color: #a52a2a; back-color: #fffacd;">&quot;Content-Type&quot;</span>, <span style="color: #a52a2a; back-color: #fffacd;">&quot;application/json&quot;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000;">.</span><span style="color: #000000;">Send</span> <span style="color: #000066;">Replace</span><span style="color: #000000;">&#40;</span><span style="color: #a52a2a; back-color: #fffacd;">&quot;{&quot;</span><span style="color: #a52a2a; back-color: #fffacd;">&quot;longUrl&quot;</span><span style="color: #a52a2a; back-color: #fffacd;">&quot;: &quot;</span><span style="color: #a52a2a; back-color: #fffacd;">&quot;http://www.google.com/&quot;</span><span style="color: #a52a2a; back-color: #fffacd;">&quot;}&quot;</span>, <span style="color: #a52a2a; back-color: #fffacd;">&quot;http://www.google.com/&quot;</span>, url<span style="color: #000000;">&#41;</span></li><li>&nbsp;&nbsp;<span style="color: #0000FF; font-weight: bold;">End</span> <span style="color: #0000FF; font-weight: bold;">With</span></li><li>&nbsp;</li><li>&nbsp;&nbsp;<span style="color: #0000FF; font-weight: bold;">If</span> <span style="color: #000066;">InStr</span><span style="color: #000000;">&#40;</span>xml<span style="color: #000000;">.</span><span style="color: #000000;">responseText</span>, <span style="color: #a52a2a; back-color: #fffacd;">&quot;error&quot;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">=</span> <span style="color: #a52a2a; back-color: #fffacd;">0</span> <span style="color: #0000FF; font-weight: bold;">Then</span>&nbsp;&nbsp;<span style="color: #008000; font-style: italic;">' no error occurred</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; font-style: italic;">' parse out short URL from JSON response</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;GetGooglURL <span style="color: #000000;">=</span> <span style="color: #000066;">Trim$</span><span style="color: #000000;">&#40;</span><span style="color: #000066;">Split</span><span style="color: #000000;">&#40;</span>xml<span style="color: #000000;">.</span><span style="color: #000000;">responseText</span>, <span style="color: #a52a2a; back-color: #fffacd;">&quot;&quot;</span><span style="color: #a52a2a; back-color: #fffacd;">&quot;&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#40;</span><span style="color: #a52a2a; back-color: #fffacd;">7</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span></li><li>&nbsp;&nbsp;<span style="color: #0000FF; font-weight: bold;">End</span> <span style="color: #0000FF; font-weight: bold;">If</span></li><li>&nbsp;</li><li><span style="color: #0000FF; font-weight: bold;">End</span> <span style="color: #0000FF; font-weight: bold;">Function</span></li><li></li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p style="text-align: center;"><a href="http://www.glengilchrist.co.uk/wp-content/uploads/2013/04/shrunkURL.png"><img class="aligncenter size-large wp-image-2097" style="border: 0px;" alt="Google URL Shrinker inside Excel" src="http://www.glengilchrist.co.uk/wp-content/uploads/2013/04/shrunkURL-700x159.png" width="700" height="159" /></a></p>
<p>Using this is simplicity itself. &nbsp;In cell B2 is the long URL you want to shorten.</p>
<p>C2=GetGooglURL(B2) &#8211; sends the long URL to Google for shortening and displays in A2 the short version.</p>
<p>Splendiferous Excel and Web Api to the rescue again.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.glengilchrist.co.uk/using-google-url-shrinker-inside-excel/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Consuming XML with Excel 2013 Webservices</title>
		<link>http://www.glengilchrist.co.uk/consuming-xml-with-excel-2013-webservices/</link>
		<comments>http://www.glengilchrist.co.uk/consuming-xml-with-excel-2013-webservices/#comments</comments>
		<pubDate>Mon, 22 Apr 2013 14:51:16 +0000</pubDate>
		<dc:creator>Glen Gilchrist</dc:creator>
				<category><![CDATA[Excel]]></category>
		<category><![CDATA[ukedchat]]></category>

		<guid isPermaLink="false">http://www.glengilchrist.co.uk/?p=2092</guid>
		<description><![CDATA[Big data is the darling of newspapers at present &#8211; you know, everything we do is logged and if we could just, in some way makes sense of it all, we would: find a cure for cancer / get better ads to our mobile phones / find terrorists (delete as appropriate). &#160;One of the realities of Big Data &#8211; is ...]]></description>
				<content:encoded><![CDATA[<p>Big data is the darling of newspapers at present &#8211; you know, everything we do is logged and if we could just, in some way makes sense of it all, we would: find a cure for cancer / get better ads to our mobile phones / find terrorists (delete as appropriate). &nbsp;One of the realities of Big Data &#8211; is that it&#8217;s out there &#8211; if you know where to look you can find a data source.</p>
<p>Excel 2013 can consume that data using the built in WEBSERVICE and FILTERXML &nbsp;functions.</p>
<p>WEBSERVICE reaches out to &#8220;big data&#8221; land and pulls into Excel an XML data feed.</p>
<p>FILTERXML extracts specific pieces of information from that feed.</p>
<p>&nbsp;</p>
<p><strong>For example:</strong></p>
<p><a href="http://www.theyworkforyou.com/">http://www.theyworkforyou.com</a>&nbsp;provides details on MPs and a searchable database of who does what. &nbsp;Using their API you can extract that information yourself.</p>
<p>Register for an API Key <a title="API Key" href="http://www.theyworkforyou.com/api/" target="_blank">here </a>(An API key is a unique reference that lets you access the data. &nbsp;This is free, and it allows the site owner to track who is consuming what from their site. &nbsp;It also allows them to&nbsp;rescind&nbsp;your key, should you abuse the service).</p>
<p>Once you have your OWN API key, form a URL as follows, and replace with your own API Key:</p>
<p>&nbsp;</p>
<p><strong>http://www.theyworkforyou.com/api/getMP?key=APIKEYGOESHERE&amp;output=xml&amp;postcode=np109jn</strong></p>
<p>&nbsp;</p>
<p>This returns informantion on the MP for NP109JN:</p>
<p style="text-align: center;"><a href="http://www.glengilchrist.co.uk/wp-content/uploads/2013/04/mpxml.png"><img class="aligncenter size-full wp-image-2093" style="border: 0px;" alt="Consume XML with Excel" src="http://www.glengilchrist.co.uk/wp-content/uploads/2013/04/mpxml.png" width="506" height="388" /></a></p>
<p style="text-align: left;">This is the XML outout &#8211; it looks daunting, but its not:</p>
<p style="text-align: left;"><strong>&lt;twfy&gt;</strong> is the top level holder inside which all the data is contatined:</p>
<p style="text-align: left;"><strong>&lt;member_id&gt;</strong>4042<strong>4&lt;/member_id&gt;</strong> &nbsp;is a data element c&nbsp;containing&nbsp;the member_id for this record.</p>
<p style="text-align: left;"><strong>&lt;first_name&gt;</strong>Paul<strong>&lt;/first_name&gt;</strong> is another data element containing the first_name record</p>
<p style="text-align: left;">&nbsp;</p>
<p style="text-align: left;">As you can see each data&nbsp;element&nbsp;is surrounded by <strong>&lt;label&gt; &lt;/label&gt;</strong> , which locates the data.</p>
<p style="text-align: left;">At the end, we have <strong><!--<span class="hiddenSpellError" pre=""-->twfy&gt;</strong> which pairs up with the opening <strong>&lt;twfy&gt;.</strong></p>
<p style="text-align: left;">&nbsp;</p>
<p style="text-align: left;">Just like HTML, you can think of the&nbsp;<strong>&lt;label&gt; &lt;/label&gt;</strong> pair as turning the label on and off &#8211; so they need to be paired.</p>
<p style="text-align: left;">&nbsp;</p>
<p style="text-align: left;">Becuase the data is so structured, Excel 2013 can simply import it:</p>
<p style="text-align: left;">A1=WEBSERVICE(&#8220;http://www.theyworkforyou.com/api/getMP?key=<strong>YOUAPIKEY</strong>&amp;output=xml&amp;postcode=np109jn&#8221;)</p>
<p style="text-align: left;">will pull the XML from the URL into cell A1 (you need your <strong>API</strong> key again)</p>
<p style="text-align: left;">&nbsp;</p>
<p style="text-align: left;">To get the individual data you need to find the labels:</p>
<p style="text-align: left;">Notice towards the end of the XML screenshot above the pair <strong>&lt;full_name&gt;</strong>Paul Flynn<strong>&lt;full_name&gt;</strong>. &nbsp;To navigate through the XML tree we use:</p>
<p style="text-align: left;"><strong>//twfy/full_name.</strong></p>
<p style="text-align: left;">To get Excel to extract this, we use: &nbsp;A2=FILTERXML(A1,&#8221;//twfy/full_name&#8221;) &nbsp;&#8211; which displays in A2, Paul Flynn.</p>
<p style="text-align: left;">&nbsp;</p>
<p style="text-align: left;">Similarly, to extract any of the data, we just replace <strong>//twfy/full_name</strong> with the data element we want.</p>
<p style="text-align: left;">&nbsp;</p>
<p style="text-align: left;">So, splendiferous Excel can consume XML with ease using WEBSERICE and FILTERXML.</p>
<p style="text-align: left;">&nbsp;</p>
<p style="text-align: left;">&nbsp;</p>
<p style="text-align: left;">&nbsp;</p>
<p style="text-align: left;">&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.glengilchrist.co.uk/consuming-xml-with-excel-2013-webservices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Excel 2013 Webservice to get Latitude and Longitude for a PostCode</title>
		<link>http://www.glengilchrist.co.uk/using-excel-2013-webservice-to-get-latitude-and-longitude-for-a-postcode/</link>
		<comments>http://www.glengilchrist.co.uk/using-excel-2013-webservice-to-get-latitude-and-longitude-for-a-postcode/#comments</comments>
		<pubDate>Sat, 20 Apr 2013 10:58:20 +0000</pubDate>
		<dc:creator>Glen Gilchrist</dc:creator>
				<category><![CDATA[Excel]]></category>
		<category><![CDATA[ukedchat]]></category>

		<guid isPermaLink="false">http://www.glengilchrist.co.uk/?p=2088</guid>
		<description><![CDATA[My previous post on getting the distance between postcodes with Google Maps API and Excel, got me thinking about mapping and Excel &#8211; one thing led to another and I ended up thinking about latitude and longitude.
Google Map API has:
http://maps.googleapis.com/maps/api/geocode/xml?address=CA11BP+,+&#38;sensor=false, which returns XML for the postcode CA1 1BP. &#160;In that XML&#160;response we can find the latitude and longitude:
&#160;

One of the ...]]></description>
				<content:encoded><![CDATA[<p>My previous post on <a title="Distance between postcodes with Google Maps API" href="http://www.glengilchrist.co.uk/distance-between-postcodes-using-excel-and-google-maps-api/" target="_blank">getting the distance between postcodes</a> with Google Maps API and Excel, got me thinking about mapping and Excel &#8211; one thing led to another and I ended up thinking about latitude and longitude.</p>
<p><strong>Google Map API has:</strong></p>
<p><a href="http://maps.googleapis.com/maps/api/geocode/xml?address=CA11BP+,+&amp;sensor=false">http://maps.googleapis.com/maps/api/geocode/xml?address=CA11BP+,+&amp;sensor=false</a>, which returns XML for the postcode CA1 1BP. &nbsp;In that XML&nbsp;response we can find the latitude and longitude:</p>
<p>&nbsp;</p>
<p style="text-align: center;"><a href="http://www.glengilchrist.co.uk/wp-content/uploads/2013/04/latlong.png"><img class="aligncenter size-large wp-image-2089" style="border: 0px;" alt="Google Map API Latitude and Longitude" src="http://www.glengilchrist.co.uk/wp-content/uploads/2013/04/latlong-683x700.png" width="683" height="700" /></a></p>
<p style="text-align: left;">One of the splendiferous new features of Excel 2013 is its ability to reach out to web data services and to import XML straight into your worksheet:</p>
<p style="text-align: left;"><strong>A1=WEBSERVICE(&#8220;http://maps.googleapis.com/maps/api/geocode/xml?address=CA11BP+,+&amp;sensor=false&#8221;)</strong>,&nbsp;will reach out to the Google Maps API and import into Excel the same XML tree as previously displayed.</p>
<p style="text-align: left;">Now we need to prune the tree to find the data element we need:</p>
<p style="text-align: left;"><strong>B1=FILTERXML(A1,&#8221;//result/geometry/location/lat&#8221;)</strong>, takes the result in A1 and prunes the tree at /result/geometry/location/lat.</p>
<p style="text-align: left;">
The final /lat is the data element containing, in this case 54.8948900</p>
<p style="text-align: left;">In the same way, <strong>C1=FILTERXML(A1,&#8221;//result/geometry/location/lng&#8221;)</strong>, will return the longitude of -2.9311223.</p>
<p style="text-align: left;">&nbsp;</p>
<p style="text-align: left;"><strong>We used:</strong></p>
<p style="text-align: left;"><strong>WEBSERVICE(URL)</strong> to pull in an XML response from your input URL</p>
<p style="text-align: left;"><strong>FILTERXML(xml.xpath)</strong>, where xml is the cell containing the result of Webservice and xpath is the tree location of the data.</p>
<p style="text-align: left;">&nbsp;</p>
<p style="text-align: left;">Totally splendiferous Excel 2013 features.</p>
<p style="text-align: left;">&nbsp;</p>
<p style="text-align: left;">&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.glengilchrist.co.uk/using-excel-2013-webservice-to-get-latitude-and-longitude-for-a-postcode/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Distance between postcodes (Using Excel and Google Maps API)</title>
		<link>http://www.glengilchrist.co.uk/distance-between-postcodes-using-excel-and-google-maps-api/</link>
		<comments>http://www.glengilchrist.co.uk/distance-between-postcodes-using-excel-and-google-maps-api/#comments</comments>
		<pubDate>Sun, 07 Apr 2013 17:06:17 +0000</pubDate>
		<dc:creator>Glen Gilchrist</dc:creator>
				<category><![CDATA[Excel]]></category>
		<category><![CDATA[ukedchat]]></category>

		<guid isPermaLink="false">http://www.glengilchrist.co.uk/?p=2075</guid>
		<description><![CDATA[I&#8217;m lucky enough to be on a&#160;sabbatical from being STL Science. &#160;As a result I need to claim travelling expenses &#8211; no biggie and the electronic system that the Welsh Government has&#160;&#160;makes things quite simple. &#160;
I need to estimate the distance between two locations, so I &#160;turn to Google Maps and enter the postcodes &#8211; simple, accurate enough, and&#160;relatively quick.
But ...]]></description>
				<content:encoded><![CDATA[<p>I&#8217;m lucky enough to be on a&nbsp;sabbatical from being STL Science. &nbsp;As a result I need to claim travelling expenses &#8211; no biggie and the electronic system that the Welsh Government has&nbsp;&nbsp;makes things quite simple. &nbsp;</p>
<p>I need to estimate the distance between two locations, so I &nbsp;turn to Google Maps and enter the postcodes &#8211; simple, accurate enough, and&nbsp;relatively quick.</p>
<p>But there is another way &#8211; splendiferous Excel to the answer.</p>
<p style="text-align: center;"><a href="http://www.glengilchrist.co.uk/wp-content/uploads/2013/04/googlemapkm_mile.xlsm">Download GoogleMap Postcode distance calculator</a></p>
<p>Consider these two postcodes:</p>
<table style="width: 208px;" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="104" height="20"><strong>CF10 3NQ</strong></td>
<td width="104"><strong>GL52 5JT</strong></td>
</tr>
</tbody>
</table>
<p><strong>&nbsp;In GoogleMaps this looks like this:</strong></p>
<p style="text-align: center;"><a href="http://www.glengilchrist.co.uk/wp-content/uploads/2013/04/googlemaps.jpg"><img class="aligncenter size-large wp-image-2077" style="border: 0px;" alt="GoogleMaps" src="http://www.glengilchrist.co.uk/wp-content/uploads/2013/04/googlemaps-700x354.jpg" width="700" height="354" /></a></p>
<p style="text-align: left;">Fine &#8211; the distance between these postcodes is 71.1 miles.</p>
<p style="text-align: left;">What if I want this information into a spreadsheet?</p>
<p style="text-align: left;">GoogleMaps API allows you to query Google and extract exactly this information. &nbsp;ALT-F11 and into a new Module copy and paste this code:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="vb.net"><div class="devcodeoverflow"><ol><li><span style="color: #0000FF; font-weight: bold;">Function</span> G_DISTANCE<span style="color: #000000;">&#40;</span>Origin <span style="color: #0000FF; font-weight: bold;">As</span> <span style="color: #6a5acd;">String</span>, Destination <span style="color: #0000FF; font-weight: bold;">As</span> <span style="color: #6a5acd;">String</span><span style="color: #000000;">&#41;</span> <span style="color: #0000FF; font-weight: bold;">As</span> <span style="color: #6a5acd;">Double</span></li><li><span style="color: #008000; font-style: italic;">' Requires a reference to Microsoft XML, v6.0</span></li><li><span style="color: #008000; font-style: italic;">' Draws on&nbsp;&nbsp;http://oco-carbon.com/?p=553 </span></li><li>&nbsp;</li><li><span style="color: #0000FF; font-weight: bold;">Dim</span> myRequest <span style="color: #0000FF; font-weight: bold;">As</span> XMLHTTP60</li><li><span style="color: #0000FF; font-weight: bold;">Dim</span> myDomDoc <span style="color: #0000FF; font-weight: bold;">As</span> DOMDocument60</li><li><span style="color: #0000FF; font-weight: bold;">Dim</span> distanceNode <span style="color: #0000FF; font-weight: bold;">As</span> IXMLDOMNode</li><li>&nbsp;&nbsp;&nbsp;&nbsp;G_DISTANCE <span style="color: #000000;">=</span> <span style="color: #a52a2a; back-color: #fffacd;">0</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; font-style: italic;">' Check and clean inputs</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; font-weight: bold;">On</span> <span style="color: #0000FF; font-weight: bold;">Error</span> <span style="color: #0000FF; font-weight: bold;">GoTo</span> exitRoute</li><li>&nbsp;&nbsp;&nbsp;&nbsp;Origin <span style="color: #000000;">=</span> <span style="color: #000066;">Replace</span><span style="color: #000000;">&#40;</span>Origin, <span style="color: #a52a2a; back-color: #fffacd;">&quot; &quot;</span>, <span style="color: #a52a2a; back-color: #fffacd;">&quot;%20&quot;</span><span style="color: #000000;">&#41;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;Destination <span style="color: #000000;">=</span> <span style="color: #000066;">Replace</span><span style="color: #000000;">&#40;</span>Destination, <span style="color: #a52a2a; back-color: #fffacd;">&quot; &quot;</span>, <span style="color: #a52a2a; back-color: #fffacd;">&quot;%20&quot;</span><span style="color: #000000;">&#41;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; font-style: italic;">' Read the XML data from the Google Maps API</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; font-weight: bold;">Set</span> myRequest <span style="color: #000000;">=</span> <span style="color: #0000FF; font-weight: bold;">New</span> XMLHTTP60</li><li>&nbsp;&nbsp;&nbsp;&nbsp;myRequest<span style="color: #000000;">.</span><span style="color: #000000;">Open</span> <span style="color: #a52a2a; back-color: #fffacd;">&quot;GET&quot;</span>, <span style="color: #a52a2a; back-color: #fffacd;">&quot;http://maps.googleapis.com/maps/api/directions/xml?origin=&quot;</span> _</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000;">&amp;</span> Origin <span style="color: #000000;">&amp;</span> <span style="color: #a52a2a; back-color: #fffacd;">&quot;&amp;destination=&quot;</span> <span style="color: #000000;">&amp;</span> Destination <span style="color: #000000;">&amp;</span> <span style="color: #a52a2a; back-color: #fffacd;">&quot;&amp;sensor=false&quot;</span>, <span style="color: #0000FF; font-weight: bold;">False</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;myRequest<span style="color: #000000;">.</span><span style="color: #000000;">send</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; font-style: italic;">' Make the XML readable usign XPath</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; font-weight: bold;">Set</span> myDomDoc <span style="color: #000000;">=</span> <span style="color: #0000FF; font-weight: bold;">New</span> DOMDocument60</li><li>&nbsp;&nbsp;&nbsp;&nbsp;myDomDoc<span style="color: #000000;">.</span><span style="color: #000000;">LoadXML</span> myRequest<span style="color: #000000;">.</span><span style="color: #000000;">responseText</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; font-style: italic;">' Get the distance node value</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; font-weight: bold;">Set</span> distanceNode <span style="color: #000000;">=</span> myDomDoc<span style="color: #000000;">.</span><span style="color: #000000;">SelectSingleNode</span><span style="color: #000000;">&#40;</span><span style="color: #a52a2a; back-color: #fffacd;">&quot;//leg/distance/value&quot;</span><span style="color: #000000;">&#41;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; font-weight: bold;">If</span> <span style="color: #0000FF; font-weight: bold;">Not</span> distanceNode <span style="color: #0000FF; font-weight: bold;">Is</span> <span style="color: #0000FF; font-weight: bold;">Nothing</span> <span style="color: #0000FF; font-weight: bold;">Then</span> G_DISTANCE <span style="color: #000000;">=</span> <span style="color: #000000;">&#40;</span>distanceNode<span style="color: #000000;">.</span><span style="color: #000000;">Text</span> <span style="color: #000000;">/</span> <span style="color: #a52a2a; back-color: #fffacd;">1000</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">*</span> <span style="color: #a52a2a; back-color: #fffacd;">0.621371192</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; font-style: italic;">'the 0.621371192 converts from kilometers to miles</span></li><li>exitRoute:</li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; font-style: italic;">' Tidy up</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; font-weight: bold;">Set</span> distanceNode <span style="color: #000000;">=</span> <span style="color: #0000FF; font-weight: bold;">Nothing</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; font-weight: bold;">Set</span> myDomDoc <span style="color: #000000;">=</span> <span style="color: #0000FF; font-weight: bold;">Nothing</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; font-weight: bold;">Set</span> myRequest <span style="color: #000000;">=</span> <span style="color: #0000FF; font-weight: bold;">Nothing</span></li><li><span style="color: #0000FF; font-weight: bold;">End</span> <span style="color: #0000FF; font-weight: bold;">Function</span></li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>Before you run the code, you will need to include a reference to Microsoft XML, v6.0 in the VBA editor. &nbsp;(Tools &gt; References &gt; Microsoft XML, v6.0 )</p>
<p>The code creates a new Excel function&nbsp;<strong>G_DISTANCE</strong>(Origin,Destination).</p>
<p>In Excel C2=G_DISTANCE(A2,B2) &nbsp;returns 71.1 &#8212; the distance between these postcodes.</p>
<p style="text-align: center;"><a href="http://www.glengilchrist.co.uk/wp-content/uploads/2013/04/googleapi.png"><img class="aligncenter size-full wp-image-2078" style="border: 0px;" alt="Adding GoogleMaps API to Excel" src="http://www.glengilchrist.co.uk/wp-content/uploads/2013/04/googleapi.png" width="550" height="141" /></a></p>
<p style="text-align: left;">Now I have a quick and easy way to calculate the distance between postcodes &#8211; and the data is available straight into Excel as a formula. &nbsp;Splendiferous.</p>
<p style="text-align: center;"><a href="http://www.glengilchrist.co.uk/wp-content/uploads/2013/04/googlemapkm_mile.xlsm">Download GoogleMap Postcode distance calculator</a></p>
<p style="text-align: left;">&nbsp;</p>
<p style="text-align: left;"><strong>Correction</strong>: &nbsp;When this post went up, I commented on a bitcoin miner being installed. &nbsp;I was incorrect and should have explored the site more. &nbsp;When on the site, a bitcoin miner runs in the background, donating some of your CPU cycles to mining bitcoins. &nbsp; &nbsp;Many&nbsp;apologies&nbsp;for implying that this might have been nefarious.</p>
<p style="text-align: left;">&nbsp;</p>
<p style="text-align: left;">Original code from: &nbsp;<a href="http://oco-carbon.com/2012/03/06/google-excel-distance-function/">http://oco-carbon.com/2012/03/06/google-excel-distance-function/</a>&nbsp; modified to display miles instead of Km.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.glengilchrist.co.uk/distance-between-postcodes-using-excel-and-google-maps-api/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Non &#8220;recalculating&#8221; random numbers in Excel</title>
		<link>http://www.glengilchrist.co.uk/non-recalculating-random-numbers-in-excel/</link>
		<comments>http://www.glengilchrist.co.uk/non-recalculating-random-numbers-in-excel/#comments</comments>
		<pubDate>Sat, 06 Apr 2013 17:05:56 +0000</pubDate>
		<dc:creator>Glen Gilchrist</dc:creator>
				<category><![CDATA[Excel]]></category>
		<category><![CDATA[ukedchat]]></category>

		<guid isPermaLink="false">http://www.glengilchrist.co.uk/?p=2071</guid>
		<description><![CDATA[I&#8217;ve blogged before about using Excel to create data for learners to analyse (specifically in BTEC Science) . &#160;To create a different set of data for each learner we use the RAND() or RANDBETWEEN() &#160;functions in Excel.&#160;
One thing that these functions do is automatically recalculate -&#160;every time&#160;Excel&#160;calculates ANY cell, ALL the RAND functions update, with another random number. &#160;Literally entering ...]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve blogged before about using Excel to create data for learners to analyse (specifically in BTEC Science) . &nbsp;To create a different set of data for each learner we use the RAND() or RANDBETWEEN() &nbsp;functions in Excel.&nbsp;</p>
<p>One thing that these functions do is automatically recalculate -&nbsp;every time&nbsp;Excel&nbsp;calculates ANY cell, ALL the RAND functions update, with another random number. &nbsp;Literally entering content into a cell will cause all the RAND(s) to change. &nbsp;OK &#8211; this does what it says &#8211; creates random numbers, but that means that if you use them in a worksheet and SAVE that sheet &#8211; the version of the file that you re-open will have different numbers, as the RAND(s) will recalculate.</p>
<p>You can simulate this by pressing F9 &#8211; this forces Excel to recalculate. &nbsp;Every cell that depends on a RAND will change.</p>
<p>&nbsp;</p>
<p>What if we want to use random numbers, but for the values to be &#8220;fixed&#8221; once the data has been generated?</p>
<p style="text-align: center;"><a href="http://www.glengilchrist.co.uk/wp-content/uploads/2013/04/fixedRandom.xlsm">Download Fixed Random Numbers Worksheet</a></p>
<p><strong>2 Ways to &#8220;fix&#8221; random numbers</strong>&nbsp;</p>
<p>1) Set up the worksheet using the RANDS, then copy and paste everything back into the same place, but using the Paste-Special Values option. &nbsp; This works, but it fundamentally changes the spreadsheet as it removes the calculations and stores just numbers.</p>
<p style="text-align: center;"><a href="http://www.glengilchrist.co.uk/wp-content/uploads/2013/04/fixedrandom.png"><img class="aligncenter size-full wp-image-2072" style="border: 0px;" alt="Creating fixed random numbers in Excel" src="http://www.glengilchrist.co.uk/wp-content/uploads/2013/04/fixedrandom.png" width="688" height="464" /></a></p>
<p>2) <strong>Create a custom function.</strong></p>
<p>Create a new function as per the instructions above.</p>
<p>Now in your worksheet enter B2=MyRand() &nbsp;&#8211; Excel will insert a random number in B2, but it wont recalculate when you press F9 or enter more data.</p>
<p>Compare this to the working of A2=Rand(), which constantly updates.</p>
<p>&nbsp;</p>
<p>A splendiferous way to insert random numbers without them updating /&nbsp;changing&nbsp;all the time.</p>
<p>&nbsp;</p>
<p style="text-align: center;"><a href="http://www.glengilchrist.co.uk/wp-content/uploads/2013/04/fixedRandom.xlsm">Download Fixed Random Numbers Worksheet</a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.glengilchrist.co.uk/non-recalculating-random-numbers-in-excel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Personalised &#8220;flipped&#8221; revision</title>
		<link>http://www.glengilchrist.co.uk/personalised-flipped-revision/</link>
		<comments>http://www.glengilchrist.co.uk/personalised-flipped-revision/#comments</comments>
		<pubDate>Thu, 04 Apr 2013 12:10:52 +0000</pubDate>
		<dc:creator>Glen Gilchrist</dc:creator>
				<category><![CDATA[Education]]></category>
		<category><![CDATA[asechat]]></category>
		<category><![CDATA[ukedchat]]></category>

		<guid isPermaLink="false">http://www.glengilchrist.co.uk/?p=2065</guid>
		<description><![CDATA[I&#8217;m fortunate enough to tutor a few learners in GCSE Science -&#160;fortunate&#160;as it&#160;allows&#160;me to spend more than 2 or 3 minutes actually diagnosing learning &#8220;blocks&#8221; and it gives me the time to actually explain concepts fully. &#160;
Anyway, I am currently tutoring a young lady by the name of Sam (I asked her if I could release this post and she ...]]></description>
				<content:encoded><![CDATA[<p>I&#8217;m fortunate enough to tutor a few learners in GCSE Science -&nbsp;fortunate&nbsp;as it&nbsp;allows&nbsp;me to spend more than 2 or 3 minutes actually diagnosing learning &#8220;blocks&#8221; and it gives me the time to actually explain concepts fully. &nbsp;</p>
<p>Anyway, I am currently tutoring a young lady by the name of Sam (I asked her if I could release this post and she thought it was &#8220;sick&#8221; &#8211; which I think is good) &#8211; who asked me if I could make her some&nbsp;videos&nbsp;that she could watch to help her revise for GCSE&nbsp;Science.</p>
<p>Initially I was not sure where to go with this &#8211; as:</p>
<ol>
<li><span style="line-height: 13px;">Whilst I&#8217;ve made YouTube&nbsp;content&nbsp;before, most of it was to support my classes</span></li>
<li>Recording my voice and preparing a lesson for recording seemed like more effort than I was willing to expend (even for Sam &#8211; sorry ;-( )</li>
<li>Maybe I should just record my tutorials and let Sam listen / watch on her own time? &nbsp;(Whilst appealing, this meant that only Sam could watch them as she did not want to be in them online).</li>
</ol>
<p>However, I said I&#8217;d see what I could do.</p>
<p>So, I turned to<a href="http://xtranormal.com" target="_blank"> XtraNormal</a> &#8211; a text to video Web2.0 website (with downloadable Windows app linked to your account).</p>
<p>So, without further ado &#8211; Mr Gilchrist and Sam &#8220;do&#8221; the &#8220;Structure of the Atom&#8221;.</p>
<p style="text-align: center;"><a href="http://www.glengilchrist.co.uk/personalised-flipped-revision/"><img src="http://i.ytimg.com/vi/xelz4QXN8fQ/0.jpg" alt="YouTube Video"></a></p>
<p style="text-align: left;">Edit &#8211; one more</p>
<p style="text-align: center;"><a href="http://www.glengilchrist.co.uk/personalised-flipped-revision/"><img src="http://i.ytimg.com/vi/eMd35ewHuDE/0.jpg" alt="YouTube Video"></a></p>
<p style="text-align: left;">And more</p>
<p style="text-align: center;"><a href="http://www.glengilchrist.co.uk/personalised-flipped-revision/"><img src="http://i.ytimg.com/vi/P3oGWNgiffw/0.jpg" alt="YouTube Video"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.glengilchrist.co.uk/personalised-flipped-revision/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: enhanced

 Served from: www.glengilchrist.co.uk @ 2013-06-19 20:48:39 by W3 Total Cache -->