Forum Discussion

gaccardo's avatar
gaccardo
Advocate II
7 years ago
Solved

Off-by-One Error using COUNTX() and ALL()

I have an issue when using COUNTX () with the ALL() function.  The value returned is the actual number of rows plus one.  I've verified this with a bunch of tables, and I've got a solution, specifically using the ALLNOBLANKROW() function instead of ALL().  What I don't know is why this is necessary or if this is a proper pattern to use for solving counting all the rows that meet a particular condition.  Any suggestions would be appreciated.

This DAX returns the correct answer, but I don't know why or if this is a correct pattern to use.

All Requirements without User Stories =
  VAR counter =
    COUNTX(
      ALLNOBLANKROW('Requirement'),
      IF(
        [Count of Related User Stories] < 1,
        1,
        BLANK()
      )
    )

  RETURN
    IF (
      ISBLANK (counter),
      0,
      counter
    )

This DAX returns a number that is the correct number plus one.  Why?

All Requirements without User Stories =
  VAR counter =
    COUNTX(
      ALL('Requirement'),
      IF(
        [Count of Related User Stories] < 1,
        1,
        BLANK()
      )
    )

  RETURN
    IF (
      ISBLANK (counter),
      0,
      counter
    )

2 Replies