【发布时间】:2013-12-09 13:56:14
【问题描述】:
我在 $A$1:$D$50 中有一些数据。如何使用公式(常规或数组之一)将所有非空白单元格放入单个列(例如 E)。我发现的所有其他示例都是关于在单列或单行中查找空白单元格。
谢谢
【问题讨论】:
-
如果 A1、B1、C1 和 D1 都是非空白的,你如何将它们全部放在 E1 中?在不知道您要做什么的情况下,尚不清楚解决方案是什么。
标签: excel excel-formula
我在 $A$1:$D$50 中有一些数据。如何使用公式(常规或数组之一)将所有非空白单元格放入单个列(例如 E)。我发现的所有其他示例都是关于在单列或单行中查找空白单元格。
谢谢
【问题讨论】:
标签: excel excel-formula
首先输入以下UDF:
Public Function NonBlanks(rng As Range) As Variant
Dim c As Collection, r As Range, CC As Long, i As Long
Set c = New Collection
For Each r In rng
If r.Value <> "" Then
c.Add (r.Value)
End If
Next r
CC = c.Count
ReDim Arout(1 To CC, 1 To 1) As Variant
For i = 1 To CC
Arout(i, 1) = c(i)
Next i
NonBlanks = Arout
End Function
然后选择 E1 到 E200 并输入以下数组公式
=NonBlanks(A1:D50)
编辑#1:
如果没有 VBA,请选择一个“帮助”列,例如列 F。在 F1 中输入:
=IF(OFFSET($A$1,MOD(ROW()-1,50),INT((ROW()-1)/50))="","",OFFSET($A$1,MOD(ROW()-1,50),INT((ROW()-1)/50)))
并通过 F200
向下复制然后将您的标准公式应用于列 F
编辑#2:
参考:
按照标准公式,我的意思是Pearson's method
【讨论】: