Страницы: 1
RSS
Частичная замена значений в PQ
 
Добрый день!
Не могли бы вы мне подсказать.
Есть какая-то возможность в PQ через замену значений удалять ИНН/КПП?


ПЕТРОВДОК ООО 7802168429/780185265
 
Цитата
Евгений Валерьевич написал:
Есть какая-то возможность в PQ
Есть
 
Цитата
написал:
Есть
Супер. А как?
 
Нужен файл с примером как описано ТУТ п.п. 2.3-2.4
 
Цитата
написал:
Нужен файл с примером
Прошу извинить, если я чего-то не понимаю. А зачем нужен файл?
У меня таких файлов куча. И они все разные.
Я надеялся, что существуют символы, похожие на "*/*" в поле поиска.
Изменено: Евгений Валерьевич - 24.06.2022 19:35:11
 
Цитата
Евгений Валерьевич написал:
А зачем нужен файл?
Из файла видно, где у Вас находятся данные, в начале, в конце, в середине, какие столбцы, сколько их и т.п., это всё может повлиять на решение. Если Вы внимательно прочитали п.2.3: "в реальной структуре и форматах данных того, что есть сейчас и того, что хотелось бы на выходе", то должны были понять как и для чего это нужно. То есть помогающий должен понимать, что именно вы хотите видеть в результате. Например согласно Вашему примеру можно сделать так:
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    #"Извлеченный текст перед разделителем" = Table.TransformColumns(Источник, {{"Получатель счета", each Text.BeforeDelimiter(_, " ", {0, RelativePosition.FromEnd}), type text}})
in
    #"Извлеченный текст перед разделителем"
Изменено: Msi2102 - 24.06.2022 19:39:29
 
Большое спасибо. Действительно работает.
Не со всеми ячейками корректно, т.к. получатели заведены через ....
Если нет ИНН/КПП, то удаляет ООО.
Но думаю и этого за глаза.
Ещё раз спасибо.
 
Цитата
Евгений Валерьевич написал:
Если нет ИНН/КПП, то удаляет ООО
вот для этого и нужен нормальный пример. Можете ещё почитать к примеру ТУТ
Изменено: Msi2102 - 24.06.2022 21:03:06
 
Может так?
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Split Column by Delimiter" = Table.SplitColumn(Source,"Получатель счета",Splitter.SplitTextByDelimiter("/", QuoteStyle.Csv),{"Получатель счета.1", "Получатель счета.2"}),
    #"Split Column by Position" = Table.SplitColumn(#"Split Column by Delimiter","Получатель счета.1",Splitter.SplitTextByPositions({0, 10}, true),{"Получатель счета.1.1", "Получатель счета.1.2"}),
    #"Removed Columns" = Table.RemoveColumns(#"Split Column by Position",{"Получатель счета.1.2", "Получатель счета.2"})
in
    #"Removed Columns"
 
Msi2102, зло эти регулярки. Они оооочень медленные. :)
Евгений Валерьевич, можно так:
Код
let
  data = Excel.CurrentWorkbook(){[ Name = "data" ]}[Content],
  transform = Table.TransformColumns (
    data,
    {
      {
        "Получатель счета",
        ( x ) =>
          if Text.Remove ( Text.AfterDelimiter ( x, " ", { 0, RelativePosition.FromEnd } ), { "0" .. "9" } ) = "/" then
            Text.BeforeDelimiter ( x, " ", { 0, RelativePosition.FromEnd } )
          else
            x,
        type text
      }
    }
  )
in
  transform
 
Цитата
surkenny написал:
зло эти регулярки. Они оооочень медленные.
я не спорю, просто не понятно, какие там исходные данные, судя по всему пример ни о чём.
Цитата
Евгений Валерьевич написал:
Если нет ИНН/КПП, то удаляет ООО.
Да и вопрос в сообщении №5 звучал так:
Цитата
Евгений Валерьевич написал:
Я надеялся, что существуют символы, похожие на "*/*" в поле поиска.
Страницы: 1
Наверх