<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: Next Monday: D Day for SOX gravy train</title>
	<atom:link href="http://smurfonspreadsheets.wordpress.com/2009/12/05/next-monday-d-day-for-sox-gravy-train/feed/" rel="self" type="application/rss+xml" />
	<link>http://smurfonspreadsheets.wordpress.com/2009/12/05/next-monday-d-day-for-sox-gravy-train/</link>
	<description>Simon Murphy on professional spreadsheet development stuff</description>
	<lastBuildDate>Thu, 18 Apr 2013 08:42:09 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: Harlan Grove</title>
		<link>http://smurfonspreadsheets.wordpress.com/2009/12/05/next-monday-d-day-for-sox-gravy-train/#comment-14859</link>
		<dc:creator><![CDATA[Harlan Grove]]></dc:creator>
		<pubDate>Mon, 07 Dec 2009 17:59:47 +0000</pubDate>
		<guid isPermaLink="false">http://smurfonspreadsheets.wordpress.com/?p=1943#comment-14859</guid>
		<description><![CDATA[The problem with A1=&quot;&quot; is that it won&#039;t trap A1 containing one or more spaces.

I&#039;ve seen a wide and impressive variety of inventive user entries. N(..) and TRIM(..) functions are much underused when it comes to addressing such inventiveness.

I screwed up my ISERROR point. I meant to add that using ISERROR to trap &lt;b&gt;expected&lt;/b&gt; conditions such as no values to average often leads to ignoring more serious errors. For example,

=IF(ISERROR(AVERAGE(SomeRange)),&quot;&quot;,AVERAGE(SomeRange))

traps no numbers in SomeRange, but it also traps error values in SomeRange as well as trapping corruption (#REF!) or deletion (#NAME?) of SomeRange or even, if SomeRange is defined as an intersection, #NULL!. ISERROR usually traps too much, and it certainly hides bugs early on and lets them grow into real monsters.]]></description>
		<content:encoded><![CDATA[<p>The problem with A1=&#8221;" is that it won&#8217;t trap A1 containing one or more spaces.</p>
<p>I&#8217;ve seen a wide and impressive variety of inventive user entries. N(..) and TRIM(..) functions are much underused when it comes to addressing such inventiveness.</p>
<p>I screwed up my ISERROR point. I meant to add that using ISERROR to trap <b>expected</b> conditions such as no values to average often leads to ignoring more serious errors. For example,</p>
<p>=IF(ISERROR(AVERAGE(SomeRange)),&#8221;",AVERAGE(SomeRange))</p>
<p>traps no numbers in SomeRange, but it also traps error values in SomeRange as well as trapping corruption (#REF!) or deletion (#NAME?) of SomeRange or even, if SomeRange is defined as an intersection, #NULL!. ISERROR usually traps too much, and it certainly hides bugs early on and lets them grow into real monsters.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Marcus from London</title>
		<link>http://smurfonspreadsheets.wordpress.com/2009/12/05/next-monday-d-day-for-sox-gravy-train/#comment-14858</link>
		<dc:creator><![CDATA[Marcus from London]]></dc:creator>
		<pubDate>Mon, 07 Dec 2009 16:50:00 +0000</pubDate>
		<guid isPermaLink="false">http://smurfonspreadsheets.wordpress.com/?p=1943#comment-14858</guid>
		<description><![CDATA[Spot on Harlan - Excel&#039;s Data Validation does little more than provide unwary users with a false sense of security.

N(..). Hmm, let&#039;s see. I&#039;m involved in maintaining a model which has over 405,000 formulas across 114 worksheets. use of N() - zero. Plenty of A1&gt;0 and A1=&quot;&quot; though.]]></description>
		<content:encoded><![CDATA[<p>Spot on Harlan &#8211; Excel&#8217;s Data Validation does little more than provide unwary users with a false sense of security.</p>
<p>N(..). Hmm, let&#8217;s see. I&#8217;m involved in maintaining a model which has over 405,000 formulas across 114 worksheets. use of N() &#8211; zero. Plenty of A1&gt;0 and A1=&#8221;" though.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ross</title>
		<link>http://smurfonspreadsheets.wordpress.com/2009/12/05/next-monday-d-day-for-sox-gravy-train/#comment-14857</link>
		<dc:creator><![CDATA[ross]]></dc:creator>
		<pubDate>Mon, 07 Dec 2009 14:33:36 +0000</pubDate>
		<guid isPermaLink="false">http://smurfonspreadsheets.wordpress.com/?p=1943#comment-14857</guid>
		<description><![CDATA[&gt;&gt;There are also too many spreadsheets that rely on Excel’s laughably weak Data Validation functionality.

Thanks God someone who agree&#039;s with me. Data Validation in Excel sucks! Thank you Harlan.]]></description>
		<content:encoded><![CDATA[<p>&gt;&gt;There are also too many spreadsheets that rely on Excel’s laughably weak Data Validation functionality.</p>
<p>Thanks God someone who agree&#8217;s with me. Data Validation in Excel sucks! Thank you Harlan.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Harlan Grove</title>
		<link>http://smurfonspreadsheets.wordpress.com/2009/12/05/next-monday-d-day-for-sox-gravy-train/#comment-14855</link>
		<dc:creator><![CDATA[Harlan Grove]]></dc:creator>
		<pubDate>Sun, 06 Dec 2009 20:34:09 +0000</pubDate>
		<guid isPermaLink="false">http://smurfonspreadsheets.wordpress.com/?p=1943#comment-14855</guid>
		<description><![CDATA[From my in-house perspective and extrapolating promiscuously, organizations are either not allowing new spreadsheets to be added to reporting processes or are not doing much more than cataloging them.

There are still too many instances of mixed user entry and formula results in the same worksheet, but the main thing I &lt;b&gt;haven&#039;t&lt;/b&gt; seen is SheetChange event handlers trapping and undoing &lt;b&gt;cut&lt;/b&gt; and paste operations and displaying warnings about why it&#039;s bad and why it&#039;s not allowed. Of course it&#039;d be much, Much, MUCH better for MSFT to provide a protection setting that converted cut and paste operations into copy and paste: this could be done with a SheetChange event handler, recording the post-paste values or formulas in the destination range (and maybe also the formatting), undoing the paste operation and setting CutCopyMode to False, then replacing the stored post-paste values or formulas in the destination range. Excel should provide a protection mode to do this automatically.

There are also too many spreadsheets that rely on Excel&#039;s laughably weak Data Validation functionality. Data validation doesn&#039;t process pasted values, which means it&#039;s unreliable in a multitasking environment such as any version of Windows since Windows 1.x. SheetChange and SheetCalculate and/or validation formulas in ancillary cells or as defined names are necessary for robust data validation. Some models I&#039;ve seen do use macro-driven final validation, fewer use robust interactive validation.

Finally, there&#039;s overuse of ISERROR. The proper way to test that a cell contains a positive value isn&#039;t X99&gt;0 because that&#039;s true if the nice user enters an apostrophe or a space char (or any other string) in X99 (unless you want beg for trouble by using 123 transition formula evaluation), it&#039;s N(X99)&gt;0. How many times do the rest of you see N(..) being used in production spreadsheets?

I don&#039;t know about the rest of you, but in my experience &lt;b&gt;cut&lt;/b&gt; and paste, ineffective user entry validation and failing to allow for Excel&#039;s, er, ability to make order comparisons between values of different types have been responsible for about as many runtime errors as off-by-one indexing and incorrect references in formulas. But I haven&#039;t seen much effort to control for these potential problems.]]></description>
		<content:encoded><![CDATA[<p>From my in-house perspective and extrapolating promiscuously, organizations are either not allowing new spreadsheets to be added to reporting processes or are not doing much more than cataloging them.</p>
<p>There are still too many instances of mixed user entry and formula results in the same worksheet, but the main thing I <b>haven&#8217;t</b> seen is SheetChange event handlers trapping and undoing <b>cut</b> and paste operations and displaying warnings about why it&#8217;s bad and why it&#8217;s not allowed. Of course it&#8217;d be much, Much, MUCH better for MSFT to provide a protection setting that converted cut and paste operations into copy and paste: this could be done with a SheetChange event handler, recording the post-paste values or formulas in the destination range (and maybe also the formatting), undoing the paste operation and setting CutCopyMode to False, then replacing the stored post-paste values or formulas in the destination range. Excel should provide a protection mode to do this automatically.</p>
<p>There are also too many spreadsheets that rely on Excel&#8217;s laughably weak Data Validation functionality. Data validation doesn&#8217;t process pasted values, which means it&#8217;s unreliable in a multitasking environment such as any version of Windows since Windows 1.x. SheetChange and SheetCalculate and/or validation formulas in ancillary cells or as defined names are necessary for robust data validation. Some models I&#8217;ve seen do use macro-driven final validation, fewer use robust interactive validation.</p>
<p>Finally, there&#8217;s overuse of ISERROR. The proper way to test that a cell contains a positive value isn&#8217;t X99&gt;0 because that&#8217;s true if the nice user enters an apostrophe or a space char (or any other string) in X99 (unless you want beg for trouble by using 123 transition formula evaluation), it&#8217;s N(X99)&gt;0. How many times do the rest of you see N(..) being used in production spreadsheets?</p>
<p>I don&#8217;t know about the rest of you, but in my experience <b>cut</b> and paste, ineffective user entry validation and failing to allow for Excel&#8217;s, er, ability to make order comparisons between values of different types have been responsible for about as many runtime errors as off-by-one indexing and incorrect references in formulas. But I haven&#8217;t seen much effort to control for these potential problems.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
