<?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>ProfessionalExcel.com</title>
	<atom:link href="http://www.professionalexcel.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.professionalexcel.com</link>
	<description>In the office, Excel is a way of life... not just a tool</description>
	<lastBuildDate>Fri, 30 Mar 2012 13:12:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Use VBA to test the internet connection</title>
		<link>http://www.professionalexcel.com/2012/03/use-vba-to-test-the-internet-connection/</link>
		<comments>http://www.professionalexcel.com/2012/03/use-vba-to-test-the-internet-connection/#comments</comments>
		<pubDate>Fri, 30 Mar 2012 13:12:39 +0000</pubDate>
		<dc:creator>Chris Read</dc:creator>
				<category><![CDATA[Userforms]]></category>
		<category><![CDATA[VBA]]></category>

		<guid isPermaLink="false">http://www.professionalexcel.com/?p=196</guid>
		<description><![CDATA[In some of my applications I utilise the IE web browser control to display reports, some of which request internet content (e.g. Google Chart API and Google Maps API). The trouble is, you can't always guarantee that the users PC has an internet connection. So, what's the best approach to the problem? Well, check the internet [...]]]></description>
			<content:encoded><![CDATA[<p>In some of my applications I utilise the IE web browser control to display reports, some of which request internet content (e.g. Google Chart API and Google Maps API).</p>
<p>The trouble is, you can't always guarantee that the users PC has an internet connection. So, what's the best approach to the problem? Well, check the internet connection using the handy bit if VBA code below!</p>

<div class="wp_syntax"><div class="code"><pre class="vb" style="font-family:monospace;"><span style="color: #E56717; font-weight: bold;">Private</span> <span style="color: #151B8D; font-weight: bold;">Declare</span> <span style="color: #E56717; font-weight: bold;">Function</span> InternetGetConnectedStateEx Lib <span style="color: #800000;">&quot;wininet.dll&quot;</span> (<span style="color: #151B8D; font-weight: bold;">ByRef</span> lpdwFlags <span style="color: #151B8D; font-weight: bold;">As</span> <span style="color: #F660AB; font-weight: bold;">Long</span>, <span style="color: #151B8D; font-weight: bold;">ByVal</span> lpszConnectionName <span style="color: #151B8D; font-weight: bold;">As</span> <span style="color: #F660AB; font-weight: bold;">String</span>, <span style="color: #151B8D; font-weight: bold;">ByVal</span> dwNameLen <span style="color: #151B8D; font-weight: bold;">As</span> <span style="color: #F660AB; font-weight: bold;">Integer</span>, <span style="color: #151B8D; font-weight: bold;">ByVal</span> dwReserved <span style="color: #151B8D; font-weight: bold;">As</span> <span style="color: #F660AB; font-weight: bold;">Long</span>) <span style="color: #151B8D; font-weight: bold;">As</span> <span style="color: #F660AB; font-weight: bold;">Long</span>
&nbsp;
<span style="color: #008000;">'Testing for internet connection
</span><span style="color: #E56717; font-weight: bold;">Public</span> <span style="color: #E56717; font-weight: bold;">Function</span> IsInternetConnected() <span style="color: #151B8D; font-weight: bold;">As</span> <span style="color: #F660AB; font-weight: bold;">Boolean</span>
&nbsp;
<span style="color: #151B8D; font-weight: bold;">Dim</span> strConnType <span style="color: #151B8D; font-weight: bold;">As</span> <span style="color: #F660AB; font-weight: bold;">String</span>
<span style="color: #151B8D; font-weight: bold;">Dim</span> lngReturnStatus <span style="color: #151B8D; font-weight: bold;">As</span> <span style="color: #F660AB; font-weight: bold;">Long</span>
&nbsp;
    IsInternetConnected = <span style="color: #00C2FF; font-weight: bold;">False</span>
    lngReturnStatus = InternetGetConnectedStateEx(lngReturnStatus, strConnType, 254, 0)
    <span style="color: #8D38C9; font-weight: bold;">If</span> lngReturnStatus = 1 <span style="color: #8D38C9; font-weight: bold;">Then</span> IsInternetConnected = <span style="color: #00C2FF; font-weight: bold;">True</span>
&nbsp;
<span style="color: #8D38C9; font-weight: bold;">End</span> <span style="color: #E56717; font-weight: bold;">Function</span></pre></div></div>

 <img src="http://www.professionalexcel.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=196" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.professionalexcel.com/2012/03/use-vba-to-test-the-internet-connection/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Matrix Lookup</title>
		<link>http://www.professionalexcel.com/2012/02/matrix-lookup/</link>
		<comments>http://www.professionalexcel.com/2012/02/matrix-lookup/#comments</comments>
		<pubDate>Wed, 29 Feb 2012 13:23:49 +0000</pubDate>
		<dc:creator>Chris Read</dc:creator>
				<category><![CDATA[Index]]></category>
		<category><![CDATA[Lookup]]></category>
		<category><![CDATA[Match]]></category>
		<category><![CDATA[Matrix]]></category>

		<guid isPermaLink="false">http://www.professionalexcel.com/?p=182</guid>
		<description><![CDATA[Okay, so I finally got around to writing another post! Must try harder in 2012. This tip was sparked by a colleague's question the other day, and since I'd recently used the technique in a risk register tool, I thought there might be many others out there wondering how best to lookup matrix values. The premise [...]]]></description>
			<content:encoded><![CDATA[<p class="mceTemp mceIEcenter" style="text-align: left;">Okay, so I finally got around to writing another post! Must try harder in 2012.</p>
<p>This tip was sparked by a colleague's question the other day, and since I'd recently used the technique in a risk register tool, I thought there might be many others out there wondering how best to lookup matrix values.</p>
<p>The premise is that you have a two dimensional matrix of values and you want to retrieve a value from the matrix, given that you know the input values for the two dimesions of the matrix.</p>
<p>So, here's your matrix.. </p>
<div id="attachment_183" class="wp-caption aligncenter" style="width: 651px"><a href="http://www.professionalexcel.com/wp-content/uploads/2012/02/Matrix-lookup-01.png"><img class="size-full wp-image-183  " title="Matrix lookup 01" src="http://www.professionalexcel.com/wp-content/uploads/2012/02/Matrix-lookup-01.png" alt="" width="641" height="168" /></a><p class="wp-caption-text">The matrix of values</p></div>
<p> and here's what your after in your results table..</p>
<div id="attachment_184" class="wp-caption aligncenter" style="width: 251px"><a href="http://www.professionalexcel.com/wp-content/uploads/2012/02/Matrix-lookup-02.png"><img class="size-full wp-image-184" title="Matrix lookup 02" src="http://www.professionalexcel.com/wp-content/uploads/2012/02/Matrix-lookup-02.png" alt="" width="241" height="85" /></a><p class="wp-caption-text">Matrix lookup results</p></div>
<p> The method uses a combination of the INDEX and MATCH functions to give:<span id="more-182"></span></p>
<p>=INDEX(MatrixRange,MATCH(RowValueLookup,RowCategories,0),MATCH(ColumnValueLookup,ColumnCategories,0))</p>
<p>You also might have the situation where you have a numerical scale that you classify with banded categories (instead of fixed categories). In this situation your matrix might look like this..</p>
<div id="attachment_185" class="wp-caption aligncenter" style="width: 651px"><a href="http://www.professionalexcel.com/wp-content/uploads/2012/02/Matrix-lookup-03.png"><img class="size-full wp-image-185" title="Matrix lookup 03" src="http://www.professionalexcel.com/wp-content/uploads/2012/02/Matrix-lookup-03.png" alt="" width="641" height="168" /></a><p class="wp-caption-text">Matrix with banded categories</p></div>
<p>For the solution to the second problem check out the attached file below. Looking at how both types of matrix lookup are implemented will explain it far better than me rabbiting on about it... i.e. I'm being lazy.</p>
 <img src="http://www.professionalexcel.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=182" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.professionalexcel.com/2012/02/matrix-lookup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scrolling Dynamic Lookup</title>
		<link>http://www.professionalexcel.com/2011/07/scrolling-dynamic-lookup/</link>
		<comments>http://www.professionalexcel.com/2011/07/scrolling-dynamic-lookup/#comments</comments>
		<pubDate>Fri, 22 Jul 2011 12:19:05 +0000</pubDate>
		<dc:creator>Chris Read</dc:creator>
				<category><![CDATA[Array Formula]]></category>
		<category><![CDATA[CSE Formula]]></category>
		<category><![CDATA[Lookup]]></category>

		<guid isPermaLink="false">http://www.professionalexcel.com/?p=157</guid>
		<description><![CDATA[So, you’ve designed a great looking report or dashboard in Excel. But, wouldn’t it be great if you could add a small section of the report where the user could scroll through a filtered set of the raw data? Well, it’s funny you should ask... Here we have some data I made earlier... a table [...]]]></description>
			<content:encoded><![CDATA[<p>So, you’ve designed a great looking report or dashboard in Excel. But, wouldn’t it be great if you could add a small section of the report where the user could scroll through a filtered set of the raw data? Well, it’s funny you should ask...</p>
<p>Here we have some data I made earlier... a table of order data and a list of orders.</p>
<div id="attachment_158" class="wp-caption aligncenter" style="width: 545px"><a href="http://www.professionalexcel.com/wp-content/uploads/2011/07/SDL_3.png"><img class="size-full wp-image-158  " title="Sample data" src="http://www.professionalexcel.com/wp-content/uploads/2011/07/SDL_3.png" alt="" width="535" height="273" /></a><p class="wp-caption-text">Sample data</p></div>
<p>What we’re aiming to do is create a magical Scrolling Dynamic Lookup window to add to our equally awesome report, like so:</p>
<div id="attachment_159" class="wp-caption aligncenter" style="width: 500px"><a href="http://www.professionalexcel.com/wp-content/uploads/2011/07/SDL_1.png"><img class="size-full wp-image-159    " title="Scrolling Dynamic Lookup" src="http://www.professionalexcel.com/wp-content/uploads/2011/07/SDL_1.png" alt="" width="490" height="130" /></a><p class="wp-caption-text">Scrolling Dynamic Lookup</p></div>
<p><span id="more-157"></span>In order to make our life that little bit easier – and to help you understand the formulas – I first created some Named Ranges, just like the ones below.</p>
<div id="attachment_160" class="wp-caption aligncenter" style="width: 474px"><a href="http://www.professionalexcel.com/wp-content/uploads/2011/07/SDL_4.png"><img class="size-full wp-image-160 " title="Creating Named Ranges" src="http://www.professionalexcel.com/wp-content/uploads/2011/07/SDL_4.png" alt="" width="464" height="324" /></a><p class="wp-caption-text">Creating Named Ranges</p></div>
<p>The next step is to create the structure for our scrolling ‘window’. This repeats the column headings from the order data table and adds an additional Item column, which the dynamic lookup formulas will reference.</p>
<div id="attachment_161" class="wp-caption aligncenter" style="width: 512px"><a href="http://www.professionalexcel.com/wp-content/uploads/2011/07/SDL_7.png"><img class="size-full wp-image-161 " title="Scrolling Dynamic Lookup structure" src="http://www.professionalexcel.com/wp-content/uploads/2011/07/SDL_7.png" alt="" width="502" height="140" /></a><p class="wp-caption-text">Scrolling Dynamic Lookup structure</p></div>
<p>In D2 we need to create a Data Validation rule that provides the drop down filter to select the particular order that will be displayed. As you can see below, this references one of the Named Ranges we already setup:</p>
<div id="attachment_162" class="wp-caption aligncenter" style="width: 412px"><a href="http://www.professionalexcel.com/wp-content/uploads/2011/07/SDL_6.png"><img class="size-full wp-image-162 " title="Data validation for filtering" src="http://www.professionalexcel.com/wp-content/uploads/2011/07/SDL_6.png" alt="" width="402" height="341" /></a><p class="wp-caption-text">Data validation for filtering</p></div>
<p>In case you’re wondering where the vertical scroll bar came from, this is a Form control that was added using the developer tab.</p>
<div id="attachment_163" class="wp-caption aligncenter" style="width: 357px"><a href="http://www.professionalexcel.com/wp-content/uploads/2011/07/SDL_5.png"><img class="size-full wp-image-163" title="Adding the vertical scrollbar" src="http://www.professionalexcel.com/wp-content/uploads/2011/07/SDL_5.png" alt="" width="347" height="238" /></a><p class="wp-caption-text">Adding the vertical scrollbar</p></div>
<p>NB: If you can’t see the developer tab, you need to turn it on by opening the <strong>Excel Options</strong> form (Office Button &gt; Excel Options). In the <strong>Popular</strong> tab you need to check <strong>Show Developer tab in the Ribbon</strong>.</p>
<p>In order to complete the setup of the vertical scrollbar, right click on the scrollbar object and select <strong>Format Control</strong>; you should now see the following form:</p>
<div id="attachment_164" class="wp-caption aligncenter" style="width: 482px"><a href="http://www.professionalexcel.com/wp-content/uploads/2011/07/SDL_2.png"><img class="size-full wp-image-164" title="Setup the scrollbar" src="http://www.professionalexcel.com/wp-content/uploads/2011/07/SDL_2.png" alt="" width="472" height="451" /></a><p class="wp-caption-text">Setup the scrollbar</p></div>
<p>The key parameter is the <strong>Cell link</strong>, which needs to refer to B4. You can also modify other parameters that will affect how the scrollbar operates. For example, I set a <strong>Maximum value</strong> of 50, but if I had any orders that had more than 54 products (50 plus the 4 rows below the first row), they wouldn’t all be displayed. To make this truly automated, the next step would be to add some VBA code to update the <strong>Maximum value </strong>based on the maximum order size, but that’s for another time.</p>
<p>Now we have the scrolling window created, all we have to do is throw in the magical Array formula in C4 and copy to all remaining cells (remembering to hold CTRL + SHIFT while we hit ENTER!):</p>
<p><span style="color: #000080;">={IFERROR(INDEX(DataTable,SMALL(IF(DataTable=$D$2,ROW(DataTable)),$B4),MATCH(C$3,DataTableHeaders,0)),"")}</span></p>
<p><strong>Some explanation...</strong></p>
<p>The MATCH function returns the column number in the order data table<br />
<span style="color: #000080;">MATCH(C$3,DataTableHeaders,0)</span></p>
<p>The SMALL function returns the column number in the order data table. This utilises the Order ID filter that we created in D2 and helps to make the formula dynamic. This is the Array part of the formula requiring CTRL+SHIFT+ENTER.<br />
<span style="color: #000080;">SMALL(IF(DataTable=$D$2,ROW(DataTable)),$B4)</span></p>
<p>The index function returns the value from the order data table using the column and row number that the SMALL and MATCH functions have returned.<br />
 <span style="color: #000080;">INDEX(DataTable,SMALL(...),MATCH(...))</span></p>
<p>Finally surrounding our INDEX function with the IFERROR function, allows us to show nothing if the INDEX function returns an error when no value exists.<br />
<span style="color: #000080;">IFERROR(INDEX(...),"")</span></p>
<p>Depending on how you need to implement this in a report, there are a number of tweaks you can perform from simple formatting, to removing unnecessary columns or increasing the number of rows in the Dynamic Scrolling Lookup.</p>
<p>Now, download and get learning!</p>
<div class="wpfilebase-attachment">
 <div class="wpfilebase-fileicon"><a href="http://www.professionalexcel.com/download/post-files/Scrolling Dynamic Lookup.xlsx" title="Download Scrolling Dynamic Lookup"><img align="middle" src="http://www.professionalexcel.com/wp-includes/images/crystal/spreadsheet.png" alt="Scrolling Dynamic Lookup" /></a></div>
 <div class="wpfilebase-rightcol">
  <div class="wpfilebase-filetitle">
   <a href="http://www.professionalexcel.com/download/post-files/Scrolling Dynamic Lookup.xlsx" title="Download Scrolling Dynamic Lookup">Scrolling Dynamic Lookup</a><br />
   Scrolling Dynamic Lookup.xlsx<br />
   Version: Excel 2007<br />
   
  </div>
  <div class="wpfilebase-filedetails" id="wpfilebase-filedetails1" style="display: none;">
  <p>Excel 2007 example of a Scrolling Dynamic Lookup.</p>
  <table border="0">
   
   <tr><td><strong>Author:</strong></td><td>Chris Read</td></tr>
   
   
   <tr><td><strong>Category:</strong></td><td>Post Files</td></tr>
   <tr><td><strong>License:</strong></td><td><a href="http://www.gnu.org/copyleft/gpl.html" target="_blank">GNU General Public License</a></td></tr>
   <tr><td><strong>Date:</strong></td><td>July 22, 2011</td></tr>
   
  </table>
  </div>
 </div>
 <div class="wpfilebase-fileinfo">
  12.9 KiB<br />
  74 Downloads<br />
  <a href="#" onclick="return wpfilebase_filedetails(1);">Details...</a>
 </div>
 <div style="clear: both;"></div>
</div>
 <img src="http://www.professionalexcel.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=157" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.professionalexcel.com/2011/07/scrolling-dynamic-lookup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Complex Transpose</title>
		<link>http://www.professionalexcel.com/2011/07/complex-transpose/</link>
		<comments>http://www.professionalexcel.com/2011/07/complex-transpose/#comments</comments>
		<pubDate>Wed, 13 Jul 2011 21:47:14 +0000</pubDate>
		<dc:creator>Chris Read</dc:creator>
				<category><![CDATA[Array Formula]]></category>
		<category><![CDATA[CSE Formula]]></category>
		<category><![CDATA[Lookup]]></category>
		<category><![CDATA[Worksheets]]></category>

		<guid isPermaLink="false">http://www.professionalexcel.com/?p=145</guid>
		<description><![CDATA[I’ve called this tip ‘Complex Transpose’, which hopefully describes what I’m about to show you. Essentially, it’s about transposing a two column data set of related items into a multi-row and column data set. The key technique employed utilises Array formulas, which I won’t go into detail about, mainly because plenty before me have (see [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve called this tip ‘Complex Transpose’, which hopefully describes what I’m about to show you. Essentially, it’s about transposing a two column data set of related items into a multi-row and column data set.</p>
<p>The key technique employed utilises <strong>Array formulas</strong>, which I won’t go into detail about, mainly because plenty before me have (see links below). The quick 'how-to' is that you need to hold down the CTRL &amp; SHIFT keys when pressing ENTER to commit the formula, instead of just hitting ENTER. Their other common name is a ‘<strong>CSE formula</strong>’ (<strong>C</strong>ontrol, <strong>S</strong>hift, <strong>E</strong>nter). When committed, the formula is surrounded by curly {brackets}.<span id="more-145"></span></p>
<p>There are plenty of useful guides out there for Array formulas, including:</p>
<ul>
<li><a href="http://www.cpearson.com/excel/ArrayFormulas.aspx">http://www.cpearson.com/excel/ArrayFormulas.aspx</a></li>
<li><a href="http://www.mrexcel.com/articles/CSE-array-formulas-excel.php">http://www.mrexcel.com/articles/CSE-array-formulas-excel.php</a></li>
<li><a href="http://www.ozgrid.com/Excel/arrays.htm">http://www.ozgrid.com/Excel/arrays.htm</a></li>
</ul>
<p>So, here’s the sample data to show you the technique (not necessarily sorted by Supplier, as is the case below)...</p>
<div id="attachment_146" class="wp-caption aligncenter" style="width: 231px"><a href="http://www.professionalexcel.com/wp-content/uploads/2011/07/CT_1.png"><img class="size-full wp-image-146 " title="Sample data" src="http://www.professionalexcel.com/wp-content/uploads/2011/07/CT_1.png" alt="" width="221" height="254" /></a><p class="wp-caption-text">Sample data</p></div>
<p>And here’s what we want to end up with in our complex transpose result...</p>
<div id="attachment_147" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.professionalexcel.com/wp-content/uploads/2011/07/CT_3.png"><img class="size-medium wp-image-147" title="Complex Transpose result" src="http://www.professionalexcel.com/wp-content/uploads/2011/07/CT_3-300x90.png" alt="" width="300" height="90" /></a><p class="wp-caption-text">Complex Transpose result</p></div>
<p>In order to obtain this result we need to throw the following functions into the mixing bowl...</p>
<ul>
<li>IFERROR – for cleaning up when we run out of product IDs.</li>
<li>INDEX – for returning the Product ID from a specified row.</li>
<li>SMALL – for returning the k-th smallest number in an array.</li>
<li>ROW – for returning the row number of each Supplier.</li>
<li>COLUMN – for calculating the column number in the output table.</li>
</ul>
<p>Throwing them into cell E2 - beating with a whisk while adding water - gives the following scary combination...</p>
<p><span style="color: #000080;">={IFERROR(INDEX($B$2:$B$11,SMALL(IF($A$2:$A$11=$D2,ROW($A$2:$A$11)-1),COLUMN()-COLUMN($D2))),"")}</span></p>
<p>Time to dissect and see what we have!</p>
<p><strong>This part gets the row number we're after in the Supplier Range<br />
</strong><span style="color: #000080;">SMALL(IF(SupplierRange=SupplierName,ROW(SupplierRange)-1),COLUMN()-COLUMN(SupplierName))</span></p>
<p><strong>The row number is then used to get the Product ID for that row<br />
</strong><span style="color: #000080;">INDEX(ProductRange, SMALL(...))</span></p>
<p><strong>We then trap any errors when a Product ID doesn't exist for the given column of the results</strong><br />
<span style="color: #000080;">IFERROR(INDEX(...),"")</span></p>
<p>NB: The IF function is the array formula part, which requires CSE.</p>
<p>Simple right? Well, probably not at first glance. I find the best way to learn is to get your hands dirty, so download the sample file below and get learning!</p>
<p style="text-align: left;">I’ve included versions for Excel 2003 and 2007, because the IFERROR function didn’t exist in Excel 2003. Therefore the 2003 version utilises the IF(ISERROR()) workaround. <a title="Replace IFERROR() with IF(ISERROR())" href="http://www.professionalexcel.com/2011/06/replace-iferror-with-ifiserror/">See my last post about replacing these if you’re interested</a>.</p>
<p style="text-align: left;"><div class="wpfilebase-attachment">
 <div class="wpfilebase-fileicon"><a href="http://www.professionalexcel.com/download/post-files/Complex Transpose.xlsx" title="Download Complex Transpose"><img align="middle" src="http://www.professionalexcel.com/wp-includes/images/crystal/spreadsheet.png" alt="Complex Transpose" /></a></div>
 <div class="wpfilebase-rightcol">
  <div class="wpfilebase-filetitle">
   <a href="http://www.professionalexcel.com/download/post-files/Complex Transpose.xlsx" title="Download Complex Transpose">Complex Transpose</a><br />
   Complex Transpose.xlsx<br />
   Version: Excel 2007<br />
   
  </div>
  <div class="wpfilebase-filedetails" id="wpfilebase-filedetails2" style="display: none;">
  <p>Excel 2003 example file showing a complex transpose formula.</p>
  <table border="0">
   <tr><td><strong>Languages:</strong></td><td>English</td></tr>
   <tr><td><strong>Author:</strong></td><td>Chris Read</td></tr>
   
   
   <tr><td><strong>Category:</strong></td><td>Post Files</td></tr>
   <tr><td><strong>License:</strong></td><td><a href="http://www.gnu.org/copyleft/gpl.html" target="_blank">GNU General Public License</a></td></tr>
   <tr><td><strong>Date:</strong></td><td>July 13, 2011</td></tr>
   
  </table>
  </div>
 </div>
 <div class="wpfilebase-fileinfo">
  10.2 KiB<br />
  66 Downloads<br />
  <a href="#" onclick="return wpfilebase_filedetails(2);">Details...</a>
 </div>
 <div style="clear: both;"></div>
</div></p>
<p style="text-align: left;"><div class="wpfilebase-attachment">
 <div class="wpfilebase-fileicon"><a href="http://www.professionalexcel.com/download/post-files/Complex Transpose.xls" title="Download Complex Transpose"><img align="middle" src="http://www.professionalexcel.com/wp-includes/images/crystal/spreadsheet.png" alt="Complex Transpose" /></a></div>
 <div class="wpfilebase-rightcol">
  <div class="wpfilebase-filetitle">
   <a href="http://www.professionalexcel.com/download/post-files/Complex Transpose.xls" title="Download Complex Transpose">Complex Transpose</a><br />
   Complex Transpose.xls<br />
   Version: Excel 2003<br />
   
  </div>
  <div class="wpfilebase-filedetails" id="wpfilebase-filedetails3" style="display: none;">
  <p>Excel 2003 example file showing a complex transpose formula.</p>
  <table border="0">
   <tr><td><strong>Languages:</strong></td><td>English</td></tr>
   <tr><td><strong>Author:</strong></td><td>Chris Read</td></tr>
   
   
   <tr><td><strong>Category:</strong></td><td>Post Files</td></tr>
   <tr><td><strong>License:</strong></td><td><a href="http://www.gnu.org/copyleft/gpl.html" target="_blank">GNU General Public License</a></td></tr>
   <tr><td><strong>Date:</strong></td><td>July 13, 2011</td></tr>
   
  </table>
  </div>
 </div>
 <div class="wpfilebase-fileinfo">
  23.5 KiB<br />
  34 Downloads<br />
  <a href="#" onclick="return wpfilebase_filedetails(3);">Details...</a>
 </div>
 <div style="clear: both;"></div>
</div></p>
 <img src="http://www.professionalexcel.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=145" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.professionalexcel.com/2011/07/complex-transpose/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Replace IFERROR() with IF(ISERROR())</title>
		<link>http://www.professionalexcel.com/2011/06/replace-iferror-with-ifiserror/</link>
		<comments>http://www.professionalexcel.com/2011/06/replace-iferror-with-ifiserror/#comments</comments>
		<pubDate>Tue, 21 Jun 2011 16:59:02 +0000</pubDate>
		<dc:creator>Chris Read</dc:creator>
				<category><![CDATA[VBA]]></category>
		<category><![CDATA[Worksheets]]></category>

		<guid isPermaLink="false">http://localhost/ProfessionalExcel/wordpress/?p=36</guid>
		<description><![CDATA[This tip relates to the technique of trapping and handling errors in a formula. Prior to Excel 2007 (e.g. Excel 2003, 2002, 2000), this was accomplished using a combination of the IF and ISERROR functions to test for an error in a formula, e.g. =IF(ISERROR(MyFormula),ReturnSomethingElse,MyFormula). This meant having to write your formula twice (think of your longest [...]]]></description>
			<content:encoded><![CDATA[<p>This tip relates to the technique of trapping and handling errors in a formula. Prior to Excel 2007 (e.g. Excel 2003, 2002, 2000), this was accomplished using a combination of the <strong>IF</strong> and <strong>ISERROR</strong> functions to test for an error in a formula, e.g. =IF(ISERROR(MyFormula),ReturnSomethingElse,MyFormula). This meant having to write your formula twice (think of your longest formula!).</p>
<p>In Excel 2007, trapping and handling errors in a formula was made easier with the introduction of the <strong>IFERROR</strong> function, which removed the need to specify your formula twice, e.g. =IFERROR(MyFormula,ReturnSomethingElse).</p>
<p><span id="more-36"></span>With organisations upgrading to Office (Excel) 2007 at different times, compatibility can become an issue. Although installing the Microsoft Office Compatibility Pack will enable users of previous versions of Excel to open an Excel 2007 file, you can't rely on this being installed. Also, you may want to convert an Excel 2007 file to a previous version for people to use / modify; In Excel 2007, simply 'saving as' an older version (e.g. saving an 'xlsx' as an 'xls' file) will often bring up a load of compatibility warning messages, which aren't fixed automatically.</p>
<p>Through my need to develop in all versions of Excel, I developed a handy procedure (ReplaceIFERRORCellFormulas) that will convert a range of selected cells that contain <strong>IFERROR</strong> formulas to instead use a combination of the <strong>IF</strong> and <strong>ISERROR </strong>functions. There's also a procedure to check all Named Ranges (ReplaceIFERRORNamedRangeFormulas), in case you use them to store formulas.</p>
<div class="wpfilebase-attachment">
 <div class="wpfilebase-fileicon"><a href="http://www.professionalexcel.com/download/vba-modules/modReplaceIFERROR.bas" title="Download modReplaceIFERROR.bas"><img align="middle" src="http://www.professionalexcel.com/wp-includes/images/crystal/default.png" alt="modReplaceIFERROR.bas" /></a></div>
 <div class="wpfilebase-rightcol">
  <div class="wpfilebase-filetitle">
   <a href="http://www.professionalexcel.com/download/vba-modules/modReplaceIFERROR.bas" title="Download modReplaceIFERROR.bas">modReplaceIFERROR.bas</a><br />
   modReplaceIFERROR.bas<br />
   Version: 1.0<br />
   
  </div>
  <div class="wpfilebase-filedetails" id="wpfilebase-filedetails4" style="display: none;">
  <p>Module containing a handy procedure (ReplaceIFERRORCellFormulas) that will convert a range of selected cells that contain IFERROR formulas to instead use a combination of the IF and ISERROR functions. There's also a procedure to check all Named Ranges (ReplaceIFERRORNamedRangeFormulas), in case you use them to store formulas.</p>
  <table border="0">
   <tr><td><strong>Languages:</strong></td><td>English</td></tr>
   <tr><td><strong>Author:</strong></td><td>Chris Read</td></tr>
   
   
   <tr><td><strong>Category:</strong></td><td>VBA Modules</td></tr>
   <tr><td><strong>License:</strong></td><td><a href="http://www.gnu.org/copyleft/gpl.html" target="_blank">GNU General Public License</a></td></tr>
   <tr><td><strong>Date:</strong></td><td>January 28, 2010</td></tr>
   
  </table>
  </div>
 </div>
 <div class="wpfilebase-fileinfo">
  7.5 KiB<br />
  214 Downloads<br />
  <a href="#" onclick="return wpfilebase_filedetails(4);">Details...</a>
 </div>
 <div style="clear: both;"></div>
</div>
 <img src="http://www.professionalexcel.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=36" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.professionalexcel.com/2011/06/replace-iferror-with-ifiserror/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>My Excel bookshelf</title>
		<link>http://www.professionalexcel.com/2011/06/my-excel-bookshelf/</link>
		<comments>http://www.professionalexcel.com/2011/06/my-excel-bookshelf/#comments</comments>
		<pubDate>Thu, 16 Jun 2011 17:01:27 +0000</pubDate>
		<dc:creator>Chris Read</dc:creator>
				<category><![CDATA[Learning resources]]></category>

		<guid isPermaLink="false">http://localhost/ProfessionalExcel/wordpress/?p=12</guid>
		<description><![CDATA[Excel 2002 VBA: Programmers Reference This was the first book I bought on Excel VBA and it has served me well. It covers a broad subject base for both beginner and expert Excel programmer, and for a reference book, has a detailed index for subject lookup. Professional Excel Development: The Definitive Guide to Developing Applications Using [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;"><img class="size-full wp-image-18 alignnone" title="Excel2002VBAProgrammersReference" src="http://www.professionalexcel.com/wp-content/uploads/2011/06/Excel2002VBAProgrammersReference.jpg" alt="" /></p>
<p><a href="http://www.amazon.co.uk/Excel-2002-Programmers-Reference-Programmer/dp/0764543717/" target="_blank">Excel 2002 VBA: Programmers Reference</a><br />
This was the first book I bought on Excel VBA and it has served me well. It covers a broad subject base for both beginner and expert Excel programmer, and for a reference book, has a detailed index for subject lookup.<span id="more-12"></span></p>
<p style="text-align: left;"><img class="size-full wp-image-19 alignnone" title="ProfessionalExcelDevelopment" src="http://www.professionalexcel.com/wp-content/uploads/2011/06/ProfessionalExcelDevelopment.jpg" alt="" width="94" height="124" /></p>
<p><a href="http://www.amazon.co.uk/Professional-Excel-Development-Definitive-Applications/dp/0321262506/" target="_blank">Professional Excel Development: The Definitive Guide to Developing Applications Using Microsoft Excel and VBA</a><br />
This book is more for the expert developer and looks at creating professional applications in Excel. The book shows Excel as more than just a spreadsheet tool, its a development platform. I would say it's a must for the serious Excel developer.</p>
<p style="text-align: left;"><img class="size-full wp-image-20 alignnone" title="ProfessionalExcelDevelopment2ndEdition" src="http://www.professionalexcel.com/wp-content/uploads/2011/06/ProfessionalExcelDevelopment2ndEdition.jpg" alt="" width="93" height="124" /></p>
<p><a href="http://www.amazon.co.uk/Professional-Excel-Development-Applications-Addison-Wesley/dp/0321508793/" target="_blank">Professional Excel Development (2nd Edition): The Definitive Guide to Developing Applications Using Microsoft Excel and VBA</a><br />
An updated version of the best book on the market for Excel developers. Extremely useful for the latest versions (2007 onwards) of Excel.</p>
 <img src="http://www.professionalexcel.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=12" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.professionalexcel.com/2011/06/my-excel-bookshelf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

