Пытаюсь раскрыть через "Table.ExpandTableColumn" таблицу в колонке [Пользовательский] изменяя исходный список заголовков в колонке [cn] на новые наименования заголовков из [cn_new].
Понимаю что первая запись это вся исходная таблица, далее колонка которую раскрывают, потом исходный заголовки, и завершают колонки как должны быть.
Правила знаю про пример в файле, но тут кажется достаточно данного скрина (или нет?)))))
День добрый. Пытаюсь в Excel формулами пересчитать НДФЛ по новым правилам с 2025 года. В файле указал пример где красным подсветил ежемесячные суммы которые необходимо распределить по диапазонам (столбец слева) как указано в ячейках по ними. Туплю - помогите пожалуйста.
День добрый. Туплю. Не могу в PQ вытащить из вложенного списка максимальное значение в колонке. Понимаю что List.Max , но в функции не хватает за что зацепиться чтоб "нырнуть" во вложенный список.
В файле табличка из двух колонок. по Колонке один - она сгруппирована по принципу "все данные" в колонку [tab]. мне нужно вытащить максимальное значение из колонки 2 в отдельную колонку [Max]
День добрый. Каждый месяц приходится проверять ряд типовых файлов (с распароленными листами) присланных сотрудниками - своим файлом. Соответственно вручную переношу данные из присланных файлов в свой а потом сверяю по итоговой таблице результат. Если все сходится, значит в формулы не залезли - файл проверил. Понятно что идеальный вариант запретить лазить и запаролить, но нет ни чего не взламываемого.
Помогите пожалуйста написать макрос по которому будут переноситься данные вносимые вручную из одного заполненного в другой типовой шаблон: - все ячейки которые необходимо заполнить (и соответственно скопировать из файла в файл) я выделяю желтой заливкой - форматирование ячеек и формулы необходимо сохранить в первозданном виде - листов и расчетов с формулами в моем файле огроменное множество (начисление сложной системы ЗП и отчет о прибылях и убытках)
Приветствую. Не могу в экселе решить задачку свода данных под дум справочникам из одной таблицы данных (в PQ решается, а формулами не могу). Помогите пожалуйста
Каким способом (не макрос и желательно не PP/PQ) можно ограничить работу формул для пользователя которого хочется отстранить от пользования файлом?
Думал про контрольное слово которое если будет найдено то формула выдает н/д и все сыпется (к примеру в файле зп - это фио руководителей), но кажется это не надежно. Посмотрел по ЯЧЕЙКА - но там нет за что уникальное для предприятия можно зацепиться.
Думал про место размещения файла - разрешить работать только по конкретно заданным адресам размещения файла, но тоже не вариант (всегда можно взять предыдущий когда был доступ).
День добрый. Есть необходимость сравнивать выгрузку поступлений из клиент-банка с данными иных учетных систем. В учетных системах данные - ежедневные, а выгрузки в 1с могут осуществляться не каждый день, а значит будут выгружать данные за несколько дней. Прошу помочь составить формулу по примеру в приложенной таблице
День добрый. PQ понимаю, в от PP не в коня корм (((
Помогите пожалуйста собрать меры по модели и данным - нужны средний чек и количество гостей по процедурам. Данные, модель и необходимый результат в файле по ссылке https://disk.yandex.ru/i/d1LzRjpFDJcJVg
День добрый. Помогите пожалуйста посчитать значения по данным приложенным в файле https://disk.yandex.ru/d/ba0BD_AUWIO8hA Вроде задачка простая, но поломав голову обращаюсь за помощью
Мне нужно посчитать в одном разрезе периодов; 1. количество посетителей - пробую "count", "countx", "related" и много чего еще и не могу получить нужный результат. Ко всему остальному я и не подошел потому что логика там должна быть аналогичная или производная от полученного в п 1-3 2. количество процедур 3. стоимость процедур 4. высчитать средний чек 5. количество процедур на одного гостя
upd: этот вопрос снял - поправил модель и заменил файл и не могу понять почему в модели к календарю появились такие связи от таблиц? в рабочей модели нет такого пунктира
Каждый день я выгружаю данные из ПО в типовом отчете. Но типовой отчет может каждый день меняет количество столбцов (увеличивается) так как в нем появляются новые дни в которых использованы новые Станции закрытия (смотрите таблицы в файле - размещены на одном листе, но в реальности каждая таблица одна в файле). Соответственно при обращении к этим файлам в последующем нужно извлекать (Table.ExpandTableColumn) данные с указанием имен столбцов. Вариант с Table.PromoteHeaders(Table.Skip([Data], 4)) не подходит так как подгружаю данные одного ПО с разных Предприятий где наименования Станций закрытия разные Как прописать код чтобы извлекать данные? Алгоритм мне понятен - нужно извлечь количество столбцов в файле, создать Список с наименованиями столбцов (Column1, Column2 и т.д.), и указать это список в Table.ExpandTableColumn(Источник, "Пользовательский", Список, Список). Но не могу вспомнить как реализовать (год как не пользовался Power Qwery)
День добрый. Я пытаясь помочь ребятам настроить файл расчета оценок за выступления. Помогите пожалуйста написать макрос который: - скрывает номерные листы которые отсутствуют в списке (на номерных листах отмечаются оценки участника, а листов 25 шт) - скрывает колонки в нумерных листах в которых не указан судья - скрывает колонки и строки по отсутствующим судьям и участникам на листе "Результаты"
День добрый. Подскажите пожалуйста как решить следующую задачу: 1. Есть файл с каким то количеством листов (в приложенном файле их пусть будет 6 штук - один лист "настройка, остальные листы рабочие) 2. Есть потребность скрывать и показывать группы листов (когда одни скрыты, другие должны быть открытыми) 3. Группа листов 1 - листы "А", "Б" и "Г" Группа листов 2 - листы "Е" и "К" 4. Листы запаролены паролем "1"
как написать макрос который поможет решить данную задачу? Перерыл инет, нет однозначного ответ на данный вопрос
День добрый. Существует ли вариант автоматического обновления закрытого файла в котором есть подключение к внешнему источнику через Power Pivot ежедневно в заданное время? К примеру Макросом
Посмотрел интернет нашел только ActiveWorkbook.RefreshAll
День добрый. Я нашел в интернете макрос который позволяет при наведении на ячейку создавать в ней выпадающий список с поиском в нем по набранным значениям. Все работало и долго, но в один момент ИНОГДА стало выдавать ошибку "Run-time error '1004': Method 'Range' of object '_Global' faled"
При ссылке на код подсвечивало следующую строку - подсветил в коде красным шрифтом.
Файл тяжелый поэтому по ссылке https://disk.yandex.ru/d/PmjwU-JYUq6aww (повторюсь - код не мой, а где подсмотрел уже не могу найти). Буду благодарен если поможете решить вопрос.
Option Explicit Public Const NamedRange = "FIO" Dim L As Long Dim T As Long Dim W As Long Dim H As Long Public DropDown As ListBox Public TextBox As OLEObject Public List As Range Dim objControl As clsSheetControl Public pKey As Long Sub DropDown_click() SetVariables On Error GoTo st Range(TextBox.LinkedCell) = DropDown.List(DropDown.Value) DeleteElements st: End Sub Sub SetVariables() Set List = Range(NamedRange) Set DropDown = ActiveSheet.ListBoxes("DropDown") Set TextBox = ActiveSheet.OLEObjects("ValidationBox") End Sub Sub TextBox_Change() PopulateDropDownFilter Set objControl = New clsSheetControl objControl.Init TextBox.Object End Sub
Sub CreateSimulationList(Target As Range) 'Step1. Kill Old Elemants DeleteElements
'Step2. Find Dimentions Call FindRangeDimentions(Target) ' ActiveCell Is Target!
'Step3. Create and set Drop Down, set up List Set DropDown = ActiveSheet.ListBoxes.Add(L, T + H, W, H * 10) Set TextBox = ActiveSheet.OLEObjects.Add(ClassType:="Forms.TextBox.1", _ Left:=L, Top:=T, Width:=W, Height:=H)
'Step4. Populate DropDown PopulateDropDown
'Step5. Set Properties DropDown.OnAction = "DropDown_click" DropDown.Name = "DropDown" With TextBox .Activate .Name = "ValidationBox" .Object.Font.Size = 10 .LinkedCell = Target.Address .Object.Text = Target.Value End With End Sub Sub PopulateDropDown() DropDown.ListFillRange = NamedRange End Sub Sub FindRangeDimentions(Ran As Range) With Ran L = .Left T = .Top W = .Width If W <= 20 Then W = 20 H = .Height If H < 17 Then H = 17 ' minimal End With End Sub Sub DeleteElements() On Error Resume Next Dim Elemant As Object Dim Elemant2 As OLEObject For Each Elemant In ActiveSheet.ListBoxes Elemant.Delete Next Elemant For Each Elemant2 In ActiveSheet.OLEObjects Elemant2.Delete Next Elemant2 On Error GoTo 0 End Sub Sub PopulateDropDownFilter() SetVariables Dim T As String Dim Cel As Range T = UCase(Range(TextBox.LinkedCell).Value) If T = "" Then PopulateDropDown Else ' remove old items DropDown.RemoveAllItems ' populate new items For Each Cel In List If InStr(1, UCase(Cel), T) > 0 Then _ DropDown.AddItem Cel Next Cel End If End Sub
День добрый. Помогите пожалуйста решить задачу - как написать меру которая данные из таблицы о начислениях за проданный товар разнесет м/у данными о способе оплаты данного товара.
Приветствую. Как написать макрос чтобы при обновлении данных на данном листе в столбце ФИО (появились новые записи, удалились старые записи, изменилось содержание старых записей) на листе "Зависимая" в Умной таблице срабатывал фильтр на столбце ФИ, скрывающий пустые записи?
При этом на книге стоит макрос защиты листов от изменений, но с разрешением на группировку и фильтрацию.
Разбираюсь с формулами массива. Необходимо посчитать в табеле количество смен по условию: - если извлеченное значение перед "/" менее 6 то считается пол смены (0,5) - если извлеченное значение перед "/" менее 12 то считается смена (1,0) Исходный файл прилагаю.
День добрый. Создал табель учета рабочего времени. Работает, но хочу его допилить чтоб облегчить через использование формул массива. Во вложении файл как выстроен расчет сейчас.
Буду премного благодарен за помощь - мне важно понять логику и алгоритм.
День добрый. Решение задачи у меня имеется (см.вложение), но смущает своей оптимальностью. Задача заключается в формировании одной формулы для строки суммирования любого уровня статей бюджета на основе кодов справочника. Первым шагом я формирую колонку слева (выделена красным)
Есть ли иное более лаконичное решение данной задачи? Напрашивается алгоритм в котором считается количество не нулевых цифр в коде и суммирование исходя их определенного таким образом уровня. Но не знаю как решить такую задачу в Excel
Есть особенность - не хватает уровней кодов, поэтому отдельные троки пустые (без кода). Поправить коды - не предлагать ))))))))
День добрый. Просьба помочь. Мне необходимо настроить автоматическое формирование ведомости исходя из двух исходных таблиц (см. Screen и вложенный файл). Понимаю что скорее всего это выполняется List.Generate или List.Accumulate, но до сих пор не могу их "вкурить".
Буду благодарен если пример решится и с помощью Power Pivot
День добрый. Прошу помочь - задача простая, все перепробовал, не хватает знаний. Нужно написать меру которая бы считала среднее количество человек работавших на каждый час в разрезе месяца (см.файл и скрин) исходя из данных реестра продаж. Написал такую DISTINCTCOUNT([ФИО]) - не могу понять алгоритм усреднения
День добрый. На месяц выпадал из работы связанной с расчетами и изучением Pivot и сломал голову чтоб вспомнить все что успел узнать.
Очень прошу помочь посчитать плановую ЗП на основе модели данных в отдельной таблице Pivot (помесячно и по должностям):
- имеется справочник по ставкам окладов для должностей (ставки делятся на ежемесячный, ежесменный и почасовой оклады) - имеется плановый табель рабочего времени на 2021 год посчитанный по количеству сотрудников необходимых в дни недели каждого месяца - правила расчета: Если Distance = "Месяц" то нужно считать только значение = Tab х Salary_Rate , Если Distance = "Смена" то нужно считать = Таб х (количество DayWeek в месяце) х Salary_Rate , Если Distance = "Час" то нужно считать = Таб х (количество DayWeek в месяце) х 10 х Salary_Rate
Буду премного благодарен за помощь
Если собрать модель в файле, то вес файла превысит ограничения, поэтому прикладываю ее скрин
UPD. Странно - в Power BI есть возможность создания таблице в Pivot, а в Excel - нет. Видимо задача решается только через создание меры?
День добрый. Помогите разобраться с фильтрами. Во вложении скрин ежемесячного отчета, период которого выбирается фильтрами (год, Месяц) на самой странице.
При этом нужно чтобы на странице формировался график (помесячный) за 12 месяцев от заданного фильтром на странице периода.
Понимаю что нужно создать меру в Pivot, попробовал ALL чтобы снять заданный фильтр - не работает
День добрый. Есть Модель данных с показателями планового Бюджета и фактических доходов и расходов по трем предприятиям. Помогите пожалуйста собрать в Power Pivot таблицу с показателями прибыли. Данная таблица нужна для заполнения карточки KPI план/факт по Прибылям
В файле таблицы (собранная модель данных не помещается в максимальный размер данных поэтому выкладываю ее скрин), а также формат необходимой таблицы. Не могу приложить хоть какой то свой код так как не понимаю как его собрать (((
ЗЫ примерный вопрос выложил в FB но без данных и на понимание логики работы в PP
UPD Поправил модель добавив связь между комп и бюджетом
В продолжении извечной темы обработки данных из 1С, на базе функции Зеленского
У меня есть много выгрузок из 1С, в принципе воспользовавшися функцией Максима я их уже обработал, но получилось очень сложная конструкция и есть желание ее упростить.
Код
let
Sourse = Excel.CurrentWorkbook(){[Name="Account_20"]}[Content],
ReplaceValue = Table.ReplaceValue(Sourse, each [Column1], each if [Статьи затрат] = "Обороты" then Number.From(List.Max(Company[Column1]))+1 else [Column1],Replacer.ReplaceValue,{"Column1"}),
SelectColumns = Table.SelectColumns(ReplaceValue,{"Column1", "Статьи затрат", "Код", "BalansO_D", "BalansO_K", "Turnover_D", "Turnover_K", "BalansE_D", "BalansE_K", "Comp", "Period"}),
Trim = Table.TransformColumns(SelectColumns,{{"Статьи затрат", each Text.Trim(_, {" "}), type text}}),
Headers = List.Buffer( List.Transform({0..List.Max(Trim[Column1])}, Text.From ) ),
ReplacedValue = Table.ReplaceValue(Trim,null,0,Replacer.ReplaceValue,{"Column1"}),
AddedRecs = Table.AddColumn(ReplacedValue, "recs", each Record.FromList( List.ReplaceRange( List.Repeat({null},List.Count(Headers)), [Column1], 1, {[Статьи затрат]} ), Headers ), type record ),
ExpandedRecs = Table.ExpandRecordColumn(AddedRecs, "recs", Headers ),
AddIndex = Table.AddIndexColumn(ExpandedRecs, "Индекс", 1, 1),
FillDown = Table.FillDown(AddIndex,{"0"}),
Group = Table.Group(FillDown, {"0"}, {{"Tab", each _, type table}}),
ReplaceN = Table.ReplaceValue(Group, each [Tab], each Table.FillDown([Tab], {"1"}),Replacer.ReplaceValue,{"Tab"}),
RemoveColumns = Table.RemoveColumns(ReplaceN,{"0"}),
Expand = Table.ExpandTableColumn(RemoveColumns, "Tab", {"Column1", "Статьи затрат", "Код", "BalansO_D", "BalansO_K", "Turnover_D", "Turnover_K", "BalansE_D", "BalansE_K", "Comp", "Period", "0", "1", "2", "3", "4", "5", "6", "7", "8", "Индекс"}, {"Column1", "Статьи затрат", "Код", "BalansO_D", "BalansO_K", "Turnover_D", "Turnover_K", "BalansE_D", "BalansE_K", "Comp", "Period", "0", "1", "2", "3", "4", "5", "6", "7", "8", "Индекс"})
in
Expand
Обрабатываю я данные через группировку по каждому уровню с последующим FillDown внутри вложенных таблиц по последующему уровню (см. последние четыре строки).
Как данные строки запустить через цикл по каждому уровню? Помогите пожалуйста.
На форуме нашел скрипт скачивания данных о погоде в заданный день и поправил его под свой регион. Начал пробовать написать запрос чтобы скачать данные за период (к примеру за три дня - по факту нужны данные с 1 января 2014 года), а не за один день, на основе List.Generate:
Код
let
Token = Text.BetweenDelimiters( Text.FromBinary(Web.Contents("https://www.wunderground.com/history/daily/ru/ob/UNNT/date/2020-5-8")), "SUN_API_KEY&q;:&q;", "&q;,&q;SUN_DEVICE_API_KEY" ),
list = Table.FromList(List.Dates(#date(2020, 05, 06), 3, #duration(1, 0, 0, 0)),Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Измененный тип" = Table.TransformColumnTypes(list,{{"Column1", type text}}),
#"Замененное значение" = Table.ReplaceValue(#"Измененный тип",".","",Replacer.ReplaceText,{"Column1"}),
F = (token, data)=>
let
a = Json.Document(Web.Contents("https://api.weather.com/v1/location/UNNT:9:RU/observations/historical.json?apiKey=" & token & "&units=e&startDate="&"data"))
in
a,
ListG = List.Generate(
()=> [i = 1, v = #"Замененное значение"{i}, p = 1],
each [i] < List.Count (#"Замененное значение"),
each [
i = [i] + 1,
v = #"Замененное значение" {i},
p = F(Token, v)
],
each p
)
in
ListG
Разбирая пример , я не могу понять пока для себя как описать действие для запуска функции F. По идее это часть должна быть связана с "p", так как остальные переменные используются для ограничений работы функции и выбора данных даты из списка "list" (я его сделал на три дня) для подстановки адреса ссылки чтоб скачать данные за заданный период.
В чем я ошибся (не понял) при написании функции?
UPD И судя по всему я что то накосячил в функции F
День добрый. Пытаюсь решить следующую задачу. Есть список с указанием даты начала и даты окончания каждого посетителя. Необходимо рассчитать количество посетителей находившихся на предприятии каждые 15 минут. 1. Список datetime с 15 минутным интервалом (по которому нужно указать количество посетителей) я сформировал. 2. А вот дальше - понимаю что это проверка списка datetime со списком времени посетителей (возможно с использованием generate). Дальше понимаю не могу сдвинуться даже разобрав несколько примеров с generate. 3. Задача усложняется такого необходимостью расчета по каждому из ресурсов М и Ж (указанными в таблице)
День добрый. Пробую освоить работу с выгрузкой данных с сайта - столкнулся с тем что при создании запроса на страницу (https://novosibirsk.n1.ru/view/), где по идее должен храниться перечень ID актуальных данных - выдает ошибку (см.скрин). Если знать ID и указывать его (https://novosibirsk.n1.ru/view/32727143/), то данные выгружаются в PowerQuery. Покопавшись в данных сайта я нашел что хочу найти ID с 13000000 по 33000000. Но когда стал отфильтровывать null то все зависло.
Код
let
ID = Table.FromList({13000000..33000000}, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
Source = Table.AddColumn(ID, "Сведено", each try Web.Page(Web.Contents("https://novosibirsk.n1.ru/view/"&Text.From([Column1]))) otherwise null),
SelectR = Table.SelectRows(Source, each [Сведено] <> null)
in
SelectR
Вопрос. Есть ли иной, более быстрый способ выгрузить актуальные ID с сайта?
День добры. Столкнулся с тем что модель данных созданная и сохраненная в Power Pivot исчезает при повторном открытии файла. А вместе с ней слетают все созданные меры. Подскажите пожалуйста - с чем это может быть связано?