ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 8781|回复: 14

对编辑公式功能的改进 Part 3:新增函数

[复制链接]

TA的精华主题

TA的得分主题

发表于 2006-4-1 23:22 | 显示全部楼层 |阅读模式

Formula editing improvements Part 3: new functions

In addition to improving the formula editing UI in Excel 12, the team has spent some time adding to Excel’s function library.  Over the years, customers have found new ways to combine and leverage the functions in Excel to build all sorts of things, but there remain many areas where our customers would like to see need new capability. This release, we have targeted three areas in which to improve our function library – the Analysis ToolPak, SQL Server Analysis Services, and the most common requests we hear from customers.

除了改进编辑公式的界面外,我们还在Excel 12的内置函数库上花了些功夫。多年以来,用户挖掘出许多新方法,整合和发挥Excel函数的功能,创建各式各样的公式。虽然如此,用户还是期望拥有更多新的函数。此版本中,我们瞄准了三个方面来扩充Excel内置函数库,它们是——分析工具库,SQL Server Analysis Services和用户提出的最具代表性的需求。

[Point=2]
  

First, we have fully integrated the Analysis ToolPak functions into the Excel function library, making these functions first-class citizens and eliminating issues relating to the fact that they had been delivered as an add-in in the past.  Users already find a great deal of value in these functions and, from Excel 12 on, they can rely on them to simply work the way the rest of the Excel function library works. This means users no longer have to run the add-in to use the functions, the functions will show up in Formula Autocomplete (see previous post), the functions will offer the same tooltips as other native Excel functions, etc.

首先,我们把分析工具库函数整合到Excel内置函数库中,使其成为“一等公民”,并取消了原来的加载宏。这些函数对用户十分有价值。从Excel 12起,它们就可以和其它Excel内置函数一样方便地使用。这意味着,用户不需要加载宏,可以直接使用这些函数。它们会出现在Formula AutoComplete功能提供的下拉列表中(见前面的帖子),且和其他内置函数一样也有相应的功能提示。

Second, we have added a new set of functions that allow users to extract information from SQL Server Analysis Services. For the benefit of readers that are not familiar with SQL Server Analysis Services, let me give you a really high-level overview.  In addition to its relational database product, SQL Server includes a feature named Analysis Services which provides business intelligence and data mining capabilities (for those interested, more information can be found here). In Excel 12, we have added a set of functions that give users the ability to retrieve SQL Server Analysis Services data directly into cells. There is a fair bit to cover in this area, so I will write a few posts on these formulas in a few weeks.

第二,我们还新增了一套函数,允许用户从SQL Server Analysis Services中获取数据。考虑到一些读者并不熟悉SQL Server Analysis Services,我先简单地概括一下。除了相关数据库产品外,SQL Server 还包括一个称为Analysis Services 的功能,提供商业智能和数据挖掘能力(有兴趣的读者可以在这里找到更多信息)。在Excel 12 中,这些新增的函数可从SQL Server Analysis Services 直接获取数据,存放到单元格里。由于涉及面较广,接下来的几周里,我会再写些帖子介绍这些函数。

Third, we’ve added five commonly requested functions to the Excel function library:

第三,我们新增了5个在用户提出的需求中具有代表性的函数,作为Excel的内置函数:

  • IFERROR


  • AVERAGEIF


  • AVERAGEIFS


  • SUMIFS


  • COUNTIFS

Here is more detail on each:

下面是这5个函数的介绍:
IFERROR(Value, value_if_error)

The most common request we hear in the area of functions is something to simplify error checking.  For example, if a user wants to catch errors in a VLOOKUP and use their own error text opposed to Excel’s error, they have to do something like this using the IF and ISERROR functions:

我们收到关于函数的最具普遍性的需求,是用户要求简化错误值的处理过程。例如,想要截获VLOOKUP计算结果中的错误值,并将其替换为用户自定义的错误提示,就不得不采用像IF和ISERROR这样的函数组合。

=IF(ISERROR(VLOOKUP("Dave", SalesTable, 3, FALSE)), " Value not found", VLOOKUP("Dave", SalesTable, 3, FALSE))

As you can see, users need to repeate the VLOOKUP formula twice.  This has a number of problems.  First, it is hard to read and hard to maintain – if you want to change a formula, you have to do it twice.  Second, it can affect performance, because formulas are quite often run twice. The IFERROR function solves these problems, enabling customers to easily trap and handle formula errors. Here is an example of how a user could use it in the same situation:

如您所见,这里两次运用了VLOOKUP公式。这样做会有几个问题。首先,维护公式比较麻烦,如果你想改动公式,就不得不修改两处。其次,它影响运算速度,公式往往会被多运算一遍。IFERROR函数解决了这些问题,它可以让用户方便地截获并处理公式算出的错误值。下例,我们采用IFERROR函数处理上述的情形:

=IFERROR(VLOOKUP(“Bob”, SalesTable, 3, false), “Value not found”)

Less to author, less to maintain, faster performance.

与之前的公式相比较,该公式书写少了,维护少了,运算速度也更快了。


AVERAGEIF(Range, Criteria, [Average
    Range])

Another very common request is for a single function to conditionally average a range of numbers – a complement to SUMIF and COUNTIF.  Accordingly, we have added AVERAGEIF, allowing users to easily average a range based on a specific criteria.  Here is an example that returns the average of B2:B5 where the corresponding value in column A is greater than 250,000:

另一个用户普遍关心的需求是,想要一个条件平均函数作为SUMIF和COUNTIF的补充。相应地,我们新增了AVERAGEIF函数,对在一定范围内满足某条件的数据进行求平均值。例如,在B2:B5单元格区域中按条件求平均值,条件是A列与之相对应的单元格的值大于250000。

=AVERAGEIF(A2:A5, “>250000”, B2:B5)


SUMIFS(sum_range, criteria_range1, criteria1 [,criteria_range2, criteria2…])
COUNTIFS(criteria_range1, criteria1 [,criteria_range2, criteria2…])
AVERAGEIFS(average_range, criteria_range1, criteria1 [,criteria_range2, criteria2…])

A third very common question we hear is “how do I sum/count/average a range with multiple criteria”.  For example, if a user had the following range, how could they sum “Value” where Fruit = “Apple” and Value = “One”.  (译者注:Value = “One”应该改为Number= “One”)

第三个非常有代表性的问题是,“如何对一个范围的数据进行多条件的汇总/计数/平均”。 举例,如图所示,怎样对满足Fruit = “Apple” 且 Number= “One”的Value列的数值求和。


此主题相关图片如下:

There are a number of ways to do this in Excel 2003 – for example, our user could array-enter the following formula:

在Excel2003中,有许多方法可以做到这点——比如,我们可用数组公式的方式输入下面的公式:

=SUM(IF(C2:C17="Apple", IF(D2:D17="One", B2:B17, 0), 0))

But the formula is hard to set up correctly, many users do not know about array formulas, and it is harder to read.

但是,对许多不了解数组公式的用户来说,正确地创建这个公式并不容易。而且,数组公式比较难理解。

In Excel 12, this task will be much simpler using the SUMIFS formula:

Excel 12 中我们仅用SUMIFS一个函数就可方便地做到:

=SUMIFS(B3:B18, C3:C18,"=Apple", D3:D18, "=One")

The formula is much simpler to write, easier to read, and doesn’t require array entry.  

这个公式书写起来简单,理解起来也容易,而且不必以数组公式的方式输入。

COUNTIFS and AVERAGEIFS, also new to Excel 12, work the same way with the same benefits.

COUNTIFS 和 AVERAGEIFS 也是Excel 12 的新函数,而且也有着一样的好处。

That sums up our new functions (more detail to come on the Analysis Server functions later though).  Next up… Formula Editing Part 4: Defined Names.

以上是Excel 12所有的新函数。(当然,更多的内容在之后的Analysis Server函数中还会涉及)下期预告: 编辑公式 Part 4:定义名称。

[/Point]

Published Thursday, October 20, 2005 2:28 PM by David Gainer
   
Filed Under:
Formulas and functions
  

注:本文翻译自http://blogs.msdn.com/excel
   ,原文作者为
David Gainera Microsoft employee)Excel Home 授权转载。严禁任何人以任何形式转载,违者必究。

[此贴子已经被作者于2008-1-23 17:53:19编辑过]

对编辑公式功能的改进 Part 3:新增函数

对编辑公式功能的改进 Part 3:新增函数

TA的精华主题

TA的得分主题

发表于 2006-4-2 09:47 | 显示全部楼层
增加了部分函数后是不是又会多一些所谓的隐藏函数啊?比如DATEIF之类。版主们翻译的辛苦了!

TA的精华主题

TA的得分主题

发表于 2006-4-2 10:45 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
增加了部分函数后是不是又会多一些所谓的隐藏函数啊?

TA的精华主题

TA的得分主题

发表于 2006-4-2 21:23 | 显示全部楼层
现在就预习了几个新函数了,高兴.

TA的精华主题

TA的得分主题

发表于 2006-4-6 15:05 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
新增的这几个函数都很好用。

TA的精华主题

TA的得分主题

发表于 2006-4-6 23:56 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
以下是引用zhaxinbo在2006-4-2 9:47:38的发言:
增加了部分函数后是不是又会多一些所谓的隐藏函数啊?比如DATEIF之类。版主们翻译的辛苦了!

按原文的意思,Excel2003的分析工具库-隐藏函数(好象应该是分析工具库中所有函数,并非VBA函数)将直接纳入内置函数库中(Datedif应该包含的),以后就不必再使用加载宏就可以使用了。

我想MS另外应该还会增加一些隐藏函数的。呵呵。。。

而且看后面的回复,好象MS这次没有动CONCATENATE函数,如果进行了优化,那就太令大家惊喜了:)

[此贴子已经被作者于2006-4-7 0:07:44编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-4-7 07:20 | 显示全部楼层
以下是引用gdliyy在2006-4-6 23:56:49的发言:

按原文的意思,Excel2003的分析工具库-隐藏函数(好象应该是分析工具库中所有函数,并非VBA函数)将直接纳入内置函数库中(Datedif应该包含的),以后就不必再使用加载宏就可以使用了。

我想MS另外应该还会增加一些隐藏函数的。呵呵。。。

而且看后面的回复,好象MS这次没有动CONCATENATE函数,如果进行了优化,那就太令大家惊喜了:)


分析工具库实际上是由两个部分组成的。第一部分不是函数,是对金融和科学数据分析提供的界面和相应工具;第二部分才是为分析工具库提供的VBA函数。分析工具库中所有函数最后都是VBA函数的形式来写的,所以翻译时才强调是指VBA函数。

另原文没有表达“Excel2003的分析工具库-隐藏函数”的意思,事实上分析工具库-VBA函数并非是隐藏函数,而是需要加载宏的函数。

CONCATENATE好像没有变化。我想你的意思是希望有可以处理数组元素文本连接的函数吧。好像没有。

[此贴子已经被作者于2006-4-7 7:48:39编辑过]

TA的精华主题

TA的得分主题

发表于 2006-4-7 12:38 | 显示全部楼层
以下是引用apolloh在2006-4-7 7:20:41的发言:

分析工具库实际上是由两个部分组成的。第一部分不是函数,是对金融和科学数据分析提供的界面和相应工具;第二部分才是为分析工具库提供的VBA函数。分析工具库中所有函数最后都是VBA函数的形式来写的,所以翻译时才强调是指VBA函数。

另原文没有表达“Excel2003的分析工具库-隐藏函数”的意思,事实上分析工具库-VBA函数并非是隐藏函数,而是需要加载宏的函数。

CONCATENATE好像没有变化。我想你的意思是希望有可以处理数组元素文本连接的函数吧。好像没有。

不好意思,隐藏函数是接上一个朋友的问题来回复的:)

但值得一提的是,我们不加载分析工具库-VBA函数(只加载分析工具库),为何WEEKNUM这样的函数也能运行呢?

另外重新更正:象Datedif()函数确实好象是隐藏函数,它并不是分析工具库的VBA函数,不加载也能正常运行的,只是在MS的帮助中无法找到,不知这样的函数有多少?

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-4-7 14:42 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
以下是引用gdliyy在2006-4-7 12:38:10的发言:


但值得一提的是,我们不加载分析工具库-VBA函数(只加载分析工具库),为何WEEKNUM这样的函数也能运行呢?

我初步判断,应该是前者包含了后者吧?有待考证。

TA的精华主题

TA的得分主题

发表于 2006-10-29 16:25 | 显示全部楼层

呵呵,如果可以加上多条件查找的就更好了:例如Vlookup()只可以单条件的第一个数据,如果可以加一个函数查找多条件的第x个数据就更好了(容易使用的)。

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-23 01:35 , Processed in 0.054097 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表