Como usar múltiplos array em uma fórmula countif

4

Eu preciso encontrar o número de células em uma tabela, quando todas as condições forem atendidas. Então escrevi a seguinte fórmula:

=SUM(COUNTIFS(Master_tbl[Erfassungsdatum],">=01.01.2017",Master_tbl[Erfassungsdatum],"<=31.01.2017",Master_tbl[Auftragsart],{"YAEL","YAFD","YALP","YAPL"},Master_tbl[IH-Leistungsart],{"T01","T02","T03","T04","T35"},Master_tbl[P/AP],"AP"))

Mas o resultado é menos que real. Quando eu uso apenas um conjunto de array, o resultado está correto, mas quando eu uso dois conjuntos de array, o resultado está incorreto.

Alguém pode me ajudar a encontrar o meu erro, por favor?

    
por Dio 07.11.2017 / 14:16

2 respostas

5

Você só pode fazer duas matrizes no máximo e uma precisa ser separada com ; e a outra , . Dessa forma, um é um array vertical e o outro é horizontal.

=SUM(COUNTIFS(Master_tbl[Erfassungsdatum],">=01.01.2017",Master_tbl[Erfassungsdatum],"<=31.01.2017",Master_tbl[Auftragsart],{"YAEL","YAFD","YALP","YAPL"},Master_tbl[IH-Leistungsart],{"T01";"T02";"T03";"T04";"T35"},Master_tbl[P/AP],"AP"))
    
por 07.11.2017 / 14:51
4

Vários arrays usados como você tem em sua fórmula basicamente avaliam a fórmula alinhando os vários arrays e usando cada conjunto independentemente (ou seja, YAEL + T01, YAFD + T02). Não é isso que você está procurando fazer.

Tenho certeza de que existem outros métodos para alcançar o que você está procurando fazer, mas o que me veio à mente foi o uso do Sumproduct. Não sei há quanto tempo você está usando o Excel, mas por um longo tempo o Sumproduct foi a melhor maneira de realizar um Countif com vários critérios. Tomando sua fórmula acima e convertendo-a, obtemos:

=SUMPRODUCT(--(Master_tbl[Erfassungsdatum]>="01.01.2017"),--(Master_tbl[Erfassungsdatum]<="31.01.2017"),--(ISNUMBER(MATCH(Master_tbl[Auftragsart],{"YAEL","YAFD","YALP","YAPL"},0))),--(ISNUMBER(MATCH(Master_tbl[IH-Leistungsart],{"T01","T02","T03","T04","T35"},0))),--(Master_tbl[P/AP]="AP"))

ISNUMBER (MATCH ... essencialmente converte o que seria uma matriz multidimensional (se você estivesse fazendo a comparação simples de column = {array}) em uma única dimensão, que pode então ser combinada com as outras comparações de critérios.

Eu não tinha certeza do que o formato da sua coluna Erfassungsdatum é, então a comparação para aqueles assume um valor de string. Se for uma data, você vai querer ajustar de acordo.

    
por 07.11.2017 / 14:57