将某一列的所有单元格数字数据复制到单个单元格

将某一列的所有单元格数字数据复制到单个单元格

用什么 excel 公式可以将一列的所有单元格数字数据(少数单元格包含数字,少数单元格包含字母数据,而我只想连接数字数据)连接到另一单元格,并用逗号分隔值?例如,如下所示,Q 列包含这样的数据,我想要 o/p,如单元格 R2 中所示

Column Q 

1111111111                
Developing    
Developing    
Developing    
1111111112    
Developing    
1111111113    
Developing    
Developing


R2 cell

1111111112,1111111112,1111111113

答案1

如果您使用的是 Office 365 Excel,那么您可以使用以下数组公式:

=TEXTJOIN(", ",TRUE,IF(ISNUMBER($Q$2:INDEX(Q:Q,MAX(IFERROR(MATCH("zzz",Q:Q),1),IFERROR(MATCH(1E+99,Q:Q),1)))),$Q$2:INDEX(Q:Q,MAX(IFERROR(MATCH("zzz",Q:Q),1),IFERROR(MATCH(1E+99,Q:Q),1))),""))

作为数组公式,退出编辑模式时需要使用 Ctrl-Shift-Enter 而不是 Enter 进行确认。

它将连接 Q 列中的所有数字。

由于数组公式应该限制数据引用,因此:

$Q$2:INDEX(Q:Q,MAX(IFERROR(MATCH("zzz",Q:Q),1),IFERROR(MATCH(1E+99,Q:Q),1)))

自动查找 Q 列中包含数字或文本的最后一个单元格。这样迭代就仅限于数据,并且允许数据集增加或缩小,而无需重置公式引用。

在此处输入图片描述

答案2

如果您的 Excel 版本中没有JOINTEXT(),请尝试以下用户定义函数:

Public Function SpliceNum(rng As Range) As String
    Dim r As Range, v As Variant
    For Each r In rng
        v = r.Value
        If v <> "" Then
            If IsNumeric(v) Then
                SpliceNum = SpliceNum & "," & v
            End If
        End If
    Next r
    SpliceNum = Mid(SpliceNum, 2)
End Function

在此处输入图片描述

相关内容