Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 След.
Универсальная формула трансформация текста в числа в PQ
 
Цитата
написал:
Т.е. везде могут быть разные символы, в т.ч. и десятичные?
Числа всегда десятичные. Получается рубли это целые числа , копейки это десятичные.



Цитата
написал:
можно просто в лоб перебирая варианты, но не уверен насчет оптимальности
Спасибо за вариант.




Цитата
написал:
Здравствуйте!Код Музыкина М, завернула в функцию...  
Не очень понял что такое код Музыкина.



Цитата
написал:
List.Skip(List.Transform({"ru","en","nso"},
Так же не понятно что такое "nso"
И спасибо за вариант.






Цитата
написал:
До мастеров далеко, но вот мой вариант
Не нужно себя недооценивать. Ваш кстати вариант мне очень понравился и вообще понятно как дважды два.  
Универсальная формула трансформация текста в числа в PQ
 
Добрый день!
Может у кого то есть универсальная формула в PQ по трансформации банковских значений чисел  в обычный формат числа.
Просто в различных банках могут использовать как точки и запятые или тире для обозначения копеек.
Заранее спасибо
Возврат Даты в числовом виде VBA
 
Цитата
написал:
asdewq1 , здравствуйте. Не совсем понятно, как сочетается вопросЦитата написал:возможно ли чтобы lambda функции написанные в одном месте были доступны во всех открываемых книгах ?с Цитата написал:А тут получается сама по себе формула сохранена в личных настройках и доступна в любой из открываемых книг. ?Но как и писал ранее, прописывайте свои функции в надстройке, устанавливаете ее в Эксель и все функции доступны в любой открытой книге:  https://www.excel-vba.ru/chto-umeet-excel/kak-sozdat-svoyu-nadstrojku/
Криво косо , но получилось.


Прописал для теста
Код
Private WithEvents App As Application

Private Sub Workbook_Open()
    Set App = Application
End Sub




Private Sub App_WorkbookOpen(ByVal Wb As Workbook)
If (Wb.Name = "PERSONAL.XLSB") Then
    MsgBox "Вы открыли книгу:" & Wb.Name
    Else
    ActiveWorkbook.Names.Add Name:="test", RefersToR1C1:="=LAMBDA(a,b,a+b)"
    End If
    
End Sub


Private Sub App_NewWorkbook(ByVal Wb As Workbook)
    MsgBox "Вы создали новую книгу"
    ActiveWorkbook.Names.Add Name:="test", RefersToR1C1:="=LAMBDA(a,b,a+b)"
    ActiveWorkbook.Names.Add Name:="test2", RefersToR1C1:="=LAMBDA(ad,ba,ad+ba)"

End Sub




Всем спасибо.
Сейчас у меня везде доступны будут и макросы и лямбды.
Возврат Даты в числовом виде VBA
 
Цитата
написал:
написал:А в каждой книге прописывать События объекта Worksheet вообще не вариантпрописывайте в надстройке :  https://www.excel-vba.ru/chto-umeet-excel/kak-otsledit-sobytienaprimer-vydelenie-yacheek-v-lyuboj-kn....
раз пошла такая пьянка а возможно ли чтобы lambda функции написанные в одном месте были доступны во всех открываемых книгах ?





Цитата
написал:
asdewq1 , Format в коде лишнее если нужна дата, достаточноКод ? 123Public Function ИзвлечьДатуДокумента1(Text As String) As DateИзвлечьДатуДокумента1 = CDate(MyReg(Text, "\d{2}\.\d+\.\d+"))End FunctionНу а далее в ячейке уже её форматом показывайте как хотите, вручную или макросом.
Как и писал выше . Я просто пробывал различные варианты по принципу авось сработает.

Хотелось отображение как есть в excel при открытии ты видишь например формат общий и строку , но при этом ячейка в сводных таблицах ведет себя как дата . И при построении сводных таблиц появляется дополнительная группировка месяц , квартал, год .
Возврат Даты в числовом виде VBA
 
Цитата
написал:
ли используются макросы - почему бы не использовать их для установки нужного формата? Что мешает это сделать? Например, можно в модуль листа записать такую обработку(срабатывает при каждом изменении листа):
И такой вариант также не подходит .
Так как получается это событие отдельного листа. А тут получается сама по себе формула сохранена в личных настройках и доступна в любой из открываемых книг. А в каждой книге прописывать События объекта Worksheet вообще не вариант
Возврат Даты в числовом виде VBA
 
Цитата
написал:
Конечно, скорее всего нужны доп.проверки, чтобы лишнего не делать. Но я показал лишь пример без понимания, подойдет ли такой подход или нет.И да, функция тогда должна выглядеть так(т.е. возвращать именно дату):Код ? 123Public Function ИзвлечьДатуДокумента1(Text As String) As Date    ИзвлечьДатуДокумента1 = CDate(MyReg(Text, "\d{2}\.\d+\.\d+"))End FunctionНакидывать сюда формат через VBA.Format нет смысла. К тому же, если делать через Format, на некоторых ПК и вовсе будет ошибка, если формат даты в локализации отличается от "ДД.ММ.ГГГГ".
Спасибо.
Просто в данном случае я просто начал пробовать и просто увеличивал количество функций в недежде что заработает. Но увы.
А постоянная проверка на ввод формулы не нагружает процессор?




Цитата
написал:
asdewq1  написал: и работает ли вообщеРаботает. Вы не правильно скопировали текст макроса из сообщения. Нужно копировать при русской раскладке клавиатуры, т.к. в нем используются русские буквыЦитата asdewq1  написал: второй раз написан Regex это комментарийЯ не второй раз (который комментарий), а в принципе. Эта функция не нужнаЦитата asdewq1  написал: Как можно исправить без изменения формата ячеек.
ну да получается я если честно сразу не догадался что можно split сделать.
Возврат Даты в числовом виде VBA
 
Цитата
написал:
Формат ячеек установите Дата.


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


Цитата



Для Вашего примера можно без второй функции (MyRegex) обойтись
Код
Function Get_Data(iData)
  Get_Data = Format(Split(iData, "от")(UBound(Split(iData, "от"))), "dd.mm.yyyy")
End Function
не очень понимаю как это работает и работает ли вообще.
А что касается второй раз  второй раз написан Regex это комментарий, просто я пытался различными способами вернуть дату.
Изменено: asdewq1 - 12.05.2025 12:25:26
Возврат Даты в числовом виде VBA
 
Добрый день!
Написал формулу на VBA
Код
Public Function ИзвлечьДатуДокумента(Text As String) As Date
ИзвлечьДатуДокумента = Format(CDate(MyRegex(Text, "\d{2}\.\d+\.\d+")), "DD.MM.YYYY")

'ИзвлечьДатуДокумента = Format(MyRegex(Text, "\d{2}\.\d+\.\d+"), "DD.MM.YYYY")
End Function

Данная формула извлекает дату из выбранной ячейки. Однако возникает проблема с возвратом значения.
Если возвращать дату то идет цифровое значение даты.
Если поставить String то возвращается текст и не группируются данные в месяца и года.
Может есть возможность как то это побороть без изменения числового формата????
Оптимизация загрузки (слияние файлов PQ)
 
Цитата
написал:
asdewq1 , с вероятностью 99,9% тормоза в связи с сетевым расположением файлов.ПС: мне все же не понятно соотношение rdp/сетевое расположение, т.к. для меня rdp - это работа на обычном удаленном локальном ПК как на своем.Видимо, работа на rdp, а плюсом запущенный на rdp excel тянет файлы с какого-то др. сервера.Но это уже не важно, т.к. изменить вы, видимо, ничего не сможете.
Понятно спасибо. Я просто думал у меня руки совсем кривые и делаю все не так.
Оптимизация загрузки (слияние файлов PQ)
 
Цитата
написал:
upd: так через rdp или сетевое? сетевое имеется в виду, что исходные файлы-источники на сетевой папке, а обращаетесь к ним вы со своего ПК - где запускаестся excel ? - на вашем ПК или на rdp? - если вы со своего ПК обращаетесь к файлам на сервере, то они скачиваются к вам на ПК налету + время обработки у вас



Я не могу скопировать документы ни на диск C: удаленного компа, доступа нет, А тем более на локальный комп.
Характеристики удаленного компа Intel Xeon Gold 6330 2.0GHz, RAM 6GB, OS Win10.
На локальном компьютере есть только вход в терминал.
Оптимизация загрузки (слияние файлов PQ)
 
1. Столбцов не более 20
2. Столбцы текстовые в основном до 20 символов
3. характеристики это не совсем известно подключение идет через rdp , но насколько я знаю характеристики компа не самые выдающиеся
4.подключение к файлам сетевое.
5. исходные файлы не более пару мегабайт
6. Над датами сейчас действительно нет операций сейчас , однако возможно будут использоваться сводные таблицы и тогда формат дат будет очень актуальный . Если формат не выбрать если я правильно понимаю будет хуже строить сводные по кварталам или месяцам
7. Ошибка вылезла пару дважды и после обновления ошибка исчезала  
Оптимизация загрузки (слияние файлов PQ)
 
Цитата
написал:
Цитата asdewq1  написал: #"Вызвать настраиваемую функцию1" = скиньте код функции
По факту функция только поднимает заголовки


Код
let
    Источник = (Параметр1 as binary) => let
        Источник = Excel.Workbook(Параметр1, [InferSheetDimensions= true]),
        #"Доставленные товары_Sheet" = Источник{[Item="Доставленные товары",Kind="Sheet"]}[Data],
        #"Строки с примененным фильтром2" = Table.SelectRows(#"Доставленные товары_Sheet", each ([Column2] <> null)),
        #"Строки с примененным фильтром" = Table.SelectRows(#"Строки с примененным фильтром2", each ([Column1] <> null)),
        #"Повышенные заголовки" = Table.PromoteHeaders(#"Строки с примененным фильтром", [PromoteAllScalars=true])
    in
        #"Повышенные заголовки"
in
    Источник
Код
let
    Источник = (Параметр4 as binary) => let
        Источник = Excel.Workbook(Параметр4, [InferSheetDimensions= true]),
        #"Товары, переданные в доставку_Sheet" = Источник{[Item="Товары, переданные в доставку",Kind="Sheet"]}[Data],
        #"Строки с примененным фильтром1" = Table.SelectRows(#"Товары, переданные в доставку_Sheet", each ([Column2] <> null)),
        #"Строки с примененным фильтром" = Table.SelectRows(#"Строки с примененным фильтром1", each ([Column1] <> null and [Column1] <> "Заказы")),
        #"Повышенные заголовки" = Table.PromoteHeaders(#"Строки с примененным фильтром", [PromoteAllScalars=true])
    in
        #"Повышенные заголовки"
in
    Источник
Оптимизация загрузки (слияние файлов PQ)
 
Цитата
написал:
ошибка на что-то намекает? примеры всех файлов?
Ошибка уходит если повторно запустить обновление данных.
Файл с примерами выслать не могу так как доступа на копирование к ним не имею  
Оптимизация загрузки (слияние файлов PQ)
 
Добрый день!

У меня вопрос возможно ли оптимизировать запросы?
У меня есть папка в папке около 20 файлов как итог. В этих файлах 5 листов и на каждом листе таблица.
У меня созданы 5 запросов. Которые собирают со всех файлов информацию по листам ("Доставлено", "Возвращено" и т.д.) в один файл в на пять листов.
Общая сумма строк которая импортируется в файл не превышает 200к. Однако все происходит долго и иногда завершается с ошибкой.
Ниже пример двух запросов.

Код
let
    Источник = Folder.Files(#"Адрес"),
    #"Отфильтрованные скрытые файлы1" = Table.SelectRows(Источник, each [Attributes]?[Hidden]? <> true),
    #"Вызвать настраиваемую функцию1" = Table.AddColumn(#"Отфильтрованные скрытые файлы1", "Преобразовать файл", each #"Преобразовать файл"([Content])),
    #"Переименованные столбцы1" = Table.RenameColumns(#"Вызвать настраиваемую функцию1", {"Name", "Source.Name"}),
    #"Другие удаленные столбцы1" = Table.SelectColumns(#"Переименованные столбцы1", {"Source.Name", "Преобразовать файл"}),
    #"Столбец расширенной таблицы1" = Table.ExpandTableColumn(#"Другие удаленные столбцы1", "Преобразовать файл", List.Distinct(List.Combine(List.Transform (#"Другие удаленные столбцы1"[#"Преобразовать файл"], Table.ColumnNames)))),
    #"Замененное значение" = Table.ReplaceValue(#"Столбец расширенной таблицы1",null,0,Replacer.ReplaceValue,{"Цена c НДС без учёта скидок, руб. за шт.", "Ваша скидка по акции маркетплейса, руб. на 1 шт.", "Ваша скидка по бонусам СберСпасибо (за шт.), руб. на 1 шт.", "Ваша скидка по баллам Яндекс.Плюса, руб. на 1 шт.", "Цена с НДС с учётом всех скидок, руб. за шт.", "Стоимость всех доставленных штук с НДС без учёта скидок, руб.", "Сумма всех скидок для доставленных штук, руб.", "Стоимость всех доставленных штук с НДС с учётом всех скидок, руб.", "Цена c НДС без учёта скидок за шт., ₽", "Ваша скидка по акции маркетплейса на 1 шт., ₽", "Ваша скидка по бонусам СберСпасибо (за шт.) на 1 шт., ₽", "Ваша скидка по баллам Яндекс.Плюса на 1 шт., ₽", "Цена с НДС с учётом всех скидок за шт., ₽", "Стоимость всех доставленных штук с НДС без учёта скидок, ₽", "Сумма всех скидок для доставленных штук, ₽", "Стоимость всех доставленных штук с НДС с учётом всех скидок, ₽"}),
    #"Добавлен пользовательский объект" = Table.AddColumn(#"Замененное значение", "Стоимость всех доставленных штук с НДС без учёта скидок", each [#"Стоимость всех доставленных штук с НДС без учёта скидок, руб."]+[#"Стоимость всех доставленных штук с НДС без учёта скидок, ₽"]),
    #"Добавлен пользовательский объект1" = Table.AddColumn(#"Добавлен пользовательский объект", "Сумма всех скидок для доставленных штук", each [#"Сумма всех скидок для доставленных штук, руб."]+ [#"Сумма всех скидок для доставленных штук, ₽"]),
    #"Добавлен пользовательский объект2" = Table.AddColumn(#"Добавлен пользовательский объект1", "Стоимость всех доставленных штук с НДС с учётом всех скидок", each [#"Стоимость всех доставленных штук с НДС с учётом всех скидок, руб."]+[#"Стоимость всех доставленных штук с НДС с учётом всех скидок, ₽"]),
    #"Другие удаленные столбцы" = Table.SelectColumns(#"Добавлен пользовательский объект2",{"Source.Name", "Номер заказа", "Тип заказа", "Название товара", "Ваш SKU", "SKU на складе", "Количество переданных в доставку, шт.", "Доставлено, шт.", "Дата оформления заказа", "Дата передачи товара в доставку", "Дата доставки товара", "Способ оплаты", "Ставка НДС", "Стоимость всех доставленных штук с НДС без учёта скидок", "Сумма всех скидок для доставленных штук", "Стоимость всех доставленных штук с НДС с учётом всех скидок"}),
    #"Измененный тип" = Table.TransformColumnTypes(#"Другие удаленные столбцы",{{"Дата оформления заказа", type date}, {"Дата передачи товара в доставку", type date}, {"Дата доставки товара", type date}})
in
    #"Измененный тип"
Код
let
    Источник = Folder.Files(#"Адрес"),
    #"Отфильтрованные скрытые файлы1" = Table.SelectRows(Источник, each [Attributes]?[Hidden]? <> true),
    #"Вызвать настраиваемую функцию1" = Table.AddColumn(#"Отфильтрованные скрытые файлы1", "Преобразовать файл (4)", each #"Преобразовать файл (4)"([Content])),
    #"Переименованные столбцы1" = Table.RenameColumns(#"Вызвать настраиваемую функцию1", {"Name", "Source.Name"}),
    #"Другие удаленные столбцы1" = Table.SelectColumns(#"Переименованные столбцы1", {"Source.Name", "Преобразовать файл (4)"}),
    #"Столбец расширенной таблицы1" = Table.ExpandTableColumn(#"Другие удаленные столбцы1", "Преобразовать файл (4)", List.Distinct(List.Combine(List.Transform (#"Другие удаленные столбцы1"[#"Преобразовать файл (4)"], Table.ColumnNames)))),
    #"Замененное значение" = Table.ReplaceValue(#"Столбец расширенной таблицы1",null,0,Replacer.ReplaceValue,{"Цена c НДС без учёта скидок, руб. за шт.", "Ваша скидка по акции маркетплейса, руб. на 1 шт.", "Ваша скидка по бонусам СберСпасибо (за шт.), руб. на 1 шт.", "Ваша скидка по баллам Яндекс.Плюса, руб. на 1 шт.", "Цена с НДС с учётом всех скидок, руб. за шт.", "Стоимость всех переданных в доставку штук с НДС без учёта скидок, руб.", "Сумма всех скидок для переданных в доставку штук, руб.", "Стоимость всех переданных в доставку штук с НДС с учётом всех скидок, руб.", "Цена c НДС без учёта скидок за шт., ₽", "Ваша скидка по акции маркетплейса на 1 шт., ₽", "Ваша скидка по бонусам СберСпасибо (за шт.) на 1 шт., ₽", "Ваша скидка по баллам Яндекс.Плюса на 1 шт., ₽", "Цена с НДС с учётом всех скидок за шт., ₽", "Стоимость всех переданных в доставку штук с НДС без учёта скидок, ₽", "Сумма всех скидок для переданных в доставку штук, ₽", "Стоимость всех переданных в доставку штук с НДС с учётом всех скидок, ₽"}),
    #"Добавлен пользовательский объект" = Table.AddColumn(#"Замененное значение", "Стоимость всех переданных в доставку штук с НДС без учёта скидок", each [#"Стоимость всех переданных в доставку штук с НДС без учёта скидок, руб."]+[#"Стоимость всех переданных в доставку штук с НДС без учёта скидок, ₽"]),
    #"Добавлен пользовательский объект1" = Table.AddColumn(#"Добавлен пользовательский объект", "Сумма всех скидок для переданных в доставку штук", each [#"Сумма всех скидок для переданных в доставку штук, руб."]+[#"Сумма всех скидок для переданных в доставку штук, ₽"]),
    #"Добавлен пользовательский объект2" = Table.AddColumn(#"Добавлен пользовательский объект1", "Стоимость всех переданных в доставку штук с НДС с учётом всех скидок", each [#"Стоимость всех переданных в доставку штук с НДС с учётом всех скидок, руб."]+[#"Стоимость всех переданных в доставку штук с НДС с учётом всех скидок, ₽"]),
    #"Другие удаленные столбцы" = Table.SelectColumns(#"Добавлен пользовательский объект2",{"Source.Name", "Номер заказа", "Тип заказа", "Название товара", "Ваш SKU", "SKU на складе", "Количество переданных в доставку, шт.", "Дата оформления заказа", "Дата передачи товара в доставку", "Дата доставки товара", "Способ оплаты", "Ставка НДС", "Стоимость всех переданных в доставку штук с НДС без учёта скидок", "Сумма всех скидок для переданных в доставку штук", "Стоимость всех переданных в доставку штук с НДС с учётом всех скидок"}),
    #"Измененный тип" = Table.TransformColumnTypes(#"Другие удаленные столбцы",{{"Дата оформления заказа", type date}, {"Дата передачи товара в доставку", type date}, {"Дата доставки товара", type date}})
in
    #"Измененный тип"
Слияние таблиц имеющие различные шапки (изменена форма выгрузки)
 
Спасибо всем.
Вроде как разобрался.
Также нашел также видео на на одном нецензурном ресурсе youtube где все очень просто объясняется. И после его стало понятно что voler83 имел ввиду.
Слияние таблиц имеющие различные шапки (изменена форма выгрузки)
 
Цитата
написал:
лень делать, быстрее написатьмануально1. создаете список имен столбцов (Table.ColumnNames) - старой или новой таблицы - как вам удобнее, ниже предполагается старые имена на новые. Выгружаете список на лист Excel.2. на листе  в выгруженной таблице руками создаете и заполняете столбец "Новое имя" - конечно руками, ну как вариант можно нечетким Join в PQ сопоставить 2 списка имен столбцов - но в любом случае надо просматривать глазами будет.3. таблицу со столбцами "Старое имя" I "Новое имя" с листа загружаете в PQ и применяя функцию Table.ToRows получаете список списков имен - удобнее сделать это в отдельном запросе, назовем его допустим справочник_имен.4.  в старом отчете (смотря какое имя было для вас "старое", предположим старые имена вы переделали на новые) в функции Table.RenameColumns вместо имен столбцов просто подставляете имя запроса со списком из п.35. теперь столбцы называются одинаково.было:Table.RenameColumns(   table as table,   renames as list,  // сюда в качестве списка просто подставляете название запроса из п.3 безо всяких кавычек   optional missingField as nullable number,  // не забудьте указать параметр MissingField.Ignore) as tableстало:Table.RenameColumns(   таблица из старого отчета,  справочник_имен,  MissingField.Ignore)

Изменено: voler83  - 16.04.2025 13:10:38
Как сказал один человек в интернете "Ничего не понял , но очень интересно"
Слияние таблиц имеющие различные шапки (изменена форма выгрузки)
 
Цитата
написал:
дравствуйте. Не знаю как вы подтягиваете данные и куда, но если в книге Март2, удалить столбец B, тем более что это только дубль столбца А, то все столбцы совпадут со столбцами в книге февраль1. И при необходимость можно только шапку привести к одинаковому виду, скопировав из одной книги в другую. А если сбор данных идет не зависимо от названий в шапке, а по номеру столбца, то и шапку менять не надо.
Добрый день!
Что по поводу дубля это не совсем дубль , а при различных ситуациях это может быть другой номер.
Это понятно что можно просто взять и изменить наименования шапки вручную, но это нужно делать постоянно и хотелось бы решить данную проблему раз и навсегда, т.к. интернет магазины имеют свойства постоянно менять наименования столбцов. Сбор в моем случае идет по наименованию
Слияние таблиц имеющие различные шапки (изменена форма выгрузки)
 
Добрый день!
Есть проблема с отчетам который предоставляет внешний контрагент. Хочу объединить два файла с использованием PQ, у них различные шапки.
1. В файле март добавлен столбец "Ваш номер заказа";
2. Изменены наименования столбцов например с "Стоимость всех переданных в доставку штук с НДС с учётом всех скидок, руб." на "Стоимость всех переданных в доставку штук с НДС с учётом всех скидок, ₽"


При слиянии происходит что данные не подтягиваются из файла март не подтягиваются в исходную таблицу.

Прошу подсказать как можно сделать .
1. Чтобы новые столбцы создались  в сведенной таблице. И данные которые начались с марта туда подтянулись.
2. Как верно произвести переименование столбцов  с "Стоимость всех переданных в доставку штук с НДС с учётом всех скидок, руб." на "Стоимость всех переданных в доставку штук с НДС с учётом всех скидок, ₽" чтобы данные также объединились в общую таблицу.  
Неверное определение размера таблицы при получении запроса из книги
 
Цитата
написал:
Excel.Workbook


Пришелец-прораб.
Спасибо . Все заработала как нужно.
Тему можно закрывать.
Неверное определение размера таблицы при получении запроса из книги
 
Цитата
написал:
Excel.Workbook


Пришелец-прораб.
спасибо буду пробывать

Цитата
написал:
Цитата asdewq1  написал: Прошу помочь в решении данного вопросаБез исходного файла-примера какой помощи Вы ожидаете?
Дело в том что я бы с радостью. Однако у нас очень жестокая и жесткая система безопасности на работе и ничего нельзя копировать.
А при любое изменения файла и сразу PQ начинает нормально работать.
Вот тут и возникает дилемма что мне нужна помощь, но показать исходник я не могу. Надеюсь вы меня поймете.
Неверное определение размера таблицы при получении запроса из книги
 
Добрый день!
Получаю выгрузку из Интернет Магазины с отчетом о продажах.
Хочу все отчеты с помощью PQ объединить в один файл.
Однако возникает неверное определение размера таблицы и как итог  в PQ попадают только сведения о шапке таблицы.
Прошу помочь в решении данного вопроса.

let

   Источник = Excel.Workbook(File.Contents("C:\Users\nexta\Desktop\united_statistics_report_60067698_11-11-2024.xlsx"), null, true),

   #"Возвращенные товары_Sheet" = Источник{[Item="Возвращенные товары",Kind="Sheet"]}[Data],

   #"Измененный тип" = Table.TransformColumnTypes(#"Возвращенные товары_Sheet",{{"Column1", type text}, {"Column2", type text}, {"Column3", type text}, {"Column4", type text}, {"Column5", type text}, {"Column6", type text}, {"Column7", type text}, {"Column8", type text}, {"Column9", type text}, {"Column10", type text}, {"Column11", type text}, {"Column12", type text}, {"Column13", type text}, {"Column14", type text}, {"Column15", type text}, {"Column16", type text}, {"Column17", type text}, {"Column18", type text}, {"Column19", type text}, {"Column20", type text}, {"Column21", type text}, {"Column22", type text}, {"Column23", type text}, {"Column24", type text}, {"Column25", type text}, {"Column26", type text}, {"Column27", type text}, {"Column28", type text}, {"Column29", type text}, {"Column30", type text}, {"Column31", type text}, {"Column32", type text}, {"Column33", type text}, {"Column34", type text}, {"Column35", type text}, {"Column36", type text}, {"Column37", type text}, {"Column38", type text}, {"Column39", type text}})

in

   #"Измененный тип"

Power Query замена значений в выбранных колонках на отрицательные при соблюдения условий в строке
 
Цитата
написал:
отвечает Александр Друзь  Максим Зеленский
Мне всегда больше нравился Максим Поташев или Федор Двинятин. Но в данном вопросе Максим Зеленским топ.

Спасибо. Тему можно закрывать.
Power Query замена значений в выбранных колонках на отрицательные при соблюдения условий в строке
 
Цитата
написал:
Код  columns = {"Кол-во", "Цена розничная"}, // перечисляете все нужные столбцы
   replace = Table.ReplaceValue(
       Source,
       null,
       (x) => if x[Тип документа] = "возврат" then -1 else 1,
       (v, o, n) => v * n,
       columns
   )

Формула заработала, однако есть маленький вопрос КАК !!!




1)




Почитал спецификацию

Table.ReplaceValue(
  table as table,
  oldValue as any,
  newValue as any,
  replacer as function,
  columnsToSearch as list, ) as table
oldValueThe value you want to search for and replace. You can specify a constant, a column reference, or conditional logic.
В нашем случае oldValue почему установлено значение null???



2)
       (x) => if x[Тип документа] = "возврат" then -1 else 1,
       (v, o, n) => v * n,


Как я понимаю в выражении (x) => if x[Тип документа] = "возврат" then -1 else 1 происходит возврат значения 1 или -1.
но вот я искреннее не понимаю как происходит вызов функции (v, o, n) => v * n. И что за параметр "o" в формуле.




Но при этом все работает.
В любом случае спасибо, просто хотелось бы разобраться мне лучше , чтобы не беспокоить гуру форума в дальнейшем с простецкими вопросами.
Power Query замена значений в выбранных колонках на отрицательные при соблюдения условий в строке
 
Добрый день!
Существует проблема с отчетом.
Выгружен отчет где все цифры имеют положительные значения.
В столбце "J"  установлен статус это "Продажа" или "Возврат". Соответственно значения в строках "Продажа" должны иметь исходные значения, а вот в строках "Возврат" необходимо произвести умножения на значения "-1".

При в начальном параметре замена значений или стандартные операции нет возможности добавить условия по строке.
Заменить значения нужно  только в некоторых колонках (в предоставленном примере выделенные зеленой заливкой)
Может у кого есть идеи как это можно сделать.
Заранее спасибо за помощь  
Ошибка преобразование данных при создании функции в Power Query,, При создании функции поля имеют имеют идентичные типы, однако не понимаю почему идет дополнительное преобразование полей. В результате чего поля принимают значения Error и расчет не производится.
 
тему можно закрывать.
Всем спасибо.
Ошибка преобразование данных при создании функции в Power Query,, При создании функции поля имеют имеют идентичные типы, однако не понимаю почему идет дополнительное преобразование полей. В результате чего поля принимают значения Error и расчет не производится.
 
Цитата
написал:
Перед функцией сделайте замену null для текстовых полей на "", для числовых полей на 0Ошибка выходит из-за попытки сложить число с null, с тестом также
Ошибка выходит до попытки что то с чем то сложить .


Цитата
написал:
asdewq1 , Всё дело в параметрах Вашей функции, если Вы хотите предавать параметры, содержащие null, то используйте ключевое слово nullable. Хотя лично я не очень понимаю зачем Вам эта функция нужна (видимо на её развитие есть планы какие-то) и не рекомендую так поступать, чтобы потом геморроя не нахвататься с преобразованием типов. Например, при сложении Показатель1 с Показатель2 совсем не желаемый результат может получиться.Кодlet SumBonus=(Товар as nullable text,   Подробности as nullable text,  Показатель0 as nullable number, Показатель1 as nullable number, Показатель2 as nullable number, Показатель3 as nullable number, Показатель4 as nullable number )=>
Спасибо. Все сработало и без всяких замен.
Ошибка преобразование данных при создании функции в Power Query,, При создании функции поля имеют имеют идентичные типы, однако не понимаю почему идет дополнительное преобразование полей. В результате чего поля принимают значения Error и расчет не производится.
 
Добрый день!

Столбцы Товар и Подробности имеют  тип текст text, остальные столбцы имеют тип number.


При создании функции, где в расчет берутся все столбцы , выдает сообщение


Expression.Error: Не удается преобразовать значение null в тип Text.

Сведения:

  Value=

  Type=[Type]

Однако я не понимаю  почему преобразуется столбец если столбец изначально имеет тип значения текст.

И как лучше обойти данную ошибку???

[ Закрыто] Power Query, Ошибка преобразование данных
 
Добрый день!

Столбцы Товар и Подробности имеют  тип текст text, остальные столбцы имеют тип number.


При создании формулы где в расчет берутся все столбцы , выдает сообщение


Expression.Error: Не удается преобразовать значение null в тип Text.

Сведения:

   Value=

   Type=[Type]

Однако я не понимаю  почему преобразуется столбец если столбец изначально имеет тип значения текст.

И как лучше обойти данную ошибку???

Изменение настроек умной таблицы Power Query
 
Спасибо !!!
Но как выяснилось ,что методом научного тыкв можно сделать многое и самостоятельно нашёл решение.
однако все равно очень большое спасибо за помощь .
тему прошу закрыть .
Изменение настроек умной таблицы Power Query
 
Добрый день, форумчане!
посмотрев полезные трюки от Николая Павлова решил сделать сборку таблиц в единый файл с помощью power query.
И вроде бы все получилось. Таблицу полученную необходимо печатать и при этом ячейки содержат большое количество символов. Я топорным способом в  полученный результат из power query  в самом excel уменьшил длину строк и сделал перенос слов и все  уместил по ширине листа и вроде все хорошо, но при обновлении сбиваются настройки ширины листа и все встаёт на исходные позиции , а это очень сильно удручает. Может подскажите как можно зафиксировать ширину строк в excel ?
Искал настройки и ничего не нашёл  
Страницы: 1 2 След.
Наверх