Digamos que temos três tabelas, ou três bancos de dados: Famílias, Serviços e Relatório. A tabela Famílias tem uma chave chamada ID Família, e tem colunas virtuais com mês inicial do serviço, ano inicial do serviço, mês final do serviço e ano final do serviço. A tabela Service também tem sua chave Service ID, mas também tem uma coluna chamada Family ID que faz referência a qual família ou linha na tabela Families ela está vinculada, e também tem duas colunas virtuais com o mês e o ano do serviço. A tabela Report tem a chave IDRAF que concatena mês e ano de duas colunas chamadas mês e ano. Quando preencho uma nova linha na tabela Report, uma das colunas precisa ter uma fórmula appsheet que calcula: Número de Famílias com 1 ou 2 Serviços de acordo com o mês e o ano indicado no Report.
an appsheet formula that calculates: Number of Families with 1 or 2 Services according to the month and year indicated in the Report
This?
COUNT(
FILTER(
"Families",
AND(
([_THISROW].[Year] = [Year]),
([_THISROW].[Month] = [Month]),
IN(COUNT([Related Services]), {1, 2})
)
)
)
As famílias tem um mês de início e um mês de fim do acompanhamento. E os atendimentos são vários. Preciso contar apenas as famílias com 1 a 2 atendimentos no mês e ano específico.
O chat Copilot do Bing me deu uma fórmula como a de baixo:
COUNT(
FILTER(
SELECT(
Atendimentos PAIF[ID Família Prontuário],
AND(
MONTH([Data da Ação]) = [_THISROW].[MÊS],
YEAR([Data da Ação]) = [_THISROW].[ANO]
)
),
AND(
COUNT(
SELECT(
Atendimentos PAIF[ID Atendimento],
AND(
[ID Família Prontuário] = [_THISROW-1].[ID Família Prontuário],
MONTH([Data da Ação]) = [_THISROW].[MÊS],
YEAR([Data da Ação]) = [_THISROW].[ANO]
)
)
) >= 1,
COUNT(
SELECT(
Atendimentos PAIF[ID Atendimento],
AND(
[ID Família Prontuário] = [_THISROW-1].[ID Família Prontuário],
MONTH([Data da Ação]) = [_THISROW].[MÊS],
YEAR([Data da Ação]) = [_THISROW].[ANO]
)
)
) <= 2
)
)
)
Mas não funcionou ainda.
COUNT(
SELECT(
Families[Family ID],
AND(
([Start Month] <= [_THISROW].[Report Month]),
([End Month] >= [_THISROW].[Report Month]),
([Start Year] <= [_THISROW].[Report Year]),
([End Year] >= [_THISROW].[Report Year]),
IN(
COUNT(
SELECT(
Services[Service ID],
AND(
[Family ID] = [Family ID],
[Service Month] = [_THISROW].[Report Month],
[Service Year] = [_THISROW].[Report Year]
)
)
),
LIST(1, 2)
)
)
)
)
Não tenho colunas Report Month e nem Report Year