有人知道 Excel 2010 中是否有联合运算符吗?
我尝试过;
和,但,
似乎都不起作用。例如,、=E2:E3;E4:E6
和=E2:E3,E4:E6
总是返回错误。{=E2:E3;E4:E6}
{=E2:E3,E4:E6}
答案1
Excel 的“union”运算符一直是逗号*(例如A1:A9,F2:G4
),而其交集运算符为单个空格。并不是说它不起作用,只是并非所有 Excel 函数都能接受这种引用方法。
以下列出一些可以做到的:
SUM()
COUNT()
COUNTA()
SMALL()
LARGE()
MIN()
MAX()
AVERAGE()
但是,仔细想想,,
并不完全是数学上的 [并集][1],而是集合加法。例如,=COUNT(A1,A1,A1)
返回3
。如果它真的是一个并集运算符,那么这个公式将返回1
。
*一些欧洲版本使用分号 ( ;
),具体取决于计算机的区域设置。
(进一步阅读:Microsoft Office:计算运算符和优先级) [1]:http://en.wikipedia.org/wiki/Union_%28set_theory%29
答案2
如果要对值进行求和,可以这样写:
=SUM(I3:M3;I4:M4;I5:M5)
如果你想合并文本,你可以这样写(或者使用鼠标正如@soandos 所说):
=CONCATENATE(A1;B1;C1;D1)
看起来你想写。但据我所知,这是不可能的(出现错误)。=CONCATENATE(A1:D1)
答案3
简而言之,答案是否定的。
但是,对于某些功能,您可以使用以下解决方法,
=COUNTA(B1:B3,A2:C2)-COUNTA(B1:B3 A2:C2)
请注意,这些范围有一个共同的单元格(即相交)。某些函数使用“,”来允许提供多个范围作为参数。这不是并集,因为这将包含两次相交单元格。它将被计算两次。因此,通过减去交集,您可以得到正确的答案。
该技术应与以下技术配合使用:
SUM() COUNT() COUNTA()
它不适用于:
SMALL() LARGE()
该公式可以修改为适用于:
AVERAGE()
永远不需要MAX and MIN
!
它像这样工作并且没有 UNION 运算符真是太痛苦了。
在 VBA 中,您可以编写一个创建适当联合的函数:
请参阅此处了解详情http://www.cpearson.com/excel/BetterUnion.aspx
IE
Function ProperUnion(ParamArray Ranges() As Variant) As Range
''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' ProperUnion
' This provides Union functionality without duplicating
' cells when ranges overlap. Requires the Union2 function.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Dim ResR As Range
Dim N As Long
Dim R As Range
If Not Ranges(LBound(Ranges)) Is Nothing Then
Set ResR = Ranges(LBound(Ranges))
End If
For N = LBound(Ranges) + 1 To UBound(Ranges)
If Not Ranges(N) Is Nothing Then
For Each R In Ranges(N).Cells
If Application.Intersect(ResR, R) Is Nothing Then
Set ResR = Union2(ResR, R)
End If
Next R
End If
Next N
Set ProperUnion = ResR
End Function
答案4
可以使用额外的冒号而不是逗号来指定不相交的范围:
例如,使用 LINEST,当已知的 X 来自不相交的范围时:
LINEST(B1:B20, A1:A20:C1:C20, True)
注意 A20 和 C1 之间的冒号。
尽管似乎大多没有记录,但这在任何功能中都有效。
(此处的最佳答案可能曾经正确。但在最近的 Excel 版本中并非如此)