DAX для проверки всего номера - PullRequest
1 голос
/ 06 января 2020

У меня есть столбец Actuals, например, так:

ID | Airport
------------
A  | 98.4
B  | 98.0
C  | 95.3

Я пытаюсь отформатировать приведенные выше числа в процентах для внешнего отчета. Я написал это в инструкции switch - для простоты я просто напишу logi c как логическое значение IF.

example_measure = 
VAR Nums = SELECTEDVALUES(Table[Actuals])
VAR FormatNums = IF(DIVIDE(ROUND(nums,1), nums) = 1,
                              format(nums,"0%"),format(nums,"0.0%")
-
RETURN 
FormatNums 

независимо от того, что я делаю, всегда возвращает число со значением с плавающей запятой 1f

, поэтому в моих исходных данных 98,0 я ожидаю, что формат вернет "98%", а не "98.0%"

, для которых используются меры отдельные карточки, и они фильтруются, поэтому они могут показывать только одно значение или пробел, то есть они будут отображать только одно значение самостоятельно.

Я играл с использованием if(nums = int(nums), которое должно оцениваться как истинное для 98.0 но это я всегда ошибаюсь.

Ответы [ 2 ]

2 голосов
/ 07 января 2020

Существует более простой способ - просто используйте встроенные коды форматирования:

Formatted Actuals = 
  VAR x = SELECTEDVALUE(Data[Actuals])
  RETURN
  FORMAT(x, "General Number") & "%"

Результат:

enter image description here

Встроенный -в стиле "General Number" корректно обрабатывает вашу ситуацию, вам просто нужно добавить символ% к отформатированной строке. Нет необходимости проверять целые числа.

2 голосов
/ 06 января 2020

Чтобы преобразовать столбец / показатель в процент, вы можете просто разделить столбец на 100, а затем отформатировать его в процентах. Выполните следующие действия:

  1. Создайте новый столбец / меру: Perc_value = Table[Actuals]/100
  2. Затем go на вкладке моделирования выберите созданный столбец / меру и отформатируйте его как % и ограничить количество знаков после запятой до 0

Это должно дать представление, которое вы ищете. Надеюсь, это поможет.

Редактировать:

Вы можете использовать приведенную ниже формулу для достижения желаемого результата:

Column4 = IF('Table'[Column2]-ROUND('Table'[Column2],0)=0,FORMAT('Table'[Column2]/100,"0%"),FORMAT('Table'[Column2]/100,"0.0%"))

Замените Column2 своим полем, и вы должны хорошо go.

...