2013-12-09 169 views
0

我有一些数据在$ A $ 1:$ D $ 50。如何使用公式(常规或数组1)将所有非空白单元格放入单个列(例如E)。我发现的所有其他例子都是关于在单列或单行中找到空白单元格的。如何在单元格数组中找到所有非空白单元格?

由于

+0

如果A1,B1,C1和D1都非空,你将如何把它们都在E1在一起吗?不知道你在做什么,目前还不清楚解决方案是什么。 – jmac

回答

2

首先输入以下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并输入以下阵列式

=非空白(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

+0

谢谢,但我应该避免在我的工作簿中使用VBA。还有其他解决方案吗? – Mimi

+0

当然.........蛮力......将单元格块映射到单个“帮助器”列中,然后在“帮助器”列中使用标准公式。 –

+0

我不知道如何将它们映射到单个帮助器列中。 (这就是我要找的。)你介意解释一下吗? – Mimi

相关问题