首页 > 解决方案 > 如何在Excel中的单个单元格中获取学生状态为通过或失败的数字列表

问题描述

我想获取公式,该公式在 Excel 的单个单元格中给出学生状态为通过或失败的逗号分隔列表中的输出。

例如下面的例子:

谢谢你

标签: excelexcel-formulaexcel-2010formulaexcel-2007

解决方案


以下解决方案使用 UDF。首先将以下自定义函数放在常规模块中(Visual Basic 编辑器 >> 插入 >> 模块)...

Function AConcat(a As Variant, Optional Sep As String = "") As String
' Harlan Grove, Mar 2002

    Dim Y As Variant

    If TypeOf a Is Range Then
        For Each Y In a.Cells
            AConcat = AConcat & Y.Value & Sep
        Next Y
    ElseIf IsArray(a) Then
        For Each Y In a
            AConcat = AConcat & Y & Sep
        Next Y
    Else
        AConcat = AConcat & a & Sep
    End If

    AConcat = Left(AConcat, Len(AConcat) - Len(Sep))

End Function

然后尝试以下工作表数组公式,需要用 CONTROL+SHIFT+ENTER 确认...

=SUBSTITUTE(AConcat(IF($B$2:$B$11="Pass",","&$A$2:$A$11,"")),",","",1)

=SUBSTITUTE(AConcat(IF($B$2:$B$11="Fail",","&$A$2:$A$11,"")),",","",1)

推荐阅读