Страницы: 1
RSS
Как упростить функцию попадания строки по номеру в диапазон строк в Power Query
 
На входе есть Код строки отчета. На выходе должен быть номер раздела, в котором эта строка находится.
Сейчас использую вот такую функцию.
Но наверняка есть вариант попроще. Подскажите плз такие варианты...

Код
(НомерСтроки) => 
let
    КолонкаРаздел =      if НомерСтроки > 0   and НомерСтроки <= 170 then 1 
                    else if НомерСтроки > 170 and НомерСтроки <= 260 then 2
                    else if НомерСтроки > 260 and НомерСтроки <= 406 then 3  
                    else if НомерСтроки > 406 and НомерСтроки <= 496 then 4
                    else if НомерСтроки > 496 and НомерСтроки <= 560 then 5
                    else 999
in
    КолонкаРаздел
Изменено: Александр Медведев - 01.07.2022 23:40:11
Если не можешь победить беспорядок, то надо возглавить его.
 
Александр Медведев, можно так:
Код
( НомерСтроки ) =>
  let
    СтрокаРаздел  = List.Buffer ( { { 1, 1 }, { 171, 2 }, { 261, 3 }, { 407, 4 }, { 497, 5 }, { 561, 999 } } ), 
    КолонкаРаздел = List.Last ( List.Select ( СтрокаРаздел, ( x ) => x{0} <= НомерСтроки ) ){1}?
  in
    КолонкаРаздел

можно просто упростить Ваш вариант:
Код
( НомерСтроки ) =>
  let
    КолонкаРаздел =
      if НомерСтроки > 560 then
        999
      else if НомерСтроки > 496 then
        5
      else if НомерСтроки > 406 then
        4
      else if НомерСтроки > 260 then
        3
      else if НомерСтроки > 170 then
        2
      else
        1
  in
    КолонкаРаздел
 
Благодарю за помощь.
Первый вариант нравится, хоть второй и попроще)
Если не можешь победить беспорядок, то надо возглавить его.
Страницы: 1
Наверх