Добрый день! Прошу помощи знающих в написании такой меры в DAX, PBI.
Смысл её в том, чтобы она проверяла, есть ли Остаток_фактический (>0) в таблице в предыдущем месяце. Если фактического остатка нет, то делать расчёт по формуле:
Код
Остаток предыдущего месяца (фактический или расчетный) + Закупки - Продажи.
Проблема в том, что не получается сделать взаимозависимый расчет с предыдущем месяцем так, как это сделано в приложенном Эксель-файле (в колонке E прописана формула, как надо).
Так же прикладываю *.pbix где мои попытки сделать что-то похожее (мера: formula2), но максимум чего добился - правильных данных до марта, после него расчет уже идёт кривой.
Добрый день! Подскажите, пожалуйста, как правильно написать меру в DAX Power BI, чтобы она считала показатель аккуратности по нужной логике. Смотрите вложение. Дано:
в диапазоне колонок A:E исходная таблица в качестве источника;
в ячейке M3 - как надо с помощью меры используя исходную таблицу рассчитать аккуратность;
в ячейке V3 - как сейчас мера считает аккуратность.
Нужно если через визуальный срез в PBI пользователь выбрал сразу 2 месяца (например январь и февраль), то мера считала разницу без разбивки на месяца (выбранные месяца должны быть в контексте). Сейчас она считает разбивая выбранные месяца и как следствие расчёт аккуратности не правильный. В качестве примера привел простую DAX формулу. Что только не использовал и какие комбинации не применял между SUMX, SUMMARIZE, CALCULATE - у меня не получилось научить меру рассчитать аккуратность из пункта 2, не используя вспомогательных таблиц.
Добрый день! Подскажите, пожалуйста, как в квери будет выглядеть формула вычислительной колонки, которая вернёт данные аналогичного месяца но за прошлый год? Нужен ли файл? табличка как скрине
Например: в колонке [Прошлый год] по продукту за июнь 2022 года будут данные по этому же продукту за июнь 2021 года.
Добрый день! облазил форумы, но не смог до конца заставить работать формулу. Прошу помощи:
Нужно добавить вычислительный столбец, который бы определял максимальный номер недели в пределах месяца/магазина/продукта и возвращал его значение во все строки. Использую данную формулу:
Всем привет! Подскажите, пожалуйста, возможно ли в данном визуальном элементе сделать так, чтоб недели не объединяли в себя две меры а сначала шли все недели 1меры и далее все недели 2 меры.
Добрый день! Может здесь найдутся те, кто разбирается в следующем вопросе :-) Есть кусок MDX кода, который настроен сейчас так, что выгружает данные за текущий месяц. Пытаюсь научить его брать последние 3 месяца (как на примере ниже), но выдает ошибку. Как этот момент правильно прописать в примере кода ниже:
Добрый день! Подскажите, пожалуйста, по такому вопросу. Есть мини справочник-таблица из 2х колонок: Кол-во и категория. И в зависимости от кол-ва (>=) возвращается соответствующая категория.
Кроме как с помощью IF, перечисляя все варианты, есть ли более универсальный способ (функция) в PQ подтянуть из этого справочника в другой запрос категорию, проверяя колонку Кол-во.
Грубо говоря, чтоб я зашел в этот справочник, скорректировал новое кол-во и у меня PQ сам пересчитал категории без редакции формул.
Добрый день! Подскажите, пожалуйста, по следующему вопросу. В визуальном элементе "Таблица" есть возможность включить строку "Итоги", которая суммирует данные по строкам. Но если в этой колонке стоит мера, которая вычисляет данные по своей формуле - эта самая формула применяется и к строке "Итоги", что в моем случае делать не нужно. Нужна сумма этих самых вычислений. Как заставить строку "Итоги" просуммировать такие вычисления?
Всем привет! Просьба помочь со следующим вопросом. Есть таблица с данными, нужно подсчитать кол-во значений >=15% в заданных границах диапазона. В приложенном примере в ячейке S2 то, что хочу получить но через Power Query. Я нашел на просторах интернета как это сделать просто для таблицы с данными. Но проблема в том, что нужно задать границы первого и последнего столбца, значения в которых будут участвовать в подсчете. Вот здесь прошу помощи.
Добрый день! Подскажите пожалуйста, как должна выглядеть формула в ячейке N3, чтобы получить сумму данных в зависимости от выбранного клиента (ячейка M3) в заданный диапазон недель (ячейки K1, L1). Пример прикладываю.
Добрый день! в vbs не силен, поэтому прошу помощи. Ниже под заголовком "конец кода" - последняя часть скрипта vbs.
Если в кратце - скрипт при запуске активирует COM-надстройку для экселя, после запускает необходимый файл excel, запускает в нем макрос Scheduled_Refresh сохраняет и закрывает книгу. Подскажите, как правильно видоизменить код, как понимаю, где то в этой строке:
Код
objExcel.workbooks.open args(0)
чтобы при открытии запароленной книги, вводился пароль. У меня есть нарытый пример (ниже) но как его внедрить в свой код, не понимаю.
Всем привет подскажите пожалуйста, как решить такую задачу:
Есть надстройка эксель в формате .exe. При клике на этот .exe при любой открытой книге Excel - надстройка встраивается в книгу новой вкладкой. Если же Excel не запущен - экзешник создает новую книгу и встраивается отдельной вкладкой. У меня не получается научить скрипт VBS открывать сначала заданную книгу, а после активировать надстройку, чтобы она внедрялась в эту самую открытую книгу. Почему то любые танцы с бубном над скриптом приводят к одному и тому же: запускается отдельно нужная книга, и запускается отдельно новая книга с внедренной в нее надстройкой. Будто бы надстройка не обнаружила уже открытую книгу чтоб внедриться в неё. Как научить через VBS надстройку встраиваться именно в уже открытую скриптом книгу?
Код
Option Explicit
Dim WshShell, objXL, objWorkbook
Set objXL = CreateObject("Excel.Application")
objXL.Visible = TRUE
Set objWorkbook = objXL.Workbooks.Open("C:\Users\Me\Desktop\Update.xlsb")
Dim wsh
Set wsh = WScript.CreateObject("WScript.Shell")
wsh.Run("""C:\Program Files (x86)\SAP\Office\Launcher.exe""")
Set wsh = Nothing
Добрый день. Почитал несколько статей с примерами как работает автофильтр, но не нашел решения для моего случая: как правильно оформить критерии для поиска ячейки, одно значение которой будет содержать и ="=*Люберцы*" И ="=*Ленина*". В расширенном автофильтре есть такая возможность?
Добрый день! Есть в Экселе на вкладке "Данные" опция "Подключения". Выскакивает окно, где списком указаны все существующие подключения к этой книге. подскажите пожалуйста, как с помощью макроса обновить конкретное подключение?
Добрый день. Ниже часть макроса. Столкнулся с проблемой на 5ой строке. Если найденный циклом вариант, например "Солнце" будет записан как "СОЛНЦЕ", либо как то иначе (только заглавные, только строчные, либо вперемешку), то цикл по заданному условию скроет эту строчку, чего делать не надо. Как научить цикл игнорировать в этом случае регистр?
Код
Dim avArr
avArr = Array("Солнце", "Луна", "Облака", "Воздух")
For h = 0 To 3
For c = lLastRowEnd To 9 Step -1
If Not Cells(c, 2).Value Like "*" & avArr(h) & "*" Then
Rows(c & ":" & c).EntireRow.Hidden = True
End If
Добрый день! вопрос такой: как с помощью VBA скопировать отфильтрованные ячейки на защищенном листе? Строка кода ниже не работает, выскакивает ошибка что мол защита на листе стоит не могу работать, хотя руками защищенный отфильтрованный диапазон копируется. Есть ли решения по такому вопросу?
Есть задача подсчитать кол-во пакетов проданных каждой точке (см таблицу из вложения). Суть в чем: 1 пакет = 5 уникальных единиц продукта. Н-р если в таблице 6 столбцов и в каждом из столбцов стоит значение 6 - то кол-во пакетов будет равно 6. Если в одной колонке к примеру будет значение 5 - то кол-во пакетов будет все равно 6, т.к. в оставшихся пяти колонках по прежнему будет набираться нужное кол-во уникальных продуктов в 6 пакетов. Но задача усложняется тем, что кол-во столбцов больше 6 и оно не всегда фиксировано. В приложенном файле я сделал пример с 14-ю колонками. Помогите пожалуйста с идеями: как расчет кол-ва пакетов для каждой точке можно уместить в одну формулу?
Добрый день Есть некий код макроса с циклом, который открывает поочередно файлы эксель из папки и консолидирует с них информацию. Можно ли внутри цикла прописать код, который бы выполнился один раз при открытии макросом первой книги (не важно какой) и в последующих он бы игнорировался? Выполнение этого кода завязано с книгой, которую цикл откроет, поэтому вне цикла его вставлять смысла нет.
Ниже - упрощенный пример для моего вопроса. Как сделать выполнение строчки msgbox единоразово?
Код
For i = 1 To 10
MsgBox ("hello!")
Range("A1").Select
Range("B1").Select
Range("C1").Select
Next i
Всем привет Подскажите пожалуйста, как для оператора For Each сделать перескок на 2 шага (по аналогии For c = 1 to 10 step 2). Если конкретно, то нужно при нахождении ячейки удовлетворяющей условию .Interior.Color = 5296274 выполнялся код в блоке If...End If и цикл продолжал свою проверку пропустив 2 шага,(или 2 строчки, если разбирать конкретно данный пример)
Код
mybook.Activate
For Each c In Range(Cells(21, 11), Cells(ilastESR - 1, 11)) 'äîëè
If c.Interior.Color = 5296274 Then
With c
.Copy: bklist.Sheets("Calc").Cells(lLastRow3 + 9, c.Column).PasteSpecial xlPasteValues
.Offset(1, 0).Copy: bklist.Sheets("Calc").Cells(lLastRow3 + 10, c.Column).PasteSpecial xlPasteValues
.Offset(2, 0).Copy: bklist.Sheets("Calc").Cells(lLastRow3 + 11, c.Column).PasteSpecial xlPasteValues
End With
lLastRow3 = lLastRow3 + 10
End If
Next
Добрый день! Подскажите пожалуйста, можно ли, н-р формулой массива, решить мою задачу из вложения. А именно: в ячейке B1 пишу некий % выполнения, в ячейке B2 формула перебирает значения из 1ой строчки таблички справа и подставляет значение из 2ой строчки по заданному условию: в B2 значение должно быть больше или равно одного значения, но и не более другого значения. В файле пример - думаю из него станет понятней суть задачи.
Всем доброго дня! Опишу ситуацию: создаю непосредственно в PP (Power Point) диаграмму. Нужно это для того чтобы Excel-исходник был непосредственно внедрен в PP (без всякого рода ссылок на локальные адреса и тп). ОК, все работает. Но добавляя еще один график (даже делая копию первого), книга Excel-исходника создается абсолютно новая и никак не связана с исходником от первой диаграммы. Вопрос: как создать несколько диаграмм с одним Excel-исходником (чтобы он был внедрен в файл PP без ссылок на внешние адреса)
Добрый день! Подскажите пожалуйста, по какой причине не работают обе формулы? См вложение. Вроде бы все правильно написано, но формула в обоих случаях производит расчет лишь в том случае, если в Массив1 в качестве ключа указан диапазон из одной или трех ячеек. Во всех остальных случаях возвращает НД, что странно.
Добрый день! Подскажите пожалуйста решение такой задачки. В диапазоне C3:C7 необходимо получить суммарный объем по продуктам со всех грядок, с условием: если по продукту ячейка из колонки D пустая, то к сумме продукта добавляется объем из ячейки колонки C. Если в столбце D ячейка НЕ пустая (в т.ч. =0), к сумме продукта добавляется объем из ячейки D.
Добрый день! Помогите пожалуйста подсчитать кол-во ячеек >0 в массиве таблице, по заданному критерию из колонки A (во вложении таблица). Есть вариант использовать просто СЧЕТЕСЛИМН по каждой колонке и далее это дело все суммировать. А есть ли более простой способ с указанием всего массива таблицы а не просто отдельно по колонкам?
Добрый день У меня довольно простой вопрос, но поиском его найти не смог Есть некий код, который открывает файл из папки open. Как правильно будет внедрить оператор Go To (либо альтернативу), что если в папке open нет файлов, то переходить на заданную строку, т.е. опускать часть кода
Код
Dim MyName As String
Dim MyPath As String
Dim sPath As String
MyPath = "C:\Users\PC\Desktop\open\"
MyName = Dir(MyPath & "*.xlsm")
Do While MyName <> ""
sPath = MyPath + MyName
Excel.Application.Workbooks.Open sPath
MyName = Dir
Loop
Всем привет. подскажите пожалуйста из-за чего так происходит и как это исправить: запускаю макрорекодер, активирую ячейку с формулой, жму Enter, останавливаю макрорекодер Далее выделяю эту же ячейку, жму запустить этот макрос и вылетает ошибка. Причем с формулами попроще (короче) проблем нет, Так, навскидку, в чем может быть проблема?
Ошибка: Run-time error '1004': Application-defined or object-defined error
Код
Sub macros1()
ActiveCell.FormulaR1C1 = _
"=IF(OR(R[-1]C4=""cat"",R[-1]C4=""dog""),SUM(SUMIF(list2!R8C1:R13000C1,CONCATENATE(R[-1]C[-9],RIGHT(RC[-3],LEN(RC[-3])-SEARCH(""."",RC[-3]))),list2!R8C14:R13000C14),SUMIF(list2!R8C2:R13000C2,CONCATENATE(R[-1]C[-9],RIGHT(RC[-3],LEN(RC[-3])-SEARCH(""."",RC[-3]))),list2!R8C14:R13000C14),SUMIF(list2!R8C3:R13000C3,CONCATENATE(R[-1]C[-9],RIGHT(RC[-3],LEN(RC[-3])-SEARCH(""." & _
"]))),list2!R8C14:R13000C14),SUMIF(list2!R8C4:R13000C4,CONCATENATE(R[-1]C[-9],RIGHT(RC[-3],LEN(RC[-3])-SEARCH(""."",RC[-3]))),list2!R8C14:R13000C14)),SUM(SUMIF(list2!R8C1:R13000C1,CONCATENATE(R[-1]C[-9],RIGHT(RC[-3],LEN(RC[-3])-SEARCH(""."",RC[-3]))),list2!R8C13:R13000C13),SUMIF(list2!R8C2:R13000C2,CONCATENATE(R[-1]C[-9],RIGHT(RC[-3],LEN(RC[-3])-SEARCH(""."",RC[-3]))" & _
"8C13:R13000C13),SUMIF(list2!R8C3:R13000C3,CONCATENATE(R[-1]C[-9],RIGHT(RC[-3],LEN(RC[-3])-SEARCH(""."",RC[-3]))),list2!R8C13:R13000C13),SUMIF(list2!R8C4:R13000C4,CONCATENATE(R[-1]C[-9],RIGHT(RC[-3],LEN(RC[-3])-SEARCH(""."",RC[-3]))),list2!R8C13:R13000C13))/1000)"
End Sub
Эта же формула в эксель: =ЕСЛИ(ИЛИ($D5="cat";$D5="dog");СУММ(СУММЕСЛИ(list2!$A$8:$A$13000;СЦЕПИТЬ(C5;ПРАВСИМВ(I6;ДЛСТР(I6)-ПОИСК(".";I6)));list2!$N$8:$N$13000);СУММЕСЛИ(list2!$B$8:$B$13000;СЦЕПИТЬ(C5;ПРАВСИМВ(I6;ДЛСТР(I6)-ПОИСК(".";I6)));list2!$N$8:$N$13000);СУММЕСЛИ(list2!$C$8:$C$13000;СЦЕПИТЬ(C5;ПРАВСИМВ(I6;ДЛСТР(I6)-ПОИСК(".";I6)));list2!$N$8:$N$13000);СУММЕСЛИ(list2!$D$8:$D$13000;СЦЕПИТЬ(C5;ПРАВСИМВ(I6;ДЛСТР(I6)-ПОИСК(".";I6)));list2!$N$8:$N$13000));СУММ(СУММЕСЛИ(list2!$A$8:$A$13000;СЦЕПИТЬ(C5;ПРАВСИМВ(I6;ДЛСТР(I6)-ПОИСК(".";I6)));list2!$M$8:$M$13000);СУММЕСЛИ(list2!$B$8:$B$13000;СЦЕПИТЬ(C5;ПРАВСИМВ(I6;ДЛСТР(I6)-ПОИСК(".";I6)));list2!$M$8:$M$13000);СУММЕСЛИ(list2!$C$8:$C$13000;СЦЕПИТЬ(C5;ПРАВСИМВ(I6;ДЛСТР(I6)-ПОИСК(".";I6)));list2!$M$8:$M$13000);СУММЕСЛИ(list2!$D$8:$D$13000;СЦЕПИТЬ(C5;ПРАВСИМВ(I6;ДЛСТР(I6)-ПОИСК(".";I6)));list2!$M$8:$M$13000))/1000)