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

Страницы: 1 2 3 4 След.
POWER QUERY ошибка импорта данных (отсутвие файлов)
 
Try и otherwise
Перебор %скидки до нужного значения, ПРОСМОТР()
 
БМВ, Вашу формулу с минусами по началу использовал, но не поняв зачем столько минусов и в попытках переписать/отредактировать по смыслу на свой привычный лад - потерпел поражение.
Решил воспользоваться более менее проще для восприятия формулой от MCH в ней всё очень прямолинейно и понятно, по моему личному мнению.
Так-то обе рабочие спору нет.

Сейчас Павел \Ʌ/ выдал ещё интересней формулу на которую гляжу и глаза в шоке. Внутри файла без LET пытаюсь вникнуть. Пробирает страх уложить по полочкам пока не распарсю построчно логику.
^ Спасибо!

Что с моим переваренным подходом на основе примера использования MCH не так?
Округление и не округление величин эффект не дало. Математически правильно написано, десяток скобок аж для подстраховки добавлял.
Хотелось бы и дальше нести это знание комбинации двух формул!
Изменено: jiumohoo - 18.03.2024 11:07:30
Перебор %скидки до нужного значения, ПРОСМОТР()
 
Подскажите пожалуйста, куда копать в расчете?
Перебор %скидки до нужного значения, ПРОСМОТР()
 
Здравствуйте.
Обращался ранее по текущему вопросу и рад ответам.

Понадобилось увеличить количество переменных зависящих от цены.
Добавив новые переменные в новой ситуации по той же логике по формуле от MCH на выходе не получался нужный результат.
Почему-то требуется дополнительно к расчёту угадывать число с приплюсовыванием для получения правильной скидки. Методом тыка понял, что надо -3 дописать.
Вопрос: почему что-то надо дописывать?
БМВ в своём ответе дописывал +8 к формуле, как пример.



---------------------------
Касаемо обращения.

Почему в моей расчётной формуле основанной на примере от МСН выходная скидка по большинству случаю не совсем близка к условию?


Для примера поправил 3 строки вручную и получаю нужный мне % из условия. Но вот формула косячит.




Просьба помочь подправить. Конечно можно ещё обернуть в LET() для простоты чтения, но сам факт её неверного расчёта не понимаю как исправить.
Код
=ПРОСМОТР($V$6;
((U8-U8*(90-СТРОКА($10:$899))%)-T8-
(((U8-U8*(90-СТРОКА($10:$899))%)*$J$6)+
((U8-U8*(90-СТРОКА($10:$899))%)*I8%)+
L8+
(ЕСЛИ(ИЛИ(E8>=25;H8>=200);500;ЕСЛИ((U8-U8*(90-СТРОКА($10:$899))%)*5,5%<13;13;МИН((U8-U8*(90-СТРОКА($10:$899))%)*5,5%;300))))+
((U8-U8*(90-СТРОКА($10:$899))%)*$Q$6)+
((U8-U8*(90-СТРОКА($10:$899))%)*R8)))
/(U8-U8*(90-СТРОКА($10:$899))%);(90-1-СТРОКА($10:$899))%*100)-3


Колонка V с этой формулой считает нужную скидку по условию % маржи из заголовка.
Новый перебор.xlsx (113.2 КБ)
Изменено: jiumohoo - 15.03.2024 11:47:55
Проблема с ВПР и ОКРУГЛТ
 
Тоже нашёл лишь 2 варианта, округлять в зависимости от длстр или подставить , на ,
ABS, Значен, *1, --, прочие приколы не помогали.
Под капотом ОКРУГЛТ какое-то своё мышление у эксель
Повернуть текст в ячейке не меняя высоту строки
 
Здравствуйте. Не удаётся найти решение казалось бы на банальный вопрос.
То ли майкрософт не продумал вариант и проблема с первого дня, как появился продукт.


В горизонтальном положении если текст длинней размера ячейки - вылазит за неё.
В вертикальном положении - увеличивается высота строки из-за смены формата ячеек.
Ну не может же так быть непродуманно.

Без макросов штатным методом такое возможно? Попробовал формулу, а она массивом выдаёт наоборот результат продолжая его вниз под изначальный текст. Должен уходить вверх. Если есть вариант, то мою формулу в листе реверсивно перевернуть попробовать...
Изменено: jiumohoo - 18.10.2023 19:51:30
Разделение одного числа на два, Разделение числа
 
Случмежду (1 и ячейкой), вторая ячейка вычитание исходного от рандома
Изменено: jiumohoo - 24.07.2023 15:10:44
PQ: Как увеличить количество выдаваемых строк в ответе на запрос по API, если в условиях запроса ограничение 1000 строк?
 
Это GetOrders название функции
Код
(offset as number) =>
 let
  URL = "https://api-seller.ozon.ru/v2/posting/fbo/list", 
  Client_Id = Number.ToText(Excel.CurrentWorkbook(){[Name = "Client_Id"]}[Content]{0}[Column1]), 
  API_Key = Excel.CurrentWorkbook(){[Name = "API_Key"]}[Content]{0}[Column1], 
  from = Excel.CurrentWorkbook(){[Name = "frooom"]}[Content]{0}[Column1], 
  to = Excel.CurrentWorkbook(){[Name = "tooo"]}[Content]{0}[Column1], 
  Headers = [#"Content-Type" = "application/json", #"Client-Id" = Client_Id, #"Api-Key" = API_Key], 
  Body = "{""dir"":""ASC"",""filter"":{""since"":"""&from&"T00:00:00.000Z"",""status"":"""",""to"":"""&to&"T23:59:00.000Z""},""limit"":1000,""offset"":"&Number.ToText(offset)&",""translit"":true,""with"":{""analytics_data"":true,""financial_data"": false}}", 
  Response = Function.InvokeAfter(() => Json.Document(Web.Contents(URL, [Content = Text.ToBinary(Body), Headers = Headers])),#duration(0, 0, 0, 0.2))[result], 
  ToTable = Table.FromRecords(Response)
 in
  ToTable
А это иной запрос. Можешь вшить всё в одно
Код
let
 Source = List.Generate(() => 
[Result = try GetOrders(0) otherwise null, page = 0], 
each [Result] <> null, 
each [Result = try GetOrders([page] + 1000) otherwise null, page = [page] + 1000], 
each [Result]), 
 Table = Table.Buffer(Table.Combine(Source))
in
Table


Проверил на своём коде старом, не помню тонкости можно ли в запросе указать период свыше 30-60 дней и всё эдакое. Код рабочий. Данные за неделю вывел
Изменено: jiumohoo - 18.07.2023 15:27:10
Сводная таблица фильтр по подписи не формат даты, а текстовый промежуток дат
 
Ігор Гончаренко, Дак тут комплекс выходит в таком случае. Отфильтровать отрезав ненужное и после если итоговый список будет как попало расположен, то и сортировку применить. Пока что, если вручную тыкать скролив список в фильтре и тыкать на новые данные, то периоды располагаются корректно. По этому мысли об сортировке не возникало.
Поскольку проблем с сортировкой не встречал при клацанье, то думаю это неактуально пока не будет итога от химии внутри фильтра.

Работает с "Содержит", но вот "Больше" и всё с этом духе использовать - победить не получается
Изменено: jiumohoo - 18.07.2023 11:49:20
Сводная таблица фильтр по подписи не формат даты, а текстовый промежуток дат
 
Здравствуйте.
Не хочется добавлять в источник данных дополнительный столбец для такого вопроса с вычленением даты. И в модели данных аналогично.
Строки подписаны таким образом
03.07.2023-09.07.2023
10.07.2023-16.07.2023
К примеру надо отфильтровать всё в большую сторону от ??.05.2023 (от первой даты в периоде)
Пытался с символами играться в поле используя */? - результат не получаю нужный. Там кажется ещё формулы кушаются, но также не получилось

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

Есть ли решение?
Файл весит больше 300 кб... Даже до 1000 строк урезав - не смог приложить пример
https://disk.yandex.ru/d/qfqa8a47vNlwiw
Изменено: jiumohoo - 18.07.2023 10:32:22
Сослаться на ячейку в которой логический оператор и число, Сослаться на ячейку в которой логистический оператор и число Формула
 
Msi2102, самое скромное и компактное решение.
Павел с Востока, такое не вшить в формулу, на рабочем варианте очень страшно будет выглядеть.
БМВ, есть проблема с тем, что мозг думает и руки делают на автопилоте. Мыль быстрей рук от чего такие приколы в тексте) Спасибо за поправку в заголовке, в тексте тоже подправил.
Сослаться на ячейку в которой логический оператор и число, Сослаться на ячейку в которой логистический оператор и число Формула
 
Диспетчер имен - понял.
Альтернативные варианты возможно ещё кто знает, которые краткие?  
Сослаться на ячейку в которой логический оператор и число, Сослаться на ячейку в которой логистический оператор и число Формула
 
,
https://forum.ozgrid.com/forum/index.php?thread/117916-constructing-a-dynamic-if-expression-with-a-v...
Я тут находил EVALUATE, но почему эта формула какая-то скрытая и доступна в диспетчере имен?

Бился с поиском что за формула такая EVALUATE и сдался)
Изменено: jiumohoo - 30.05.2023 14:14:42
Сослаться на ячейку в которой логический оператор и число, Сослаться на ячейку в которой логистический оператор и число Формула
 
Здравствуйте.
Задача закомментировать условия, которые будут использоваться в расчётах.

Править формулу если что-то изменится в <>= это трудоёмко.

Простой пример
=100 >= 200
=A1>=A2
И вот как бы оператор прикрутить в одну формулу)))
=A1&operator&A2 - ошибка :(
Вроде как формула "И(" превращает в логическое выражение, но тоже не получается. ДВССЫЛ аналогично, +0 тоже

Наверно есть простейшее решение, но не вижу. Громоздкие через Суммпроизв или Выбор - не то.  
Изменено: jiumohoo - 31.05.2023 09:50:18
PQ. Их накопительных данных выводить данные из последнего файла, если их нет брать из последнего
 
, по SKU. Спасибо за свой вариант тоже!
PQ. Их накопительных данных выводить данные из последнего файла, если их нет брать из последнего
 
Alien Sphinx, Спасибо!
Изменено: jiumohoo - 23.05.2023 12:58:33
PQ. Их накопительных данных выводить данные из последнего файла, если их нет брать из последнего
 
Здравствуйте.
Периодично происходит парсинг данных с сайта, но проблема апи запроса в том, что при пагинации всё равно имеет свойство дублировать товар на любой из другой страниц. Это побороть не получается и не сильно горит, потому что вполне устраивает накопление данных, ибо хоть когда-то все товары соберутся. Задача получать из накапливаемых данных информацию из последнего, ибо она свежая и тянуть все отсутствующие артикула из других файлов, а также брать данные из как раз-таки по последней дате файла, как можно свежей.

csv имеет такие колонки
АртикулSKUРейтингКол-во отзывовОценок покупателя
Пример на артикуле: CH-AN-030-000004(тут цвет неважен в примере, ибо цифры в идентичны между ними)
xlg_tmp_2023_04_07T13_14_25.csv (рейтинг 0, кол-во отзывов 1, оценок 0)
xlg_tmp_2023_04_27T13_14_25.csv (рейтинг 3,71, кол-во отзывов 14, оценок 17)
xlg_tmp_2023_05_23T10_35_43.csv (рейтинг 4,13, кол-во отзывов 39, оценок 45)

На выходе нужно получить
CH-AN-030-000004  (рейтинг 4,13, кол-во отзывов 39, оценок 45)

А вот другая ситуация с ухудшением по причине того, где не понял, как бороться.
Снова пример неважно какой артикул такие там есть.
xlg_tmp_2023_04_07T13_14_25.csv (рейтинг 5, кол-во отзывов 5, оценок 5)
xlg_tmp_2023_04_27T13_14_25.csv (рейтинг 1, кол-во отзывов 22, оценок 22)
xlg_tmp_2023_05_23T10_35_43.csv (рейтинг 1, кол-во отзывов 39, оценок 45)
То бишь, Table.Group макс по дате и взять то и сё поле на выходе мне даёт совсем не те значения.
На выходе нужно получить: (рейтинг 1, кол-во отзывов 39, оценок 45)

Артикул собранный из всех файлов / дата наименования файла откуда взято, ибо свежей данных не встретилось / сами данные



Нужно аккумулировать артикула из всех файлов и к ним взять данные как можно свежей по дате наименования файлов.
Я тестово пробовал в приложенном файле через Table.Group и прочие комбинации, но на выходе неверно, скил слабый. Намесил грязи.
Изменено: jiumohoo - 23.05.2023 11:51:30
В PQ запросе не удаётся подставить API из воркшита, ругается, API запрос на Озон выдаёт ошибку "An on-premises data gateway is required to connect."
 
Иван,
Код
let
  URL = "https://api-seller.ozon.ru/v2/posting/fbo/list", 
 Client_Id = "xxx", 
 API_Key = "xxxxxxxxxxxxxxxxxxxxx", 
  DateFrom = Excel.CurrentWorkbook(){[Name = "Ord_fbO_OZN_DateFrom"]}[Content]{0}[Column1], 
  DateTo = Excel.CurrentWorkbook(){[Name = "Ord_fbO_OZN_DateTo"]}[Content]{0}[Column1], 
  Headers = [#"Content-Type" = "application/json", #"Client-Id" = Client_Id, #"Api-Key" = API_Key], 
  Body = "{""dir"":""ASC"",""filter"":{""since"":"""&DateFrom&"T00:00:00.000Z"",""status"":"""",""to"":"""&DateTo&"T23:59:00.000Z""},""limit"":1000,""offset"":0,""translit"":true,""with"":{""analytics_data"":false,""financial_data"": false}}", 
  Response = Function.InvokeAfter(() => Json.Document(Web.Contents(URL, [Content = Text.ToBinary(Body), Headers = Headers])),#duration(0, 0, 0, 0.2))[result], 
  ToTable = Table.FromRecords(Response)
in 
ToTable
В PQ запросе не удаётся подставить API из воркшита, ругается, API запрос на Озон выдаёт ошибку "An on-premises data gateway is required to connect."
 
Всё нормально работает. Офис 365
Код
let
 URL = "https://api-seller.ozon.ru/v3/finance/transaction/list", 
 Client_Id = Text.From(Excel.CurrentWorkbook(){[Name="cl"]}[Content]{0}[Column1]), 
 API_Key = Excel.CurrentWorkbook(){[Name="kkk"]}[Content]{0}[Column1], 
    DateFrom = Excel.CurrentWorkbook(){[Name="FinOZNDateFrom"]}[Content][Column1]{0},
    DateTo = Excel.CurrentWorkbook(){[Name="FinOZNDateTo"]}[Content][Column1]{0},
 Headers = [#"Content-Type" = "application/json", #"Client-Id" = Client_Id, #"Api-Key" = API_Key], 
 Body = "{""filter"":{""date"":{""from"":"""&(DateFrom)&"T00:00:00.000Z"",""to"":"""&(DateTo)&"T23:59:59.000Z""},""operation_type"":[],""posting_number"":"""",""transaction_type"":""all""},""page"":1,""page_size"":1000}", 
 Response = Function.InvokeAfter(() => Json.Document(Web.Contents(URL, [Content = Text.ToBinary(Body), Headers = Headers])), #duration(0, 0, 0, 0))[result][operations],
    Table = Table.FromRecords(Response)
in
Table
PQ. Подготовить POST запрос русские буквы из каши обратно в русские
 
Оказывается, сервер может переваривать эту кашу на адекватный лад и не нужно морочится. Отправлять как есть Text.FromBinary  
Неактуально. Можно закрыть тему :)
PQ. Подготовить POST запрос русские буквы из каши обратно в русские
 
Здравствуйте.
Необходимо подготовить тело для запроса.
Облазил кодировки и все перетестил https://learn.microsoft.com/en-us/powerquery-m/textencoding-type
в Json.FromValue и Text.FromBinary

Проблема


На выходе в запросе toJson должно получиться
["CH-BP-008-000003желтый","CH-BP-POPIN-000002бордовый"]


Лечение в гугле совсем не нашёл. В основном обратный принцип, как из ответа получить адекватные буквы (юзать локаль или 1251 вроде как).

Русские буквы.XLSX (15.99 КБ)

:(
PQ. Рекурсивный запроc API не получается pagetoken пустить по кругу
 
Решил.
Код
let
    baseQuery = "https://api.partner.market.yandex.ru/v2/campaigns/"&Camp&"/offer-mapping-entries.json?limit=200&page_token=",
    Headers = [#"Authorization"="Bearer "&Token],

    FX = (FX) =>
let
    Source = Function.InvokeAfter(()=>Json.Document(Web.Contents(baseQuery&FX,[Headers=Headers])),#duration(0,0,0,0.4)),
    data = try Source[result][offerMappingEntries] otherwise null,
    next = try Source[result][paging][nextPageToken] otherwise null,
    res = [Data=data, Next=next]
in
    res,

    GeneratedList = List.Generate(()=>
    [res = FX("")],
    each [res][Data]<>null,
    each [res = FX([res][Next])],
    each [res][Data])
in 
    GeneratedList
PQ. Рекурсивный запроc API не получается pagetoken пустить по кругу
 
Здравствуйте.
Схожая тема с решением. Делаю идентично, но не без прикола
https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=140847&a...

Попробовал такой подход и не крутит по кругу, отадёт только 200 строк, как в запросе
Код
let
    baseQuery = "https://api.partner.market.yandex.ru/v2/campaigns/"&Camp&"/offer-mapping-entries.json?limit=200&page_token=",
    Headers = [#"Authorization"="Bearer "&Token],
    
     generate = List.Generate(() => 
     [response = Json.Document(Web.Contents(baseQuery,[Headers=Headers]))[result]],
each [response][paging][nextPageToken]? <> null,
each [response = Json.Document(Web.Contents(baseQuery & Text.From([response][paging][nextPageToken]),[Headers=Headers]))],
each [response][offerMappingEntries])
in
    generate

Другая попытка
Код
let

    baseQuery = "https://api.partner.market.yandex.ru/v2/campaigns/"&Camp&"/offer-mapping-entries.json?limit=200&page_token=",
    Headers = [#"Authorization"="Bearer "&Token],
    
    Source = List.Generate(() => 
    [response = Json.Document(Web.Contents(baseQuery,[Headers=Headers]))[result], page_token = ""],
each [response][paging][nextPageToken]? <> null,
each [page_token = [response][paging][nextPageToken], response = Json.Document(Web.Contents(baseQuery&Text.From([page_token]),[Headers=Headers]))],
each [response][offerMappingEntries]),
Source1 = Source{0}
in
Source1



----
Так выглядит голый запрос с &page_token=



Так выглядит проверка условия, когда докрутилось до последнего page_token и в ответе нет nextPageToken



В обоих случаях парсит только 1 раз. Не улавливаю, что не туда с этим рекурсивом -.-




Как правильно передавать токен в третье условие функции?  
Изменено: jiumohoo - 08.02.2023 22:43:17
Получение и обработка данных по API из личных кабинетов Озон и ВБ в PQ
 
Михаил Леонтьев, Пагинация по сути везде одинаковая (WB и Ozon ничем не отличаются от способов в ютубе и гугле). Решение есть через List.Generate на форуме, ютубе, гугле.
Изменено: jiumohoo - 02.02.2023 23:14:42
макрос для копирования новых данных
 
Отчёты комиссионера не проще комбайнить? Подумаешь 100 файлов за 2 года, зато знаешь чуть что где искать подлянку.
А лучше местному программисту дать ТЗ по необходимости перекачивать из кабинета все файлы заново (когда они добавляют новые столбцы и всё такое, то в старых отчётах это всё добавляется тоже).
Функция "ЕСЛИ" при нескольких условиях, Своевременность уведомления от нескольких условий
 
Код
=ЕСЛИ(A2="Негабарит";ЕСЛИ(C2-B2>14;"Своевременно";"Несвоевременно");ЕСЛИ(C2-B2>3;"Своевременно";"Несвоевременно"))
PQ не видит всего кода сайта, При парсинге старницы PQ видит только часть кода
 
Игорь, давно заметил, что ВБ запросы отдаёт всегда по разному. Иногда даже через инкогнито не отображает нужный. Пару раз рефрешишь и вот он нужный вылазит.
А так я знаю, что у Озона и ВБ происходит подгрузка данных при прокручивании страницы. В общем сколько не пытался - не получилось выбить этот запрос.

Зато после твоего сообщения запрос выбился, но вот такой https://feedbacks2.wb.ru/feedbacks/v1/77581331 (айдишник тоже root) хотя бы в тело запроса не надо передавать.
Спасибо конечно, удача сыграла на руку.

lilu k, другая ссылка для примера выше текстом на примере этой карточки https://www.wildberries.ru/catalog/140108362/detail.aspx
Изменено: jiumohoo - 10.01.2023 22:09:15
PQ не видит всего кода сайта, При парсинге старницы PQ видит только часть кода
 
Игорь, я нетворк браузера перерыл и не могу найти такой запрос. Откуда его вытащить получилось?

https://www.google.com/search?q=%22public-feedbacks.wildberries%22 гуглится запрос, но откуда взята ссылка)
Автоподстановка значений по условию, Разыскивается способ заполнения таблицы.
 
Александр, вариант на ВПР?

test.xlsx (9.69 КБ)
Подставить в фразы значения вместо переменных из соседних столбцов
 
Тимофеев, вдруг не поймёт :)
Код
=ОБЪЕДИНИТЬ(" ";ИСТИНА;G6:AJ6)
Страницы: 1 2 3 4 След.
Наверх