Excel计数/ sumifs通配符与数字

时间:2017-06-19 14:49:34

标签: excel excel-formula sumifs

我有一个仪表板,它使用COUNTIFS和SUMIFS作为#和$用于多个国家(列)的交易,并且符合某些条件(行)。

每一行分为不同的财政季度,然后细分为不同的额外细节和月份。第一行是'一切',所以FQ Relative是'*',适用于sum / countifs中的字符串,但不适用于数字,我如何使用sum / countifs作为单个公式,可以在FQ中向下复制可以是零,正/负数或'*'(或其他东西)来表示任何东西。

仪表板很大,因此需要多次重复,因此它不能是不同的公式(每行必须相同)。

希望下面的内容能让您简明扼要地了解我正在使用的内容。

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()

2 个答案:

答案 0 :(得分:3)

使用一对&lt;和&gt;运算符为SUMIF / SUMIFS提供不等于空白标准。

uniekGetal :: [Int]
uniekGetal = [val9 | 
        x1 <- [1..9],
        let val = x1,
        x2 <- [x| x <- [1..9], x /= x1],
        let val2 = val * 10 + x2,
        mod val2 2 == 0,
        x3 <- [x| x <- [1..9], x /= x1, x /= x2],
        let val3 = val2 * 10 + x3,
        mod val3 3 == 0,
        x4 <- [x| x <- [1..9], x /= x1, x /= x2, x /= x3],
        let val4 = val3 * 10 + x4,
        mod val4 4 == 0,
        x5 <- [x| x <- [1..9], x /= x1, x /= x2, x /= x3, x /= x4],
        let val5 = val4 * 10 + x5,
        mod val5 5 == 0,
        x6 <- [x| x <- [1..9], x /= x1, x /= x2, x /= x3, x /= x4, x /= x5],
        let val6 = val5 * 10 + x6,
        mod val6 6 == 0,
        x7 <- [x| x <- [1..9], x /= x1, x /= x2, x /= x3, x /= x4, x /= x5, x /= x6],
        let val7 = val6 * 10 + x7,
        mod val7 7 == 0,
        x8 <- [x| x <- [1..9], x /= x1, x /= x2, x /= x3, x /= x4, x /= x5, x /= x6, x /= x7],
        let val8 = val7 * 10 + x8,
        mod val8 8 == 0,
        x9 <- [x| x <- [1..9], x /= x1, x /= x2, x /= x3, x /= x4, x /= x5, x /= x6, x /= x7, x /= x8],
        let val9 = val8 * 10 + x9,
        mod val9 9 == 0]

这适用于真正空白的单元格以及可能包含公式返回的零长度字符串(例如=sumifs(f:f, b:b, "<>") )的单元格。

答案 1 :(得分:0)

您可以将数字转换为文本,这应该可以解决您的问题。

如果您尝试在更自动化的环境中执行此操作,则此子例程应该可以工作:

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