【问题标题】:How to find all non blank cells in an array of cells?如何在单元格数组中找到所有非空白单元格?
【发布时间】:2013-12-09 13:56:14
【问题描述】:

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

谢谢

【问题讨论】:

  • 如果 A1、B1、C1 和 D1 都是非空白的,你如何将它们全部放在 E1 中?在不知道您要做什么的情况下,尚不清楚解决方案是什么。

标签: excel excel-formula


【解决方案1】:

首先输入以下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

【讨论】:

  • 谢谢,但我应该避免在我的工作簿中使用 VBA。还有其他解决办法吗?
  • 当然......蛮力......将单元格块映射到一个“帮助”列中,然后在“帮助”列上使用标准公式。
  • 我不知道如何将它们映射到一个辅助列中。 (这就是我要找的。)你介意解释一下吗。
  • 再次感谢 Gary 的学生!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多