Excel count/sumifs 带数字的通配符
Excel count/sumifs wildcards with numbers
我有一个仪表板,它使用 COUNTIFS 和 SUMIFS 作为 # 和 $ 用于多个国家(列)的交易并且符合特定条件(行)。
每一行都分为不同的财政季度,然后细分为不同的附加细节和月份。第一行是 'everything',所以 FQ Relative 是' * ',它适用于 sum/countifs 中的字符串,但不适用于数字,我如何使用 sum/countifs 作为一个单一的公式可以在 FQ 可以是零的地方复制下来,positive/negative 数字或 ' * '(或其他东西)来表示任何东西。
仪表板很大,因此需要重复此操作多次,因此不能使用不同的公式(每一行必须相同)。
希望下面的内容能让您对我的工作有一个简单的了解。
ID | Caption | FQ Relative | FM | Other Criteria | Country A | Country B | Country C
1 | All Trans | * | * | <other criteria> | =sumif() | =sumif() | =sumif()
2 | Prev QTR | -1 | * | <other criteria> | =sumif() | =sumif() | =sumif()
3 | Current QTR | 0 | * | <other criteria> | =sumif() | =sumif() | =sumif()
4 | Next QTR | 1 | * | <other criteria> | =sumif() | =sumif() | =sumif()
使用一对 < 和 > 运算符为 SUMIF/SUMIFS.
提供 不等于空白 条件
=sumifs(f:f, b:b, "<>")
这适用于真正空白的单元格以及可能包含由公式返回的零长度字符串(例如 ""
)的单元格。
您可以将数字转换为文本,这应该可以解决您的问题。
如果您尝试在更加自动化的环境中这样做,那么这个子例程应该可以工作:
Sub TextifyNumbers(Block As range)
'This turns numbers into text so that they will work with the "*" wildcard
x = UBound(Block.Value, 1)
y = UBound(Block.Value, 2)
For i = 1 To x
For j = 1 To y
Block(i, j).Formula = Evaluate(Chr(34) & Block(i, j).Value & Chr(34))
Next j
Next i
End Sub
我有一个仪表板,它使用 COUNTIFS 和 SUMIFS 作为 # 和 $ 用于多个国家(列)的交易并且符合特定条件(行)。
每一行都分为不同的财政季度,然后细分为不同的附加细节和月份。第一行是 'everything',所以 FQ Relative 是' * ',它适用于 sum/countifs 中的字符串,但不适用于数字,我如何使用 sum/countifs 作为一个单一的公式可以在 FQ 可以是零的地方复制下来,positive/negative 数字或 ' * '(或其他东西)来表示任何东西。
仪表板很大,因此需要重复此操作多次,因此不能使用不同的公式(每一行必须相同)。
希望下面的内容能让您对我的工作有一个简单的了解。
ID | Caption | FQ Relative | FM | Other Criteria | Country A | Country B | Country C
1 | All Trans | * | * | <other criteria> | =sumif() | =sumif() | =sumif()
2 | Prev QTR | -1 | * | <other criteria> | =sumif() | =sumif() | =sumif()
3 | Current QTR | 0 | * | <other criteria> | =sumif() | =sumif() | =sumif()
4 | Next QTR | 1 | * | <other criteria> | =sumif() | =sumif() | =sumif()
使用一对 < 和 > 运算符为 SUMIF/SUMIFS.
提供 不等于空白 条件=sumifs(f:f, b:b, "<>")
这适用于真正空白的单元格以及可能包含由公式返回的零长度字符串(例如 ""
)的单元格。
您可以将数字转换为文本,这应该可以解决您的问题。
如果您尝试在更加自动化的环境中这样做,那么这个子例程应该可以工作:
Sub TextifyNumbers(Block As range)
'This turns numbers into text so that they will work with the "*" wildcard
x = UBound(Block.Value, 1)
y = UBound(Block.Value, 2)
For i = 1 To x
For j = 1 To y
Block(i, j).Formula = Evaluate(Chr(34) & Block(i, j).Value & Chr(34))
Next j
Next i
End Sub