一元加运算符在Excel公式中做什么?

lor*_*i_m 6 excel vba excel-vba excel-formula

这个看似微不足道的操作在公式中的许多情况下都很有用:

.否则会抛出错误的函数:

QUOTIENT(+A1:A3,4)
WORKDAY(+A1:A3,7)   
Run Code Online (Sandbox Code Playgroud)

.将范围转换为数字 - 即任何文本为零:

N(+A1:C3)
Run Code Online (Sandbox Code Playgroud)

Ç.返回来自不同工作表的混合数据数组:

CELL("contents",IF(1,+INDIRECT({"Sheet1!A1","Sheet2!B2","Sheet3!C3"})))
Run Code Online (Sandbox Code Playgroud)

我对此几乎没有发现 - 也许这是一个新的发现.

这个问题部分是出于利益的考虑,部分是为了看看是否有人可以进一步了解或找到其他可能的应用 - excel或vba相关?

bar*_*ini 5

在一些的那些例子,例如用于WORKDAYQUOTIENT,所述+被一转换范围,以一个阵列

许多老Analysis ToolPak的功能,如WORKDAY,NETWORKDAYS,WEEKNUM等会不会接受一个范围作为参数,但在Excel 2007以后版本的Excel,他们将接受一个数组作为参数-使用+0--(或明显+)将范围转换为数组,所以在Excel 2007中如果使用这样的公式:

=AVERAGE(WEEKNUM(A1:A3))

A1:A3包含日期

....它会返回一个错误

但是这个版本(使用CTRL+ SHIFT+ 输入的数组ENTER)将为您提供周数的平均值:

=AVERAGE(WEEKNUM(+A1:A3))