SumIf 与字符串?
SumIf with Strings?
这可能是一个愚蠢的问题,如果是,我深表歉意。我在 excel 中有一个 table:
a 列.............b 列
1 属性1......问题x
2 属性2.......问题
3 属性3......问题
4 属性1......问题一
我想知道是否可以使用 sumif(或任何类似的公式)在一个单元格中添加问题,指的是某个 属性。例如:
我会
a 列.............b 列
1 属性1......问题x问题a
问题是我不知道从哪里开始。我尝试使用 sumif 但出现错误。可能是因为我正在尝试添加字符串。我尝试将 vlookup 与 sumif 混合使用,但这也没有产生任何结果。我被困在这里了。感谢您的帮助!
我不是 100% 确定,但我认为您可能需要为此使用 VBA。您可以尝试创建以下自定义函数:
在 sheet 中创建命名范围属性和问题。
单击 ALT+F11 打开 VBA 编辑器。
按插入 --> 模块
写代码
'
Function ConcatIF(Property As String, PropertyRange As Range, ProblemRange As Range) As String
Dim counter As Integer
Dim result As String
result = ""
Dim row As Range
counter = 1
For Each row In PropertyRange.Rows
If (Property = row.Cells(1,1).Value) Then
result = result + ProblemRange.Cells(counter,1).Value + " "
End If
counter = counter +1
Next row
ConcatIF = result
End Function
因为我在写这篇文章的机器上没有excel,我只能在另一台机器上测试它,因此这段代码中可能存在拼写错误。
确保你在创建的模块中编写代码,不能写在Sheet的代码中,必须是模块。
此函数可以像 sum、average 和 if 一样作为常规函数调用。在另一个 sheet 上创建一个包含您所有属性的唯一列表。 A 列中的属性,然后在 B 列中可以调用函数。假设第 1 行用于标题,写下以下内容并复制下来。
=ConcatIF(A2,properties,problems)
注意!!!!这段代码很快就会失控。它需要进行(属性数量)x(property/problem 对数量)比较,所以如果这个数字很大,它可能会减慢你的 sheet.
可能有更快的方法,但这是我的想法。
这可能是一个愚蠢的问题,如果是,我深表歉意。我在 excel 中有一个 table:
a 列.............b 列
1 属性1......问题x
2 属性2.......问题
3 属性3......问题
4 属性1......问题一
我想知道是否可以使用 sumif(或任何类似的公式)在一个单元格中添加问题,指的是某个 属性。例如: 我会
a 列.............b 列
1 属性1......问题x问题a
问题是我不知道从哪里开始。我尝试使用 sumif 但出现错误。可能是因为我正在尝试添加字符串。我尝试将 vlookup 与 sumif 混合使用,但这也没有产生任何结果。我被困在这里了。感谢您的帮助!
我不是 100% 确定,但我认为您可能需要为此使用 VBA。您可以尝试创建以下自定义函数:
在 sheet 中创建命名范围属性和问题。
单击 ALT+F11 打开 VBA 编辑器。
按插入 --> 模块
写代码
'
Function ConcatIF(Property As String, PropertyRange As Range, ProblemRange As Range) As String
Dim counter As Integer
Dim result As String
result = ""
Dim row As Range
counter = 1
For Each row In PropertyRange.Rows
If (Property = row.Cells(1,1).Value) Then
result = result + ProblemRange.Cells(counter,1).Value + " "
End If
counter = counter +1
Next row
ConcatIF = result
End Function
因为我在写这篇文章的机器上没有excel,我只能在另一台机器上测试它,因此这段代码中可能存在拼写错误。
确保你在创建的模块中编写代码,不能写在Sheet的代码中,必须是模块。
此函数可以像 sum、average 和 if 一样作为常规函数调用。在另一个 sheet 上创建一个包含您所有属性的唯一列表。 A 列中的属性,然后在 B 列中可以调用函数。假设第 1 行用于标题,写下以下内容并复制下来。
=ConcatIF(A2,properties,problems)
注意!!!!这段代码很快就会失控。它需要进行(属性数量)x(property/problem 对数量)比较,所以如果这个数字很大,它可能会减慢你的 sheet.
可能有更快的方法,但这是我的想法。