gpt4 book ai didi

excel - 字符串的 SumIf

转载 作者:行者123 更新时间:2023-12-03 02:51:14 26 4
gpt4 key购买 nike

我可以对字符串使用 SumIf 函数吗?如果不是,UDF 是唯一的选择还是有办法通过索引以某种方式实现这一点?

如果相应行中的单元格设置为"is",我将尝试连接表的值。

示例:

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

结果:芝加哥、洛杉矶、孟菲斯

最佳答案

在字符编码 (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

用法:

1

2

关于excel - 字符串的 SumIf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19552704/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com