【问题标题】:Collapse Empty Columns Around Date Column in Excel折叠 Excel 中日期列周围的空列
【发布时间】:2015-02-02 23:00:37
【问题描述】:

我有一个 Excel 电子表格,每个标题都有多列。我想将它们折叠成一列。出于某种原因,用户将本应进入一列的内容分散在五列中。 鉴于此:

+------------+-----------+-----------+-----------+-----------+--+
|            |           |    DOB    |           |           |  |
+------------+-----------+-----------+-----------+-----------+--+
|            |           | 1/7/1980  |           |           |  |
|            |           |           |           | 1/30/1947 |  |
|            |           |           | 3/12/1948 |           |  |
|            |           | 1/26/1941 |           |           |  |
|            | 6/26/1951 |           |           |           |  |
| 12/29/1974 |           |           |           |           |  |
+------------+-----------+-----------+-----------+-----------+--+

我想要这个:

DOB
1/7/1980
1/30/1947
3/12/1948
1/26/1941
6/26/1951
12/29/1974

我试过这个,但它会为每个空白列创建世纪之交日期。 文本(A1,"m/d/yyyy")&TEXT(B1,"m/d/yyyy") 。 . .

我怎样才能避免这种情况?还是有更好的办法?

【问题讨论】:

  • 当然,如果您需要使用 vba 删除空列,那是一个完全独立的问题。

标签: vba excel excel-formula


【解决方案1】:

由于 Excel 公式可以添加日期,假设行中的其他 4 个单元格确实为空白,您可以编写以下公式:

=Sum(B1:B5)

【讨论】:

    【解决方案2】:

    发现这个非常酷的自定义函数可以通过Excel VBA function to concatenate non-empty cells with a user defined seperator轻松组合整个范围:

    =ConcatenateRange(B1:B5,"")
    

    使用自定义函数:

    Function ConcatenateRange(ByVal cell_range As Range, _
                        Optional ByVal seperator As String) As String
    
    Dim cell As Range
    Dim newString As String
    Dim cellArray As Variant
    Dim i As Long, j As Long
    
    cellArray = cell_range.Value
    
    For i = 1 To UBound(cellArray, 1)
        For j = 1 To UBound(cellArray, 2)
            If Len(cellArray(i, j)) <> 0 Then
                newString = newString & (seperator & cellArray(i, j))
            End If
        Next
    Next
    
    If Len(newString) <> 0 Then
        newString = Right$(newString, (Len(newString) - Len(seperator)))
    End If
    
    ConcatenateRange = newString
    
    End Function
    

    【讨论】:

      猜你喜欢
      • 2017-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-22
      • 2011-02-20
      • 2012-06-03
      • 1970-01-01
      相关资源
      最近更新 更多