Здравствуйте. Совсем нулевые знания DAX. Кое как через GPT пробовал скормить задачу и выдаёт решение такое, но оно работает с ошибкой в строках, ничего не вычисляет. Почему Мера выдаёт верно в Итогах, но ничего не считает там где хотелось бы?
Пробовал гуглить ещё использовать CALCULATE(SUM(таблица);Календарь) эффект ровно тот же, что есть и нет Итог считает, но не данные в сводной
В желтых строках должен быть ДРР расход/оборот вычисляемый и снизу Итог должен быть таким какой сейчас
Доп. вопрос. Нормально что при загрузке из pq таких маленьких данных он на 1-2 секунду задумывается? Когда нажимаю обновить сводную или все запросы. Есть ли рекомендация что можно оптимизировать? Полагаю Тип лучше в PQ прикрутить столбец, а не в самом PP?
И меры пробовал в значения выносить - эффект тот же
Здравствуйте. Требуется формула для поиска ячейки с датой и повторением её в динамическом массиве пока не встретится следующая дата и так далее.
Строка2 - это пример другой формулы, где указав массив она на него и растягивается и неважно что внутри я с колонками делаю. Точно также хочу и дату повторять
Здравствуйте. Обращался ранее по текущему вопросу и рад ответам.
Понадобилось увеличить количество переменных зависящих от цены. Добавив новые переменные в новой ситуации по той же логике по формуле от MCH на выходе не получался нужный результат. Почему-то требуется дополнительно к расчёту угадывать число с приплюсовыванием для получения правильной скидки. Методом тыка понял, что надо -3 дописать. Вопрос: почему что-то надо дописывать? БМВ в своём ответе дописывал +8 к формуле, как пример.
--------------------------- Касаемо обращения.
Почему в моей расчётной формуле основанной на примере от МСН выходная скидка по большинству случаю не совсем близка к условию?
Для примера поправил 3 строки вручную и получаю нужный мне % из условия. Но вот формула косячит.
Просьба помочь подправить. Конечно можно ещё обернуть в LET() для простоты чтения, но сам факт её неверного расчёта не понимаю как исправить.
Здравствуйте. Не удаётся найти решение казалось бы на банальный вопрос. То ли майкрософт не продумал вариант и проблема с первого дня, как появился продукт.
В горизонтальном положении если текст длинней размера ячейки - вылазит за неё. В вертикальном положении - увеличивается высота строки из-за смены формата ячеек. Ну не может же так быть непродуманно.
Без макросов штатным методом такое возможно? Попробовал формулу, а она массивом выдаёт наоборот результат продолжая его вниз под изначальный текст. Должен уходить вверх. Если есть вариант, то мою формулу в листе реверсивно перевернуть попробовать...
Здравствуйте. Не хочется добавлять в источник данных дополнительный столбец для такого вопроса с вычленением даты. И в модели данных аналогично. Строки подписаны таким образом
03.07.2023-09.07.2023
10.07.2023-16.07.2023
К примеру надо отфильтровать всё в большую сторону от ??.05.2023 (от первой даты в периоде) Пытался с символами играться в поле используя */? - результат не получаю нужный. Там кажется ещё формулы кушаются, но также не получилось
Задумка просто обновлять сводную таблицу и чтобы новые данные добавлялись от заданной границы. А когда захочется подправить новый период - зайти в фильтр и поменять границу
Здравствуйте. Задача закомментировать условия, которые будут использоваться в расчётах.
Править формулу если что-то изменится в <>= это трудоёмко.
Простой пример =100 >= 200 =A1>=A2 И вот как бы оператор прикрутить в одну формулу))) =A1&operator&A2 - ошибка Вроде как формула "И(" превращает в логическое выражение, но тоже не получается. ДВССЫЛ аналогично, +0 тоже
Наверно есть простейшее решение, но не вижу. Громоздкие через Суммпроизв или Выбор - не то.
Здравствуйте. Периодично происходит парсинг данных с сайта, но проблема апи запроса в том, что при пагинации всё равно имеет свойство дублировать товар на любой из другой страниц. Это побороть не получается и не сильно горит, потому что вполне устраивает накопление данных, ибо хоть когда-то все товары соберутся. Задача получать из накапливаемых данных информацию из последнего, ибо она свежая и тянуть все отсутствующие артикула из других файлов, а также брать данные из как раз-таки по последней дате файла, как можно свежей.
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 и прочие комбинации, но на выходе неверно, скил слабый. Намесил грязи.
Здравствуйте Требуется отыскать категорию товара в большом справочнике, название которой повторяться может неоднократно, а находиться должно самым крайним в строке Соответствие категории приходится на последнюю её иерархию
Пример:
Нужно найти тариф на категорию "Сумки" и вытащить 6% Формулу, что написал тащит первое вхождение = 10%, что категорически неверно Как её переделать, чтобы искала последнее значение по последнему вхождению на каждой строке не представляю
Значения в ячейках по типу: 60.5/90/60.5 Преобразую через Подставить заменив точку на запятую и слеш на плюс, результат 60,5+90+60,5 = никак не могу сложить pl ex.xlsx(22.7 КБ) В гугле есть пример с весом в КГ, который убирается тем же Подставить и суммируют диапазон преобразованных ячеек и это совсем не то)
Самое дикое решение вижу это вычленение каждого числа по разделителю и после сложить. Формула на выходе будет трешевой
Здравствуйте. Необходимо рассчитать процент скидки до маржи на определенный процент (ссылка на ячейку к примеру 15%). Я сделал колхозный вариант в 60 вложений ЕСЛИ с подстановкой в каждое выражение скидки.
1) упёрся в ограничение 8192 знаков; 2) сократив формулу до 8000 знаков попал на непонятный баг, что с 100 строки формула визуально и технически ломается. Пропадает формула ЕСЛИ, но вроде как она считает, только книгу как .xlsx сохранить нельзя. Сильно напрягает такой вариант поведения формулы.
Просьба помочь, как ещё можно добиться варианта перебора значений. То ли как-то формулы массива применить и в них не особо понимаю. Перебор значений вместо ЕСЛИ.xlsx(57.15 КБ)
Здравствуйте. Просьба помочь макросом пересохранить каждый файл в папке в последовательности возрастания Вот такое безобразие в папке (300 файлов +/- хаотично сохранены)
Выгрузил из PQ на лист Folder Path и Name. Name разбил на доп. столбцы, чтобы выставить сортировку по дате. На основании порядка строк в таблице в той же последовательности пересохранить каждый файл. Вес файлов разный от 10 кб до 5000 кб, по этому наверно ещё задержку надо прописать символическую (наверно, но не уверен, что это нужно).
Пересохранить.xlsx(28.45 КБ)Отсортировал в колонке D. В колонке Е обратно сцепил путь к файлам. И по колонке Е последовательно строкам запустить макрос
Абсурд какой-то. Можно ли как-то вычленить хотя бы косвенно, что не нравится? Браузер по умолчанию на эксплорер менялся. Ссылки Https на Http заменял. Пару недель назад всё работало, сейчас такая вот проблема с озоном...
Здравствуйте. При запросе на разный товар поле options (List) содержит разное количество строк в ответе. Дополнительная проблема состоит в том, что в последствии обернув в функцию запрос будет отдавать разное количество столбцов Name с их характеристиками по каждому айдишнику (вопрос кажется решил, добавил список AllHeaders, который нужно будет подставить при раскрытии).
В файле имеется: функция nmid - это как сейчас работает, без высасывания содержимого в options. Table- айдишки берутся с таблицы + кастомный столбец функция nmid.
Будет функцией (Форум) - тот же самый nmid, только не функция. На котором можно играться пытавшись развернуть options.
Колонка Name должна стать заголовками, а value и measure сцепил кастомной колонкой "пользовательская". Развернуть эти колонки в строчку, оставив лишь 1 строку со всеми значениями.
А другого айдишника иное количество колонок Name из-за чего не представляю, как потом срастить одну таблицу.
Пример
Поскольку у "категории" свои наименования характеристик, то создал Список со всеми возможными заголовками из options по категориям. Проблем свести в одну таблицу разные категории не будет.
После того, если всё-таки возможно распарсить мою задачу, просьба обернуть сразу в функцию и попробовать на Table
Наскальные рисунки для понимания чего хочется. parse.xlsx(111.29 КБ)
С радостью оплачу решение задачи, если она не тянет на бесплатную помощь. Сообщите, перенесу в платную ветку. Также нет проблем, если имеется совершенно иное решение, а не моё из топика.
Здравствуйте. На работе после перехода офиса с 2016 на 2019 эксель стал работать отвратительно (все смирились, но не я). Поскольку всё дело на серваке, то айтишник крайне нежелательно вообще что-либо делает. Кажется даже пакеты обновлений windows не делаются, либо максимально поздно (мб через полгода) или просто скачать какой-нибудь хотфикс офиса - даже близко не делается, якобы что-то может где-то полететь. Как по мне бред. Увы и ах, ситуация такова, что работайте как есть... Всевозможные варианты перегуглил, надстройки повырубать, другие кнопки офиса потыкать из гайдов, безопасный режим excel - бесполезняк.
Когда процессов excel нет - открывает бодрячком.
Закрываю книги - процессы висят.
Открытых книг нет - процессы прошлых висят - запускаю новые файлы = понеслась... 3 старых закрытых книги висят + 3 новых запущенных, но открываются до жути долго (5-20 секунд, может и дольше). Разницы нет даже если в примере 1 книгу открывал бы - эффект одинаков.
Старые процессы пропадают примерно спустя 2-3 минуты. Шара по времени. Если работать в открытых книгах Х время и закрыть, то следующие также быстро откроются. Никто не работает весь день в 1-2 книгах, чтобы не испытывать проблем с лютейшей задержкой открытия книг.
Возможно ли написать макрос, который будет убивать процесс от каждой книги после закрытия? (В надстройку запихать). В данный момент использую батник, чтобы убить весь эксель разом. Не лучшее решение, но по крайней мере не надо ждать. taskkill /f /im excel.exe
Как сделать автоматическое изменение ссылок при запуске любого нового файла? Пытался дописать ActiveWorkbook к .Application увы тщетно. Ведь при запуске любого файла вторым делом запускается надстройка и ActiveWorkbook - ошибка
В надстройке имеется Sub Auto_Open() Только как правильно вписать, чтобы действие происходило не в файле надстройки
При каждом открытии файла "запросы и подключения" в развёрнутом виде. Запросы разбил по группам, которые должны вместе обновляться. Неприятно то, что нужно скролить список запросов... А будь список из 50+ запросов.... и сделать группировку, то они всё равно развёрнуты окажутся. Какой смысл от группировки? Помимо того, что обновить можно запросы именно в этой группе. То ли не продумано, то ли я что-то пропустил? Сие список, чтобы всегда был скрыт по группам.
Здравствуйте. Погуглил способ, как зациклить веб запрос для ожидания статуса ответа и нашёл 2 варианта, но сил не хватает осилить их использование. List.Generate и Value.WaitFor
Есть 2 запроса API. В первом запрашивается информация - отдаётся ключ для отчёта.
В этот момент сайт начал формировать отчёт и уйти на это может от 1-й секунды до Х секунд(минут).
Во втором запросе отправляется ключ полученный из первого запроса для получения отчёта. Поскольку запросы уходят почти мгновенно, то статус 2-го запроса выглядит таким образом, то есть всё ещё формируется processing.
Меня это не очень устраивает, поскольку как выше написал формироваться отчёт может непонятное время. Ставить 15 секунд, а может 2 минуты - это угадайка.
Как зациклить запрос вместе с задержкой при помощи Power Query? Видится возможность ориентироваться на статус. status = processing, повторить запрос через 5 секунд и так по кругу при получении processing.
status = success, продолжить извлекать информацию оставшись в том же запросе Json.Document(Web.Contents(SecondURL,[Content = Text.ToBinary(SecondBody), Headers = Headers]))[result]
Вспомогательная ссылка в которой статус processing/success Test = Json.Document(Web.Contents(SecondURL,[Content = Text.ToBinary(SecondBody), Headers = Headers]))[result][status]
Как я понял принцип List.Generate, но не получилось, если это вообще хотя бы примерно правильно... Сильно напомнило формулу Если :C List.Generate(()=> "success", Test = "processing", Test)
let
URL = "https://api-seller.ozon.ru/v1/analytics/item_turnover",
ID = "ключ",
API = "ключ",
Date_from = Excel.CurrentWorkbook(){[Name="Date_from"]}[Content]{0}[Column1], - эту дату запихнуть в Body вместо ручной даты в коде
Headers = [#"Content-Type" = "application/json", #"Client-Id" = ID, #"Api-Key" = API],
Body = "{""date_from"":""2022-03-01""}",
Response = Json.Document(Web.Contents(URL, [Content = Text.ToBinary(Body), Headers = Headers]))
in
Response
Аналогичная тема есть у другого юзера, где решение самого запроса было иным через Json.FromValue, но у меня почему-то этот вариант отказывается работать. И может быть там можно сделать то, что я хочу...
В основе всех запросов желание брать переменные с листа на примере даты 2022-03-01. По принципу Excel.CurrentWorkbook(){[Name="date_from"]}[Content]{0}[Column1]
Незадача в том, что не нашёл способ, как подпихивать в двухкавычный json вставку значений с листа. Подскажите пожалуйста, как провернуть
Название темы сложно подобрать под суть вопроса. Модераторы, отредактируйте пожалуйста, если более внятно получится понять.
Айди вопроса - уникален для каждого вопроса. Основная печаль, как креативно решить задачу фиксирования комментария по "Айди вопроса" на листе, который парсится, поскольку при обновлении данных комментарий смещается на совершенно другой Айди из-за движения таблицы.
Имеется 2 запроса на сайт с отзывами 1 запрос на архив (отвеченные вопросы) 2 запрос на вопросы
В приложенном файле: 2 листа "Вопрос на сайте хранится" и "Архив на сайте хранится" - сделал их для имитации хранения данных на сайте. 2 листа "Парсинг архива" и "Парсинг вопросов" - обращаются к двум листам выше опять же для имитации запроса. 1 лист "Объединение запросов" через Table.Combine объединено в общую таблицу.
Лист "Объединение запросов" - рабочая зона. На листе добавлена колонка J вручную (не через PQ). В которой пишется комментарий напротив конкретного вопроса с пометкой для себя. Мол, если вопрос требует ответа с особыми знаниями по товару, то комментарий пишется "Вопрос передан производителю" ну и всякое такое. Проблема в том, что при обновлении запросов эта таблица движется и текст из колонки J попадает на другой вопрос (айди). Как можно красиво решить вопрос зафиксировав указанный комментарий по требуемому вопросу (айди)?
Один из вариантов, что могу придумать это вести вторую таблицу, куда копировать надо айди вопроса и сам комментарий, а дальше через PQ сращивать или просто ВПР. (Ну это работа ради работы, чтобы делать дубликаты... Мне категорически не нравится).
Чтобы создать движение таблицы "Объединение запросов" для имитации работы: надо на листах "Вопрос на сайте хранится" перекинуть любой вопрос в "Архив на сайте хранится", мол ответил на вопрос и тот улетел в архив. Либо просто докинуть в лист "Вопрос на сайте хранится" самодельную строчку вопроса. И обновить запросы. Строчка комментария сместится на совершенно другой айди...
Недавно заметил, что не могу открыть конструктор в умных таблицах. Год назад колупал настройки эксель (может где выключил, но сейчас несколько раз пролазил - безуспешно).
Нет конструктора Окей, включил кнопку в свойствах У сводных таблиц всё замечательно с конструктором Вопрос, что пошло не так?
PQ классная штука, но видимо надо язык М учить, чтобы делать нечто большее. Посмотрел заморские видео, как парсить из списка, но там пример на BI и немного иное.
Имеется ли способ хоть как, даже колхозно, спарсить цены в ячейку? Или спарсить сам Url+цена и в отдельную таблицу. Итоговое количество ссылок, которое понадобится парсить штук 30 максимум. Думал сделать 30 отдельных запросов на каждую ссылку, но мне сказали эксель умрёт и это тупо. Ко всему этому как бы не пытался не смог значения срастить ссылка+цена.
Здравствуйте. Имеется скрипт, который веб ссылки на картинки и преобразует в картинки. Всё бы ничего, но вот такая беда с вертикальными фотками, что улетают в сторону. Помогите обуздать сие проблему, фиксануть скрипт. Пусть уж лучше будет плоско выглядеть, чем так. Или как вариант поворачивать на 90 градусов, тогда по сути должно красиво растягиваться в ячейке.
Скрытый текст
Код
Public Sub Add_Images_To_Cells()
Dim lastRow As Long
Dim URLs As Range, URL As Range
Dim pic As Picture
Dim urlColumn As String
With ActiveSheet
urlColumn = "H"
lastRow = .Cells(Rows.Count, urlColumn).End(xlUp).Row
Set URLs = .Range(urlColumn & "2:" & urlColumn & lastRow)
End With
For Each URL In URLs
If InStr(URL.Value, "http") > 0 Then
URL.Offset(0, 0).Select
Set pic = URL.Parent.Pictures.Insert(URL.Value)
With pic.ShapeRange
.LockAspectRatio = msoFalse
.Height = URL.Offset(0, 0).Height - 1
.Width = URL.Offset(0, 0).Width - 1
.LockAspectRatio = msoTrue
End With
DoEvents
End If
Next
End Sub