<?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: Spreadsheets as functions</title>
	<atom:link href="http://smurfonspreadsheets.wordpress.com/2008/12/23/spreadsheets-as-functions/feed/" rel="self" type="application/rss+xml" />
	<link>http://smurfonspreadsheets.wordpress.com/2008/12/23/spreadsheets-as-functions/</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: Giles</title>
		<link>http://smurfonspreadsheets.wordpress.com/2008/12/23/spreadsheets-as-functions/#comment-12983</link>
		<dc:creator><![CDATA[Giles]]></dc:creator>
		<pubDate>Tue, 30 Dec 2008 18:50:54 +0000</pubDate>
		<guid isPermaLink="false">http://smurfonspreadsheets.wordpress.com/?p=1183#comment-12983</guid>
		<description><![CDATA[Harlan - glad you like Resolver One&#039;s referencing syntax; here&#039;s how you could use it to do something like SUMIF with conditions over two columns in a three-column range: 

    =SUM(c for a, b, c in D1:F3.Rows if a == True and b.endswith(&quot;foo&quot;))

You&#039;re right that Black-Scholes is probably a smaller problem than you&#039;d normally want to solve using RunWorkbook - we chose it as a small enough example that people could understand in a short screencast.  Our aim isn&#039;t really to replace code-based UDFs, but instead to help people who&#039;d never dream of writing code to produce stuff that can be reused by other spreadsheet users.


Cheers,

Giles]]></description>
		<content:encoded><![CDATA[<p>Harlan &#8211; glad you like Resolver One&#8217;s referencing syntax; here&#8217;s how you could use it to do something like SUMIF with conditions over two columns in a three-column range: </p>
<p>    =SUM(c for a, b, c in D1:F3.Rows if a == True and b.endswith(&#8220;foo&#8221;))</p>
<p>You&#8217;re right that Black-Scholes is probably a smaller problem than you&#8217;d normally want to solve using RunWorkbook &#8211; we chose it as a small enough example that people could understand in a short screencast.  Our aim isn&#8217;t really to replace code-based UDFs, but instead to help people who&#8217;d never dream of writing code to produce stuff that can be reused by other spreadsheet users.</p>
<p>Cheers,</p>
<p>Giles</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Harlan Grove</title>
		<link>http://smurfonspreadsheets.wordpress.com/2008/12/23/spreadsheets-as-functions/#comment-12980</link>
		<dc:creator><![CDATA[Harlan Grove]]></dc:creator>
		<pubDate>Tue, 30 Dec 2008 00:58:21 +0000</pubDate>
		<guid isPermaLink="false">http://smurfonspreadsheets.wordpress.com/?p=1183#comment-12980</guid>
		<description><![CDATA[I haven&#039;t tried it, but the idea of using a spreadsheet as a udf seems suboptimal. Yes, you may be able to do interesting things with them, but in Excel terms, this isn&#039;t much different than using Data Tables. Also, the Black-Scholes udf could be implemented with two single-expression udfs. The portfolio value udf could be replaced with a single, moderately complicated array function.

That said, I do like Resolver&#039;s referencing syntax. Excel&#039;s structured references into Tables is a baby step in the right direction. If only structured references included record selection syntax, e.g.,

SUM(A1:H20[Field1=&quot;XYZ&quot;][Field3])

as a functional equivalent for SUMIF(A1:A20,&quot;XYZ&quot;,C1:C30). Better still if Field3 could be an expression, i.e., something equivalent to the &lt;b&gt;n&lt;/b&gt; term in

SUMIF(A1:A20,&quot;XYZ&quot;,INDEX(A1:H30,0,&lt;b&gt;n&lt;/b&gt;))

But that begs the question of how to implement OR criteria. Then again, simply making SQL.REQUEST a built-in function would solve LOTS of formula problems.]]></description>
		<content:encoded><![CDATA[<p>I haven&#8217;t tried it, but the idea of using a spreadsheet as a udf seems suboptimal. Yes, you may be able to do interesting things with them, but in Excel terms, this isn&#8217;t much different than using Data Tables. Also, the Black-Scholes udf could be implemented with two single-expression udfs. The portfolio value udf could be replaced with a single, moderately complicated array function.</p>
<p>That said, I do like Resolver&#8217;s referencing syntax. Excel&#8217;s structured references into Tables is a baby step in the right direction. If only structured references included record selection syntax, e.g.,</p>
<p>SUM(A1:H20[Field1="XYZ"][Field3])</p>
<p>as a functional equivalent for SUMIF(A1:A20,&#8221;XYZ&#8221;,C1:C30). Better still if Field3 could be an expression, i.e., something equivalent to the <b>n</b> term in</p>
<p>SUMIF(A1:A20,&#8221;XYZ&#8221;,INDEX(A1:H30,0,<b>n</b>))</p>
<p>But that begs the question of how to implement OR criteria. Then again, simply making SQL.REQUEST a built-in function would solve LOTS of formula problems.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike Staunton</title>
		<link>http://smurfonspreadsheets.wordpress.com/2008/12/23/spreadsheets-as-functions/#comment-12978</link>
		<dc:creator><![CDATA[Mike Staunton]]></dc:creator>
		<pubDate>Mon, 29 Dec 2008 19:02:03 +0000</pubDate>
		<guid isPermaLink="false">http://smurfonspreadsheets.wordpress.com/?p=1183#comment-12978</guid>
		<description><![CDATA[The MS article is just so horrible and impractical - I prefer to teach VBA as learning by doing - here is my call function, albeit with my own function vaCND for the cumulative normal distribution because the Excel one is not accurate enough

Function vaEuroCall(S#, K#, r#, q#, Tyr#, vol#) As Double
    Dim d2#
    d2 = (Log(S / K) + (r - q - 0.5 * vol * vol) * Tyr) / (vol * Sqr(Tyr))
    vaEuroCall = S * Exp(-q * Tyr) * vaCND(d2 + vol * Sqr(Tyr)) - K * Exp(-r * Tyr) * vaCND(d2)
End Function]]></description>
		<content:encoded><![CDATA[<p>The MS article is just so horrible and impractical &#8211; I prefer to teach VBA as learning by doing &#8211; here is my call function, albeit with my own function vaCND for the cumulative normal distribution because the Excel one is not accurate enough</p>
<p>Function vaEuroCall(S#, K#, r#, q#, Tyr#, vol#) As Double<br />
    Dim d2#<br />
    d2 = (Log(S / K) + (r &#8211; q &#8211; 0.5 * vol * vol) * Tyr) / (vol * Sqr(Tyr))<br />
    vaEuroCall = S * Exp(-q * Tyr) * vaCND(d2 + vol * Sqr(Tyr)) &#8211; K * Exp(-r * Tyr) * vaCND(d2)<br />
End Function</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Giles</title>
		<link>http://smurfonspreadsheets.wordpress.com/2008/12/23/spreadsheets-as-functions/#comment-12977</link>
		<dc:creator><![CDATA[Giles]]></dc:creator>
		<pubDate>Mon, 29 Dec 2008 18:38:51 +0000</pubDate>
		<guid isPermaLink="false">http://smurfonspreadsheets.wordpress.com/?p=1183#comment-12977</guid>
		<description><![CDATA[Simon - thanks for the mention!

dougaj4 - you&#039;re right, how-to documentation is lacking for how to build UDFs using any spreadsheet.  We&#039;ve tried to do a better job ourselves with a load of screencasts (the one for the worksheets-as-functions stuff is here: http://www.resolversystems.com/screencasts/runworkbook/) and it will be interesting to see whether that helps with uptake among non-developers...]]></description>
		<content:encoded><![CDATA[<p>Simon &#8211; thanks for the mention!</p>
<p>dougaj4 &#8211; you&#8217;re right, how-to documentation is lacking for how to build UDFs using any spreadsheet.  We&#8217;ve tried to do a better job ourselves with a load of screencasts (the one for the worksheets-as-functions stuff is here: <a href="http://www.resolversystems.com/screencasts/runworkbook/" rel="nofollow">http://www.resolversystems.com/screencasts/runworkbook/</a>) and it will be interesting to see whether that helps with uptake among non-developers&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: dougaj4</title>
		<link>http://smurfonspreadsheets.wordpress.com/2008/12/23/spreadsheets-as-functions/#comment-12962</link>
		<dc:creator><![CDATA[dougaj4]]></dc:creator>
		<pubDate>Sat, 27 Dec 2008 07:42:57 +0000</pubDate>
		<guid isPermaLink="false">http://smurfonspreadsheets.wordpress.com/?p=1183#comment-12962</guid>
		<description><![CDATA[That paper was an interesting read, but I&#039;m not conviced that the proposed UDF on a worksheet model is actually any more accessible to the average user than the VBA UDF model.

From my perspective (engineering at the coal face) the reasons people don&#039;t use UDFs as much as they might are:

1) Too busy to muck around with that stuff
2) Prefer to stick with what they know and what works
3) If they really need a UDF they&#039;ll hand it to the &quot;office office expert&quot;
4) Lack of good &quot;get you started&quot; help packaged with the program, and surfeit of poorly-structured help on the Web.

I don&#039;t think that lack of familiarity with programming is a big issue, at least in engineering.  They do that at uni, and if they are into that stuff will continue to do it afterwards.  If they aren&#039;t, they aren&#039;t going to do UDFs in a worksheet either.]]></description>
		<content:encoded><![CDATA[<p>That paper was an interesting read, but I&#8217;m not conviced that the proposed UDF on a worksheet model is actually any more accessible to the average user than the VBA UDF model.</p>
<p>From my perspective (engineering at the coal face) the reasons people don&#8217;t use UDFs as much as they might are:</p>
<p>1) Too busy to muck around with that stuff<br />
2) Prefer to stick with what they know and what works<br />
3) If they really need a UDF they&#8217;ll hand it to the &#8220;office office expert&#8221;<br />
4) Lack of good &#8220;get you started&#8221; help packaged with the program, and surfeit of poorly-structured help on the Web.</p>
<p>I don&#8217;t think that lack of familiarity with programming is a big issue, at least in engineering.  They do that at uni, and if they are into that stuff will continue to do it afterwards.  If they aren&#8217;t, they aren&#8217;t going to do UDFs in a worksheet either.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Simon</title>
		<link>http://smurfonspreadsheets.wordpress.com/2008/12/23/spreadsheets-as-functions/#comment-12948</link>
		<dc:creator><![CDATA[Simon]]></dc:creator>
		<pubDate>Tue, 23 Dec 2008 14:34:37 +0000</pubDate>
		<guid isPermaLink="false">http://smurfonspreadsheets.wordpress.com/?p=1183#comment-12948</guid>
		<description><![CDATA[I think they patented some part(s) of that too.]]></description>
		<content:encoded><![CDATA[<p>I think they patented some part(s) of that too.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Walkenbach</title>
		<link>http://smurfonspreadsheets.wordpress.com/2008/12/23/spreadsheets-as-functions/#comment-12946</link>
		<dc:creator><![CDATA[John Walkenbach]]></dc:creator>
		<pubDate>Tue, 23 Dec 2008 04:07:35 +0000</pubDate>
		<guid isPermaLink="false">http://smurfonspreadsheets.wordpress.com/?p=1183#comment-12946</guid>
		<description><![CDATA[I&#039;ve never used or done anything like that, but it reminds of of a 5-year old paper by Simon Peyton Jones: A User-Centred Approach to Functions in Excel.

http://research.microsoft.com/en-us/um/people/simonpj/Papers/excel/excel.pdf]]></description>
		<content:encoded><![CDATA[<p>I&#8217;ve never used or done anything like that, but it reminds of of a 5-year old paper by Simon Peyton Jones: A User-Centred Approach to Functions in Excel.</p>
<p><a href="http://research.microsoft.com/en-us/um/people/simonpj/Papers/excel/excel.pdf" rel="nofollow">http://research.microsoft.com/en-us/um/people/simonpj/Papers/excel/excel.pdf</a></p>
]]></content:encoded>
	</item>
</channel>
</rss>
