<?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/"
		>
<channel>
	<title>Comments on: New Years Resolution: No More Offset</title>
	<atom:link href="http://www.dailydoseofexcel.com/archives/2010/01/07/new-years-resolution-no-more-offset/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dailydoseofexcel.com/archives/2010/01/07/new-years-resolution-no-more-offset/</link>
	<description>Daily posts of Excel tips…and other stuff</description>
	<lastBuildDate>Thu, 09 Feb 2012 23:42:03 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: Contextures Blog » Something Fishy: Using the Excel OFFSET Function</title>
		<link>http://www.dailydoseofexcel.com/archives/2010/01/07/new-years-resolution-no-more-offset/#comment-43445</link>
		<dc:creator>Contextures Blog » Something Fishy: Using the Excel OFFSET Function</dc:creator>
		<pubDate>Wed, 20 Jan 2010 06:02:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=3421#comment-43445</guid>
		<description>&lt;p&gt;[...] I like the OFFSET function, and use it to create dynamic ranges in some of my workbooks. There are alternatives to using the Excel OFFSET function, such as the Excel INDEX Function. There&#039;s an interesting discussion of the merits of each function on Dick Kusleika&#039;s Daily Dose of Excel Blog: New Year&#039;s Resolution: No More Offset. [...]&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>[...] I like the OFFSET function, and use it to create dynamic ranges in some of my workbooks. There are alternatives to using the Excel OFFSET function, such as the Excel INDEX Function. There&#8217;s an interesting discussion of the merits of each function on Dick Kusleika&#8217;s Daily Dose of Excel Blog: New Year&#8217;s Resolution: No More Offset. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Charles Williams</title>
		<link>http://www.dailydoseofexcel.com/archives/2010/01/07/new-years-resolution-no-more-offset/#comment-43303</link>
		<dc:creator>Charles Williams</dc:creator>
		<pubDate>Tue, 12 Jan 2010 20:14:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=3421#comment-43303</guid>
		<description>&lt;p&gt;There is some information about the dependency tree limits at&lt;br&gt;
&lt;a href=&quot;http://www.decisionmodels.com/calcsecretsf.htm&quot; rel=&quot;nofollow&quot;&gt;http://www.decisionmodels.com/calcsecretsf.htm&lt;/a&gt;&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>There is some information about the dependency tree limits at<br />
<a href="http://www.decisionmodels.com/calcsecretsf.htm" rel="nofollow">http://www.decisionmodels.com/calcsecretsf.htm</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: fzz</title>
		<link>http://www.dailydoseofexcel.com/archives/2010/01/07/new-years-resolution-no-more-offset/#comment-43302</link>
		<dc:creator>fzz</dc:creator>
		<pubDate>Tue, 12 Jan 2010 17:10:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=3421#comment-43302</guid>
		<description>&lt;p&gt;Showing completed calculations has its merits. From my perspective, OFFSET is used most often for dynamic chart ranges and interpolation. I have no problem with OFFSET used in chart ranges because there won&#039;t be many OFFSET calls. OTOH, interpolation usually involves cell formulas like&lt;/p&gt;
&lt;p&gt;=IF(x&lt;MIN(x_Range),INDEX(y_Range,1),IF(x&gt;=MAX(x_Range),INDEX(y_Range,ROWS(y_Range)),&lt;br&gt;
FORECAST(x,OFFSET(y_Range,MATCH(x,x_Range)-1,0,2,1),OFFSET(x_Range,MATCH(x,x_Range)-1,0,2,1))))&lt;/p&gt;
&lt;p&gt;This can be done, arguably better, using &lt;b&gt;nonvolatile&lt;/b&gt; udfs which look like&lt;/p&gt;
&lt;p&gt;=LININTERP(x,x_Range,y_Range)&lt;/p&gt;
&lt;p&gt;There are many implementations in the newsgroups. Much simpler/shorter/less error prone than the OFFSET approach, &lt;b&gt;and&lt;/b&gt; Excel would only recalculate it when x, x_Range or y_Range change rather than at every recalc. When x_Range and y_Range are static and x changes rarely, recalc will be faster using such udfs than using OFFSET. The only down side is needing VBA.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Showing completed calculations has its merits. From my perspective, OFFSET is used most often for dynamic chart ranges and interpolation. I have no problem with OFFSET used in chart ranges because there won&#8217;t be many OFFSET calls. OTOH, interpolation usually involves cell formulas like</p>
<p>=IF(x&lt;MIN(x_Range),INDEX(y_Range,1),IF(x&gt;=MAX(x_Range),INDEX(y_Range,ROWS(y_Range)),<br />
FORECAST(x,OFFSET(y_Range,MATCH(x,x_Range)-1,0,2,1),OFFSET(x_Range,MATCH(x,x_Range)-1,0,2,1))))</p>
<p>This can be done, arguably better, using <b>nonvolatile</b> udfs which look like</p>
<p>=LININTERP(x,x_Range,y_Range)</p>
<p>There are many implementations in the newsgroups. Much simpler/shorter/less error prone than the OFFSET approach, <b>and</b> Excel would only recalculate it when x, x_Range or y_Range change rather than at every recalc. When x_Range and y_Range are static and x changes rarely, recalc will be faster using such udfs than using OFFSET. The only down side is needing VBA.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rick Williams</title>
		<link>http://www.dailydoseofexcel.com/archives/2010/01/07/new-years-resolution-no-more-offset/#comment-43296</link>
		<dc:creator>Rick Williams</dc:creator>
		<pubDate>Tue, 12 Jan 2010 03:38:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=3421#comment-43296</guid>
		<description>&lt;p&gt;@Jan.&lt;/p&gt;
&lt;p&gt;I&#039;ve had the persistent &#039;Calculate&#039; message left behind before in workbooks, a problem which I never understood.  How did you know to convert to volatile functions (or that this would work)?  &lt;/p&gt;
&lt;p&gt;Do you (or any one here really!) have any information about the calculation tree limit? Is it number of levels, overall size, or something else?  In addition, are there ways to analyse the depth or size of your current calc tree for comparison?&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>@Jan.</p>
<p>I&#8217;ve had the persistent &#8216;Calculate&#8217; message left behind before in workbooks, a problem which I never understood.  How did you know to convert to volatile functions (or that this would work)?  </p>
<p>Do you (or any one here really!) have any information about the calculation tree limit? Is it number of levels, overall size, or something else?  In addition, are there ways to analyse the depth or size of your current calc tree for comparison?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Paul Hollinger</title>
		<link>http://www.dailydoseofexcel.com/archives/2010/01/07/new-years-resolution-no-more-offset/#comment-43275</link>
		<dc:creator>Paul Hollinger</dc:creator>
		<pubDate>Mon, 11 Jan 2010 02:40:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=3421#comment-43275</guid>
		<description>&lt;p&gt;This was mentioned on Simon&#039;s blog, but another reason I sometimes prefer INDEX is that a cell that references another cell via OFFSET does not show up as a dependent in the auditing tools.  Coming back to one of my own complicated workbooks a year later, Trace Dependents is a very useful tool for me, and it doesn&#039;t work for OFFSET.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>This was mentioned on Simon&#8217;s blog, but another reason I sometimes prefer INDEX is that a cell that references another cell via OFFSET does not show up as a dependent in the auditing tools.  Coming back to one of my own complicated workbooks a year later, Trace Dependents is a very useful tool for me, and it doesn&#8217;t work for OFFSET.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jan</title>
		<link>http://www.dailydoseofexcel.com/archives/2010/01/07/new-years-resolution-no-more-offset/#comment-43271</link>
		<dc:creator>Jan</dc:creator>
		<pubDate>Sun, 10 Jan 2010 23:18:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=3421#comment-43271</guid>
		<description>&lt;p&gt;In the past the only reason I have had to resort to Offset was at the point when a very large model broke the calculation tree limit and left behind that frustrating &quot;Calculate&quot; in the status bar instead of the normal &quot;Ready&quot;.  By replacing large swathes of Indexes with the volatile Offset I have been able to force the model to demonstrate a completed calculation.  I have often wondered whether this was actually an improvement or just simply aesthetically more pleasant result.  In either case the models would work even though a basic F9 on the &quot;Index&quot; Scenario was insufficient to clear the Calculate message.&lt;/p&gt;
&lt;p&gt;Was there any real benefit other than appearance? (albeit at an accepted cost to both best practice and speed)&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>In the past the only reason I have had to resort to Offset was at the point when a very large model broke the calculation tree limit and left behind that frustrating &#8220;Calculate&#8221; in the status bar instead of the normal &#8220;Ready&#8221;.  By replacing large swathes of Indexes with the volatile Offset I have been able to force the model to demonstrate a completed calculation.  I have often wondered whether this was actually an improvement or just simply aesthetically more pleasant result.  In either case the models would work even though a basic F9 on the &#8220;Index&#8221; Scenario was insufficient to clear the Calculate message.</p>
<p>Was there any real benefit other than appearance? (albeit at an accepted cost to both best practice and speed)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sebastien Labonne</title>
		<link>http://www.dailydoseofexcel.com/archives/2010/01/07/new-years-resolution-no-more-offset/#comment-43266</link>
		<dc:creator>Sebastien Labonne</dc:creator>
		<pubDate>Sun, 10 Jan 2010 17:44:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=3421#comment-43266</guid>
		<description>&lt;p&gt;Those are interesting solutions and substitutes for OFFSET. However, I think that we have to consider more than the volatility or non-volatility of a solution.&lt;/p&gt;
&lt;p&gt;1- While OFFSET might seem complicated to some users, I think it pales in comparison to many substitutes presented here.&lt;br&gt;
2- Longer formulas are more error prone and harder to read, not to mention the character limit that might become an issue.&lt;br&gt;
3- Slow recalculation is not a problem for many workbooks.&lt;/p&gt;
&lt;p&gt;I think we may blinded and biased by the context we work with.&lt;/p&gt;
&lt;p&gt;Personnally, I use OFFSET extensively, maybe too much, but that&#039;s not an issue in most of the models I develop. So I don&#039;t see why I should substitute it&#039;s convenience with some hyper-robust solution twice the lenght.&lt;/p&gt;
&lt;p&gt;And you know what, I might have some sub-optimal code too.&lt;/p&gt;
&lt;p&gt;Sebastien&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Those are interesting solutions and substitutes for OFFSET. However, I think that we have to consider more than the volatility or non-volatility of a solution.</p>
<p>1- While OFFSET might seem complicated to some users, I think it pales in comparison to many substitutes presented here.<br />
2- Longer formulas are more error prone and harder to read, not to mention the character limit that might become an issue.<br />
3- Slow recalculation is not a problem for many workbooks.</p>
<p>I think we may blinded and biased by the context we work with.</p>
<p>Personnally, I use OFFSET extensively, maybe too much, but that&#8217;s not an issue in most of the models I develop. So I don&#8217;t see why I should substitute it&#8217;s convenience with some hyper-robust solution twice the lenght.</p>
<p>And you know what, I might have some sub-optimal code too.</p>
<p>Sebastien</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jon Peltier</title>
		<link>http://www.dailydoseofexcel.com/archives/2010/01/07/new-years-resolution-no-more-offset/#comment-43263</link>
		<dc:creator>Jon Peltier</dc:creator>
		<pubDate>Sun, 10 Jan 2010 16:49:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=3421#comment-43263</guid>
		<description>&lt;p&gt;To answer Ikkeman&#039;s question, without doing any testing :) I would expect ADDRESS to be a lot slower. You first have to construct the address as a string, then use INDIRECT to interpret the string.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>To answer Ikkeman&#8217;s question, without doing any testing <img src='http://www.dailydoseofexcel.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  I would expect ADDRESS to be a lot slower. You first have to construct the address as a string, then use INDIRECT to interpret the string.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: sam</title>
		<link>http://www.dailydoseofexcel.com/archives/2010/01/07/new-years-resolution-no-more-offset/#comment-43261</link>
		<dc:creator>sam</dc:creator>
		<pubDate>Sun, 10 Jan 2010 15:58:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=3421#comment-43261</guid>
		<description>&lt;p&gt;Dough...Nice technique to prevent # ref if the header row got deleted.&lt;/p&gt;
&lt;p&gt;if only MS simply had created a built in function called LastRow which would work like this&lt;/p&gt;
&lt;p&gt;=LastRow(A:A) to return a number indicating last non blank row in Col A (irrespective of blanks in between)&lt;br&gt;
=A1:LastRow(A:A) to return the Address of the last non blank row or A1&lt;/p&gt;
&lt;p&gt;off course till then there is one in MoreFunc.xll....&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Dough&#8230;Nice technique to prevent # ref if the header row got deleted.</p>
<p>if only MS simply had created a built in function called LastRow which would work like this</p>
<p>=LastRow(A:A) to return a number indicating last non blank row in Col A (irrespective of blanks in between)<br />
=A1:LastRow(A:A) to return the Address of the last non blank row or A1</p>
<p>off course till then there is one in MoreFunc.xll&#8230;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Doug Glancy</title>
		<link>http://www.dailydoseofexcel.com/archives/2010/01/07/new-years-resolution-no-more-offset/#comment-43246</link>
		<dc:creator>Doug Glancy</dc:creator>
		<pubDate>Sat, 09 Jan 2010 18:18:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=3421#comment-43246</guid>
		<description>&lt;p&gt;To add to Sam&#039;s I&#039;d alter it to:&lt;/p&gt;
&lt;p&gt;=INDEX(Sheet2!$A:$A,1):INDEX(Sheet2!$A:$A,LastRow)&lt;br&gt;
because $A$1:Index($A:$A,LastRow) yields a #REF error if row 1 is deleted.  In practice my dynamic ranges have headers, so to start on row 2 I&#039;d use &lt;/p&gt;
&lt;p&gt;=INDEX(Sheet2!$A:$A,2):INDEX(Sheet2!$A:$A,LastRow)&lt;br&gt;
Of course that can cause problems if all the non-header rows are deleted because it will refer to A1:A2, so I&#039;d change the definition for LastRow to:&lt;br&gt;
=MAX(2, COUNTA(Sheet2!$A:$A))&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>To add to Sam&#8217;s I&#8217;d alter it to:</p>
<p>=INDEX(Sheet2!$A:$A,1):INDEX(Sheet2!$A:$A,LastRow)<br />
because $A$1:Index($A:$A,LastRow) yields a #REF error if row 1 is deleted.  In practice my dynamic ranges have headers, so to start on row 2 I&#8217;d use </p>
<p>=INDEX(Sheet2!$A:$A,2):INDEX(Sheet2!$A:$A,LastRow)<br />
Of course that can cause problems if all the non-header rows are deleted because it will refer to A1:A2, so I&#8217;d change the definition for LastRow to:<br />
=MAX(2, COUNTA(Sheet2!$A:$A))</p>
]]></content:encoded>
	</item>
</channel>
</rss>

