<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Excel 2007 investments in UDFs #1</title><link>http://blogs.msdn.com/excel/archive/2006/05/03/589094.aspx</link><description>For the next few posts, we have a “guest post” from Danny Khen, a program manager on the Excel Services team. Danny is going to talk about UDFs in Excel and Excel Services. Enjoy. UDFs are user-defined worksheet functions – custom functions that you create</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>re: Excel 2007 investments in UDFs #1</title><link>http://blogs.msdn.com/excel/archive/2006/05/03/589094.aspx#589246</link><pubDate>Wed, 03 May 2006 19:31:49 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:589246</guid><dc:creator>Andrew Walaszek</dc:creator><description>Does an Excel Undo mechanism exist for the implementation of managed UDFs? This also applies for any operations performed by a third-party Add-In.&lt;br&gt;&lt;br&gt;Regards,&lt;br&gt;Andrew&lt;br&gt;</description></item><item><title>re: Excel 2007 investments in UDFs #1</title><link>http://blogs.msdn.com/excel/archive/2006/05/03/589094.aspx#589479</link><pubDate>Thu, 04 May 2006 01:23:05 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:589479</guid><dc:creator>Harlan Grove</dc:creator><description>A question I didn't ask in the original blog post on XLLs and UDFs: did you increase the limit on string argument and string return value length to/from XLL UDFs? One of the most frequent hassles with XLL UDFs for string processing is the 255 char limit.</description></item><item><title>re: Excel 2007 investments in UDFs #1</title><link>http://blogs.msdn.com/excel/archive/2006/05/03/589094.aspx#589498</link><pubDate>Thu, 04 May 2006 01:58:58 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:589498</guid><dc:creator>Harlan Grove</dc:creator><description>With regard to the wonderful sample udfs, these have been dealt with ad nauseum in the Excel newsgroups.&lt;br&gt;&lt;br&gt;WehWordM: return n_th word in s delimited by d&lt;br&gt;=MID(s,FIND(CHAR(127),SUBSTITUTE(d&amp;amp;n,&lt;br&gt;d,CHAR(127),4)),FIND(CHAR(127),&lt;br&gt;SUBSTITUTE(s&amp;amp;d,d,CHAR(127),4))&lt;br&gt;-FIND(CHAR(127),SUBSTITUTE(d&amp;amp;s,&lt;br&gt;d,CHAR(127),4)))&lt;br&gt;&lt;br&gt;WehWordCountM: return # words in s delimited by d&lt;br&gt;=1+(LEN(s)-LEN(SUBSTITUTE(s,d,&amp;quot;&amp;quot;)))/LEN(d)&lt;br&gt;&lt;br&gt;Not good examples of &amp;quot;functions that we wish Excel had.&amp;quot;&lt;br&gt;&lt;br&gt;Any chance you could show examples of udfs that *CAN'T* be performed by built-in functions alone (nontrivial udfs)? Maybe something that only needs the arguments, like a generalized string concatenation udf that would concatenate all items in all its arguments into a single string? And don't let noncommutivity stop you: Excel's NPV function seems to be able to iterate through ranges and arrays in a specified order, so generalized concatenation should iterate the same way.</description></item><item><title>re: Excel 2007 investments in UDFs #1</title><link>http://blogs.msdn.com/excel/archive/2006/05/03/589094.aspx#589538</link><pubDate>Thu, 04 May 2006 03:34:56 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:589538</guid><dc:creator>a user</dc:creator><description>I think I understand the reasons for the UDF framework, and for deprecating VBA. But I do not understand why it is called &amp;quot;User Defined Function&amp;quot; when this is clearly, expressly, and exclusively for Developers. &lt;br&gt;&lt;br&gt;What happens to the customer base when Users are deprecated?</description></item><item><title>re: Excel 2007 investments in UDFs #1</title><link>http://blogs.msdn.com/excel/archive/2006/05/03/589094.aspx#589571</link><pubDate>Thu, 04 May 2006 05:00:41 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:589571</guid><dc:creator>Colin Banfield</dc:creator><description>&amp;lt;&amp;lt;WehWordM: return n_th word in s delimited by d &lt;br&gt;=MID(s,FIND(CHAR(127),SUBSTITUTE(d&amp;amp;n, &lt;br&gt;d,CHAR(127),4)),FIND(CHAR(127), &lt;br&gt;SUBSTITUTE(s&amp;amp;d,d,CHAR(127),4)) &lt;br&gt;-FIND(CHAR(127),SUBSTITUTE(d&amp;amp;s, &lt;br&gt;d,CHAR(127),4))) &amp;lt;&amp;lt;&lt;br&gt;&lt;br&gt;Harlan, why would the average user (or even a seasoned user for that matter) prefer to use a formula with thirteen functions (assuming that he/she can figure it out in the first place) over a single function with two arguments? &amp;nbsp;You have to remember, perhaps 90% of all Excel users are not as smart or as masochistic as Harlan Grove. </description></item><item><title>re: Excel 2007 investments in UDFs #1</title><link>http://blogs.msdn.com/excel/archive/2006/05/03/589094.aspx#590041</link><pubDate>Thu, 04 May 2006 20:02:08 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:590041</guid><dc:creator>Harlan Grove</dc:creator><description>Colin,&lt;br&gt;&lt;br&gt;How many current Excel users could recognize the udf code as written in C#? Who is the audience for this particular blog posting?&lt;br&gt;&lt;br&gt;You could write a udf for everything that requires 3 or more built-in function calls. Would that make sense? How many more functions should Excel have? What would be the most useful additional functions?&lt;br&gt;&lt;br&gt;Alternatively, which is easier: remembering how to write longish formulas or remembering a +1000 functions?&lt;br&gt;&lt;br&gt;My point was that there are things that can *ALREADY* be done using built-in functions alone. It'd be better to show examples of new udfs that do things that *CAN'T* be done by udfs alone. A generalized concatenation udf would have shown whether the new XLLs could accept variable numbers of arguments, detect whether any of those arguments were arrays, and if so show how to iterate over them. A udf wrapper around the split method of the string class isn't interesting or illuminating, not to mention there have been newsgroup postings showing VBA udf wrappers around VBA's split function which return the array of tokens.&lt;br&gt;&lt;br&gt;Also, it'd be a good thing to design udfs to match up with Excel's capabilities. When it comes to functions, that means supporting use in array formulas. WehWordM and WehWordCountM should accept arrays of strings as 1st arg or arrays of positions as 2nd arg and return array results. A modest modification to my long formula can do that. The udfs linked to by the blog posting can't. Again, for the intended audience for this blog posting, wouldn't it have been useful to show how (whether) new XLL udfs return array results? If those udfs can only return scalars, claiming it provides V1 features is an overstatement.</description></item><item><title>re: Excel 2007 investments in UDFs #1</title><link>http://blogs.msdn.com/excel/archive/2006/05/03/589094.aspx#590200</link><pubDate>Thu, 04 May 2006 23:55:55 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:590200</guid><dc:creator>Danny Khen</dc:creator><description>Thanks everyone for the feedback and questions! Some answers (in order of appearance):&lt;br&gt;&lt;br&gt;Andrew: I was discussing server-side UDFs, and we don't actually have editing capabilities on the server, so I am not sure what kind of Undo mechanism you are talking about. Please drop me an email thru the &amp;quot;Email&amp;quot; link at the top and we can discuss.&lt;br&gt;&lt;br&gt;Harlan: Your comments and the discussion that followed are interesting, however I was not trying to demonstrate the implementation of any particular feature. The point here is to show how to create managed UDFs for Excel Services. UDFs as their name implies are all about your own extensibility needs, whatever they may be; we're just providing the framework and defining the interface.&lt;br&gt;&lt;br&gt;The server UDFs can indeed return an array and be called in an array formula. You'd need to define your return value as object[] or System.Double[,] etc. We will have full reference documentation as part of the Office SharePoint Server 2007 SDK, which is due to be published with Office Beta2 as far as I know.&lt;br&gt;&lt;br&gt;A user: &amp;quot;User-Defined Functions&amp;quot; are just an industry term. They refer to functions defined by developer users, as opposed to end-users. We did not deprecate VBA in Excel; however it is not supported on Excel Services, since we believe that managed extensibility is the way to go for a server product (and we will be extending what we support in this area in future releases).&lt;br&gt;&lt;br&gt;We're going to have a follow-up post on this blog to show how UDFs in existing XLL addins can be used on the server thru managed wrappers - stay tuned.</description></item><item><title>re: Excel 2007 investments in UDFs #1</title><link>http://blogs.msdn.com/excel/archive/2006/05/03/589094.aspx#590211</link><pubDate>Fri, 05 May 2006 00:04:35 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:590211</guid><dc:creator>Danny Khen</dc:creator><description>Harlan, I missed your first question about the limit on string argument and string return value length.&lt;br&gt;Short answer - we did increase the limit. A bit longer answer: We added Unicode string types, and for those, you can pass strings up to 65535 characters long. Of course, depending on the purpose of the string, the actual limit may be smaller; e.g. if you are setting a string into a cell, the Excel 2007 limit on cell string length is 32767 chars, so anything longer will be truncated.</description></item><item><title>re: Excel 2007 investments in UDFs #1</title><link>http://blogs.msdn.com/excel/archive/2006/05/03/589094.aspx#591139</link><pubDate>Sat, 06 May 2006 01:38:54 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:591139</guid><dc:creator>Colin Banfield</dc:creator><description>Hi Harlan,&lt;br&gt;&lt;br&gt;&amp;lt;&amp;lt;How many current Excel users could recognize the udf code as written in C#? Who is the audience for this particular blog posting?&amp;lt;&amp;lt;&lt;br&gt;&lt;br&gt;Oh, I was thinking of the convenience of the UDF to the end user, who woundn't know or care what code the UDF is written in.&lt;br&gt;&lt;br&gt;&amp;lt;&amp;lt;You could write a udf for everything that requires 3 or more built-in function calls. Would that make sense? How many more functions should Excel have? What would be the most useful additional functions?&amp;lt;&amp;lt;&lt;br&gt;&lt;br&gt;There are few if any ATP functions (for example) that can't be emulated with basic math functions. &amp;nbsp;The ATP functions are popular among users nonetheless.&lt;br&gt;&lt;br&gt;&amp;lt;&amp;lt;My point was that there are things that can *ALREADY* be done using built-in functions alone. It'd be better to show examples of new udfs that do things that *CAN'T* be done by udfs alone. A generalized concatenation udf would have shown whether the new XLLs could accept variable numbers of arguments, detect whether any of those arguments were arrays, and if so show how to iterate over them. A udf wrapper around the split method of the string class isn't interesting or illuminating, not to mention there have been newsgroup postings showing VBA udf wrappers around VBA's split function which return the array of tokens.&amp;lt;&amp;lt;&lt;br&gt;&lt;br&gt;No argument here, when viewed from the developer's perspective.&lt;br&gt;&lt;br&gt;&amp;lt;&amp;lt;Also, it'd be a good thing to design udfs to match up with Excel's capabilities. When it comes to functions, that means supporting use in array formulas. WehWordM and WehWordCountM should accept arrays of strings as 1st arg or arrays of positions as 2nd arg and return array results. A modest modification to my long formula can do that. The udfs linked to by the blog posting can't. Again, for the intended audience for this blog posting, wouldn't it have been useful to show how (whether) new XLL udfs return array results? If those udfs can only return scalars, claiming it provides V1 features is an overstatement. &amp;lt;&amp;lt;&lt;br&gt;&lt;br&gt;Well, I try to avoid array formulas wherever possible but I have to admit, there are times where they're darned convemient to use. &amp;nbsp;Personally, I'd like to examples of XLL UDFs that support 3D ranges.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;</description></item><item><title>re: Excel 2007 investments in UDFs #1</title><link>http://blogs.msdn.com/excel/archive/2006/05/03/589094.aspx#591192</link><pubDate>Sat, 06 May 2006 02:50:38 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:591192</guid><dc:creator>Danny Khen</dc:creator><description>Ranges / array formulas:&lt;br&gt;In his blog, Shahar had a post with sample code for UDFs that receive and return both 1- and 2- D arrays. These can be used in array formulas.&lt;br&gt;Here's the link:&lt;br&gt;&lt;a rel="nofollow" target="_new" href="http://blogs.msdn.com/cumgranosalis/archive/2006/04/11/WebServiceAsyncUdfs.aspx"&gt;http://blogs.msdn.com/cumgranosalis/archive/2006/04/11/WebServiceAsyncUdfs.aspx&lt;/a&gt;</description></item><item><title>re: Excel 2007 investments in UDFs #1</title><link>http://blogs.msdn.com/excel/archive/2006/05/03/589094.aspx#592525</link><pubDate>Mon, 08 May 2006 20:30:36 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:592525</guid><dc:creator>Harlan Grove</dc:creator><description>Colin,&lt;br&gt;&lt;br&gt;I'd also like udf examples that use 3D references, but that'd require a fundamental, nontrivial addition to Excel's object model since there are no such objects available through XL11.</description></item><item><title>re: Excel 2007 investments in UDFs #1</title><link>http://blogs.msdn.com/excel/archive/2006/05/03/589094.aspx#592587</link><pubDate>Mon, 08 May 2006 21:54:53 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:592587</guid><dc:creator>Harlan Grove</dc:creator><description>Colin,&lt;br&gt;&lt;br&gt;Goofed. I was thinking in terms of VBA udfs, and there are no 3D references there. Since it appears that udf support is moving away from VBA, there may never be VBA support for 3D references. But XLL udfs through XL11 accept 3D references, Longre's MOREFUNC.XLL's THREED udf being the principal example I know of.</description></item><item><title>Making Excel Services UDFs Work in Excel 2007</title><link>http://blogs.msdn.com/excel/archive/2006/05/03/589094.aspx#735562</link><pubDate>Fri, 01 Sep 2006 20:32:55 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:735562</guid><dc:creator>Microsoft Excel 2007 (nee Excel 12)</dc:creator><description>Shahar Prish, one of the developers on the Excel Services team, has recently posted a few entries on...</description></item><item><title>Excel su Sharepoint Server come client server</title><link>http://blogs.msdn.com/excel/archive/2006/05/03/589094.aspx#766121</link><pubDate>Fri, 22 Sep 2006 15:55:16 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:766121</guid><dc:creator>Tecnologie .NET (Dotnet)</dc:creator><description>Excel Sharepoint UDF server side</description></item><item><title>Excel su Sharepoint Server 2007 come client server</title><link>http://blogs.msdn.com/excel/archive/2006/05/03/589094.aspx#939159</link><pubDate>Fri, 03 Nov 2006 09:25:04 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:939159</guid><dc:creator>Tecnologie .NET (Dotnet)</dc:creator><description>&lt;p&gt;Excel Sharepoint UDF server side&lt;/p&gt;
</description></item><item><title>Excel su Sharepoint Server 2007 come client server</title><link>http://blogs.msdn.com/excel/archive/2006/05/03/589094.aspx#1053557</link><pubDate>Fri, 10 Nov 2006 10:51:29 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1053557</guid><dc:creator>Tecnologie .NET (Dotnet)</dc:creator><description>&lt;p&gt;Excel-Sharepoint-Services-UDF Serverside Excel&lt;/p&gt;
</description></item><item><title>Christian Stich on Excel Services:  Financial option valuation implemented with Monte Carlo simulation using multithreaded User Defined Functions (UDFs)</title><link>http://blogs.msdn.com/excel/archive/2006/05/03/589094.aspx#4394348</link><pubDate>Wed, 15 Aug 2007 06:25:47 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4394348</guid><dc:creator>Microsoft Excel</dc:creator><description>&lt;p&gt;Today’s author: Christian Stich, a program manager on the Excel Services team who likes to combine his&lt;/p&gt;
</description></item><item><title>Christian Stich on Excel Services:  Financial option valuation implemented with Monte Carlo simulation using multithreaded User Defined Functions (UDFs)</title><link>http://blogs.msdn.com/excel/archive/2006/05/03/589094.aspx#4394487</link><pubDate>Wed, 15 Aug 2007 06:37:41 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4394487</guid><dc:creator>Noticias externas</dc:creator><description>&lt;p&gt;Today’s author: Christian Stich, a program manager on the Excel Services team who likes to combine his&lt;/p&gt;
</description></item><item><title>Building an Asset Tracking Application in Excel Services – Part 3b of 5</title><link>http://blogs.msdn.com/excel/archive/2006/05/03/589094.aspx#8681730</link><pubDate>Wed, 02 Jul 2008 20:01:52 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8681730</guid><dc:creator>Microsoft Excel</dc:creator><description>&lt;p&gt;Today's author, Dan Parish, continues his discussion on building an Excel Services solution. In Part&lt;/p&gt;
</description></item><item><title>Building an Asset Tracking Application in Excel Services ??? Part 3b of 5, Microsoft Office developer blog</title><link>http://blogs.msdn.com/excel/archive/2006/05/03/589094.aspx#8732016</link><pubDate>Mon, 14 Jul 2008 22:28:01 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8732016</guid><dc:creator>Building an Asset Tracking Application in Excel Services ??? Part 3b of 5, Microsoft Office developer blog</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://ms-office.yourbloggingpro.com/2008/07/building-an-asset-tracking-application-in-excel-services-%e2%80%93-part-3b-of-5/"&gt;http://ms-office.yourbloggingpro.com/2008/07/building-an-asset-tracking-application-in-excel-services-%e2%80%93-part-3b-of-5/&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>iterate formula in excel</title><link>http://blogs.msdn.com/excel/archive/2006/05/03/589094.aspx#8738471</link><pubDate>Wed, 16 Jul 2008 16:14:55 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8738471</guid><dc:creator>iterate formula in excel</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://devyn.onlinevidsguide.info/iterateformulainexcel.html"&gt;http://devyn.onlinevidsguide.info/iterateformulainexcel.html&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>Building an Asset Tracking Application in Excel Services ?????????????? Part 3b of 5, Microsoft Office developer blog</title><link>http://blogs.msdn.com/excel/archive/2006/05/03/589094.aspx#8751508</link><pubDate>Sat, 19 Jul 2008 00:10:24 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8751508</guid><dc:creator>Building an Asset Tracking Application in Excel Services ?????????????? Part 3b of 5, Microsoft Office developer blog</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://ms-office.yourbloggingpro.com/2008/07/building-an-asset-tracking-application-in-excel-services-a%c2%80%c2%93-part-3b-of-5.html"&gt;http://ms-office.yourbloggingpro.com/2008/07/building-an-asset-tracking-application-in-excel-services-a%c2%80%c2%93-part-3b-of-5.html&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>UDFs in Microsoft Excel 2007 services &amp;laquo; Knowledgebase</title><link>http://blogs.msdn.com/excel/archive/2006/05/03/589094.aspx#9521717</link><pubDate>Tue, 31 Mar 2009 09:51:17 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9521717</guid><dc:creator>UDFs in Microsoft Excel 2007 services &amp;laquo; Knowledgebase</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://roelvanlisdonk.wordpress.com/2009/03/31/udfs-in-microsoft-excel-2007-services/"&gt;http://roelvanlisdonk.wordpress.com/2009/03/31/udfs-in-microsoft-excel-2007-services/&lt;/a&gt;&lt;/p&gt;
</description></item><item><title> Microsoft Excel Excel 2007 investments in UDFs 1 | debt consolidator</title><link>http://blogs.msdn.com/excel/archive/2006/05/03/589094.aspx#9754999</link><pubDate>Mon, 15 Jun 2009 22:57:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9754999</guid><dc:creator> Microsoft Excel Excel 2007 investments in UDFs 1 | debt consolidator</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://mydebtconsolidator.info/story.php?id=13358"&gt;http://mydebtconsolidator.info/story.php?id=13358&lt;/a&gt;&lt;/p&gt;
</description></item></channel></rss>