Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 弦的SumIf_Excel - Fatal编程技术网

Excel 弦的SumIf

Excel 弦的SumIf,excel,Excel,我是否能够对字符串使用SumIf函数?如果不是,UDF是唯一的替代方案吗?或者是否有一种方法可以通过索引实现这一点 如果对应行中的单元格设置为“是”,我将尝试连接表的值 例子: 芝加哥------是的 纽约-----------(空白) 洛杉矶------是的 孟菲斯------是 旧金山——(空白) 结果:在字符编码(ASCII)方面,芝加哥、洛杉矶、孟菲斯的连接不同于求和。SumIf用于求和,不能用于连接。理解其中的差异很重要 我向一位名叫Mike Rickson先生的人推荐这个UDF: F

我是否能够对字符串使用SumIf函数?如果不是,UDF是唯一的替代方案吗?或者是否有一种方法可以通过索引实现这一点

如果对应行中的单元格设置为“是”,我将尝试连接表的值

例子: 芝加哥------是的
纽约-----------(空白)
洛杉矶------是的
孟菲斯------是
旧金山——(空白)


结果:在字符编码(ASCII)方面,芝加哥、洛杉矶、孟菲斯的连接不同于求和。SumIf用于求和,不能用于连接。理解其中的差异很重要

我向一位名叫Mike Rickson先生的人推荐这个UDF:

Function ConcatIf(ByVal compareRange As Range, ByVal xCriteria As Variant, _
    Optional ByVal stringsRange As Range, Optional Delimiter As String) As String
    Dim i As Long, j As Long, criteriaMet As Boolean

    Set compareRange = Application.Intersect(compareRange, _
    compareRange.Parent.UsedRange)

    If compareRange Is Nothing Then Exit Function
    If stringsRange Is Nothing Then Set stringsRange = compareRange
    Set stringsRange = compareRange.Offset(stringsRange.Row - compareRange.Row, _
    stringsRange.Column - compareRange.Column)

    For i = 1 To compareRange.Rows.Count
        For j = 1 To compareRange.Columns.Count
            If (Application.CountIf(compareRange.Cells(i, j), xCriteria) = 1) Then
                ConcatIf = ConcatIf & Delimiter & CStr(stringsRange.Cells(i, j))
            End If
        Next j
    Next i
    ConcatIf = Mid(ConcatIf, Len(Delimiter) + 1)
End Function
用法:


感谢您提供了UDF示例。你是怎么找到它的?我很难找到任何类似的地方。@cardern mrickerson是OzGrid上的一个OzMVP。如果可能的话,你能提供一个链接吗?在谷歌搜索“OzGrid mrickerson”只会返回两个结果,而且两个结果都没有链接到他。。。在OzGrid上搜索该用户也不会返回任何信息。看起来是mikerickson,而不是mrickerson。