cancel
Showing results for
Did you mean:

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

Regular Visitor

## DAX countrows Time inteligence

Colegas, na tabela "fREGISTROS" necessito contar o número de linhas de "Id", desde que: a "DataMovimento" de cada "Id" seja dia útil e seja de dois dias atrás em relação à data de hoje (data em que o relatório é atualizado). As tabelas "fREGISTROS" e "dCALENDARIO" estão relacionadas corretamente por "DataMovimento" e "Data". Tentei algumas DAX de inteligência temporal com alguns filtros, mas sem sucesso.

Poderiam me auxiliar em uma solução.

fREGISTROS

dCALENDARIO

1 ACCEPTED SOLUTION
Regular Visitor

Realmente como você observou, fiz as devidas correções e pude ver as linhas sendo contadas.

4 REPLIES 4
Community Support

Hi, @jaylsonphb

In order to solve your current problem, you need to create a new calculation column in your date table to determine whether the current date is a working day, if it returns 1, otherwise 0. To calculate this column, you need to have the weekday column in your date table. Here's an example of a working day from Monday to Friday:

``ISWorkingday = IF([Weekday]<=5,1,0)``

The first variable is to filter out the days in the calendar table that are weekdays. This will return a date column. The second variable is to use DayDiff to calculate the number of days from today to the date corresponding to the current ID. Finally, if is used to determine whether IsOverTwoDays is greater than 2, then count the ID column. Before counting, use the filter to filter out the rows that correspond to the date corresponding to the current ID as a working day. Finally, count the ID column of the table that comes out of the filter.

``````countID =
VAR _workingday = SELECTCOLUMNS(FILTER('Table','Table'[ISWorkingday]=1),'Table'[Date])
VAR IsOverTwoDays = DATEDIFF(SELECTEDVALUE(fREGISTROS[DataMovimento]),TODAY(),DAY)
RETURN IF(IsOverTwoDays>=2,COUNTAX(FILTER(ALLSELECTED('fREGISTROS'),'fREGISTROS'[Id]<=SELECTEDVALUE(fREGISTROS[Id])&&'fREGISTROS'[DataMovimento] IN _workingday),'fREGISTROS'[Id]))``````

Here are the results:

In your example data, 1/15/2024, 1/16/2024, 1/17/2024, and 1/18/2024 are all working days, as shown in the following figure:

If your working day is not Monday to Friday, you need to adjust the calculation column of ISWorkingday appropriately.

I've provided the PBIX file used this time below.

If it does not help, please provide more details with your desired output and pbix file without privacy information (or some sample data) .

Best Regards

Jianpeng Li

If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Regular Visitor

Aprecio sua resposta em esclarecer a necessidade de ter colunas calculadas e ter variáveis na DAX, entretanto devido a outros motivos não pude subir com sucesso o arquivo que gostaria de trabalhar (desculpe por isso), mas ele está disponível aqui: (excluído)

Tentei replicar sua ajuda/medida na tabela onde irei trabalhar que é "fProdutividade" relacionando ela com a tabela tipo calendário "CALENDARIOPQ", porém a DAX não conseguiu contar as linhas. (Destaque abaixo)

Meu obejtivo é: contar o número de linhas de "Id_PREA", desde que: a "DataTratamento" de cada "Id_PREA" seja dia útil e também seja de dois dias atrás em relação à data de hoje (data em que o relatório é atualizado).

Observe que a tabela "CALENDARIOPQ" vem do Power Query (para poder incluir uma lista de feriados para melhor atender à minha demanda).
Novamente muito obrigado pela sua ajuda e esclarecimentos.

Community Support

Hi, @jaylsonphb

Thank you very much for your reply. The reason why this measure doesn't work is because the calendar table has the hours, minutes, and seconds after the date are all 12:00:00, as shown in the following image:

This doesn't match the hours, minutes, and seconds after your actual date column, so it's shown empty:

So we can change the original DAX expression like this:

``````countID =
VAR vDiaUtil = SELECTCOLUMNS(FILTER('CALENDARIOPQ','CALENDARIOPQ'[DiaUtil]=1),'CALENDARIOPQ'[Data])

In this DAX expression, I first use the format function to convert your date column to MM/DD/YYYY format. Since the format function returns a text date, I used the datevalue function. The main purpose of this function is to change the date of the text type to the date type, so that it can be compared with the vDiaUtil.

The results are as follows:

Best Regards

Jianpeng Li

If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Regular Visitor

Realmente como você observou, fiz as devidas correções e pude ver as linhas sendo contadas.

Announcements

#### Europe’s largest Microsoft Fabric Community Conference

Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.