Прошу помочь с формулой, которая бы выполняла бы ту же работу, что и СУММПРОИЗВ, только для итоговых строк, не обращая внимание на скрытые, как показано в файле на примере.
Странно что в промежуточных итогах нет для этого отдельной функции, как для многих других операций.
Всем привет. Хочу сделать простой макрос для презентации, что бы он: 1. проходился по всем слайдам, по всем фреймам 2. искал в них символы " / ", " ", "-" и заменял их соответственно на "/", " ", "–"
Где можно найти подходящий источник, что бы можно было понять какие объекты использовать? Или, если кому не в тягость, можно тут написать тоже, конечно.
кто сталкивался с подобной проблемой - есть вопрос. Если я пытаюсь подключиться к сайту через PQ и вижу такую ошибку (во вложении) - это уже всё и ничего не поможет ? Сайт простой (зарубежный) с футбольной статистикой - https://fbref.com/en/comps/11/Serie-A-Stats. Правилами вроде бы не запрещено такое закинуть.
Раньше вытягивал данные от туда автоматически, сейчас приходится руками выделять каждую таблицу и кидать себе в папку. Как с помощью JS или VBA сделать выгрузку - не знаю.
Возникла задача автоматизировать выборку для пунктирной линии графика. Если я зайду на область определния значений для пунктирной линии на графике, я увижу что она берет данные из строгого диапазона - мне желательно бы что бы этот диапазон был динамический и данные брались каждый раз, принимая во внимание последнюю заполненную ячейку сейчас.
Прошу помочь с этим, по возможности при помощи VBA, так как у меня уже готов большой код, куда я бы дополнил ваше решение. Или просто направить меня куда копать и что делать
Привет всем. Как реализовать выполнение команды спустя условные 8 секунд ?Например Нужно что бы файл сохранялся, после чего обновится запрос PQ, а далее программа ждет условное время и только после этого показывает msgbox с сообщением что обновление выполнено.
Сами команды сохранения и обновления то написать не проблема, но таймер мне не знаком
Хочу сделать точечную (X/Y) диаграмму, что бы на ней было отражено положение точек в соответствии с их порядковым номером и датой начала проведения работ.
График должен быть прозрачный без какой либо другой информации кроме самих точек и их подписей (по возможности). в качестве подписи к точкам нужны названия работ. Я это сделал сам, это не проблема как и прозрачность графика.
Застрял на моменте где нужно синхронизировать положение точек с данными...Границы графика совпадают с датой начала проведения работ и концом, но почему то точки не хотят вставать на правильное место.
Понимаю что делаю что то не то, и прошу объяснить/показать как такое можно реализовать
Хотел купить книгу Николая мастер формул, но физической версии нету пока. Очень хочу подтянуть формулы в экселе.
Какие книги посоветуете, где показывается и в том числе, как использовать сложные вложенные формулы на жизненных примерах и тд. Можно даже не популярные типа Уокенбаха, а то что конкретно вам дало буст в знаниях.
Недавно получил тестовое задание от одной компании. В нём просят решить 7 задач, каждая из них на фильтрацию под разными углами. Нужно сделать формулами
Каждую из них понимаю но не могу выразить решение языком экселя, так же можно это всё решить через сводные таблицы, но это как то скучно и я не думаю что в работе я бы каждый раз делал сводные что бы получить какие то агрегированные отфильтрованные значения - это неразумно.
В решении нужны формулы, я подозреваю нужны формулы массива. Но всё хожу вокруг да около и не могу сам сделать что-то дельное. Прошу помочь направить меня куда копать.
Само задание уже поздно сдавать, но спортивный интерес разжёгся. Хочу получше разобраться в этом. Файл прилагается
Недавно получил тестовое задание от одной компании. В нём просят решить 7 задач, каждая из них на фильтрацию под разными углами. Нужно сделать формулами
Каждую из них понимаю но не могу выразить решение языком экселя, так же можно это всё решить через сводные таблицы, но это как то скучно и я не думаю что в работе я бы каждый раз делал сводные что бы получить какие то агрегированные отфильтрованные значения - это неразумно.
В решении нужны формулы, я подозреваю нужны формулы массива. Но всё хожу вокруг да около и не могу сам сделать что-то дельное. Прошу помочь направить меня куда копать.
Само задание уже поздно сдавать, но спортивный интерес разжёгся. Хочу получше разобраться в этом. Файл прилагается
Приветствую всех. Прошу помочь с маленькой формулой.
Возникла задача взять столбец в котором перечисляются то текстовые то числовые значения. Что нужно - это задать условие "если 1-й символ в ячейке = 1 или 2 то отцепить его, иначе вернуть значение ячейки" Хочу сделать это через PQ. Первую часть конечно сделать было легко, но как потом в код вместо 1 вставить действие по извлечению и так не понял.
Сразу ещё вопрос - Как продолжить писать текст после вставки кода ? очень неудобно
Код
if Text.StartsWith([текст], "1") or Text.StartsWith ([текст], "2") then 1 else [текст]
например, я написал макрос который собирает массив файлов эксель и сохраняет каждый первый лист в формате пдф. Мне нужно, что бы название конечного файла пдф содержало число в названии, которое берётся из каждого эксель файла (это число может разниться, и сохраняется в отдельную переменную proj_name). В 25 строке пытался, потом и через Cint, но не работает почему то. продолжает выдавать текст самого кода в названии файла
Код
Sub SaveFirstSheetAsPDFwvbsfb()
Dim filesToOpen As Variant
Dim fileName As Variant
Dim fileCounter As Integer
Dim targetFolder As String
Dim ws As Worksheet
Dim proj_name As Integer
filesToOpen = Application.GetOpenFilename("Excel files (*.xls*), *.xls*", , "Shoose your Excel files", , True)
Application.ScreenUpdating = False
' Задание папки назначения куда сохраняются файлы
targetFolder = "S:\smth\smth\smth\smth\smth\smth\2023"
' Перебор выбранных файлов
For fileCounter = LBound(filesToOpen) To UBound(filesToOpen)
fileName = filesToOpen(fileCounter)
Workbooks.Open fileName
Set ws = ActiveWorkbook.Sheets(1)
proj_name = Left(Right(ws.Cells(1, 3).End(xlDown).Offset(1, 0).Value, 4), 3)
ws.ExportAsFixedFormat Type:=xlTypePDF, fileName:=targetFolder & "\" & "Inv " & Left(ws.Name, 31) & " summary_proj " & "proj_name" & ".pdf"
ActiveWorkbook.Close SaveChanges:=False
Next fileCounter
Application.ScreenUpdating = True
MsgBox "Done. All sheets have been saved successfully"
End Sub
Имеется таблица, в которой один из столбцов имеет название "категория бюджета". В нём только 2 значения: "Одобренная корректировка" и "Первоначальный бюджет".
вопрос - как бы сделать вычислительный столбец или меру в Power Pivot, который считал был итог по каждой статье бюджета и номеру заказа по критерию из столбца "категория бюджета" ? Если непонятно объяснил, то намекните)
Добрый день. Попытался на рабочем компьютере подключиться к папке на сетевом диске, находясь в файле, который расположен на моем рабочем столе. Ничего не вышло, PQ просто выдал ошибку на весь экран. Подключался через
Код
=Folder.Files("путь к папке")
Кто нибудь сталкивался с таким, это лечится ?
прикрепляю файл с ошибкой. Не разобрался как здесь сделать выпадающий список
Привет всем участникам зелёного форума. Учу словарик на VBA, поставил себе задачу посчитать суммы по статьям нарастающим итогом, но что то у меня идёт не так. Иду по списку, проверяю exists- ом, если да - то плюсую к 0 итем по ключу.
Не стал делать слишком много статей в файле, что бы не усложнять. Хочу понять, как сделать так что бы можно было идти циклом по массиву со статьями, и при срабатывании свойства exists, считалась сумма в нарастании по каждой статье, далее выгружалась в ("b4") (эта часть не проблема)
Код
Sub lknb()
'просуммировать значения в нарастании по ключам
Dim d1 As Object, i As Integer, j As Integer
Dim a, b, c
'пилим словарь
Set d1 = CreateObject("scripting.dictionary")
'массив с нарастающим итогом
a = Range("a4").CurrentRegion
'массив сттатей, которые попадут в нарастающий итог
b = Range("d4").CurrentRegion
For i = 1 To UBound(a, 1)
d1.Add a(i, 1), 0
Next
'прохожусь по статьям в массиве b. Если есть ключ сущестует, тогда
'к итему с 0 суммой прибавляется сумма привязанная к этому ключу
For i = 1 To UBound(b, 1)
If d1.Exists((a(1, 1))) Then d1(a(1, 1)) = d1(a(1, 1)) + b(i, 2)
Next
'массив для вставки сложенных в нарастании итемов (сумм) по ключам
'ReDim c(1 To UBound(a, 1), 1 To 1)
c = d1(a(1, 1))
Stop
End Sub
Всем привет. Возникла проблема с выгрузкой массива на диапазон через Range.resize. Вроде сделал всё по учебнику, но не работает. Приходится делать через цикл, но ведь так можно делать далеко не во всех задачах. Кто может подсказать в чём я неправ ? рабочий лист1 в файле
Код
Sub wvlkmfb()
Dim d1 As Object, i As Integer, j As Integer
Dim ilastrow As Integer, a, c
Set d1 = CreateObject("scripting.dictionary")
ilastrow = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To ilastrow
d1.Add Cells(i, 2).Value, Cells(i, 3).Value
Next
a = Range("g5").CurrentRegion
ReDim c(UBound(a))
For i = 1 To UBound(a, 1)
If d1.Exists(a(i, 1)) Then c(i - 1) = d1.Item(a(i, 1))
Next
'Range("h5").Resize(UBound(c), 1).Value = c
For i = 5 To 8
Range("h" & i).Value = c(i - 5)
Next
End Sub
Как можно проверить диапазон, например первую строку, есть ли на нём умная таблица, и, если нет, то её превратить в обычный диапазон (избавиться от умной табл) ?
Возникло желание сделать Фильтрацию столбца по значению даты в ячейке. Например: Процессе работы моего кода: 1. создаётся новая книга, 2. в которой в ячейку а1 через инпутбокс вставляется желаемая дата 3. - далее эта дата запоминается в переменную 4. Эта переменная в теории должна попасть в фильтр в моем рабочем файле для фильтрации Нужных строк. То есть в фильтре должно быть "<=имяпеременной"
Попытался сам - не выходит. Даже если макрорекордер использовать, он не помогает
Код
Sub wbk_fore_date()
'цель - что бы фильтр выдавал значение равные или меньше тем, что заданы в переменной idate
Dim wbkdate As Workbook, idate As Date
Dim wbkeight As Workbook
Set wbkeight = Workbooks("Книга8.xlsm")
'Set wbkdate = Workbooks.Add
wbkeight.Sheets("Лист1").Range("a16").Value = InputBox("Введите дату по которую нужно отфильтровать данные")
idate = wbkeight.Sheets("Лист1").Range("a16").Value
wbkeight.Sheets("Лист1").Range("$C$1:$C$14").AutoFilter Field:=1, Criteria1:="<=idate", Operator:=xlAnd
Stop
End Sub
Изучая VBA наткнулся на такую задачу: "дан диапазон чисел (i строк и j столбцов). Каждую строку представить в обратном порядке".
Решить просят только через вложенные циклы for, либо for each. Ума не приложу как это сделать, ведь если я присваиваю первому элементу строки с числами значение последнего элемента, то как я это сделаю тоже самое с последним элементом, ведь он уже переписан в первый элемент?)
Помогите разобраться с алгоритмом.
Код
Sub v1z1()
'дан диапазон чисел
'каждую строку переписать в обратном порядке
Dim i As Integer, j As Integer
Dim s As Range, rand As Integer
Dim irow As Integer, icol As Integer
Dim r As Integer, c As Integer
Dim cl As Range
'диапазон взял маленький, что бы было наглядней
Range("a1:b2").Select
Set s = Selection
irow = s.Rows.Count
icol = s.Columns.Count
r = s.Row
c = s.Column
s.ClearContents
'тут для начала наполняю диапазон рандомными числами
Randomize
For j = r To icol
For i = c To irow
rand = Int((1 * 100) * Rnd)
Cells(i, j).Value = rand
Next
Next
For Each cl In Selection
Next
Stop
End Sub
Год назад запилил я связь Outlook и Excel с целью консолидации файлов в сводную таблицу через Power Query. С алгоритма не сдувал даже пылинки, ведь он работал так как нужно. Но с 15 сентября неожиданно возник этот монстр (файл ошибка) и возникает она теперь каждый раз после разворачивания AttachmentContent на скрине "шаги"
Кто-нибудь может помочь мне перевести с программистского что там написано, и лечится ли ? Данная фича мне очень уж нужна, так как хорошо упрощает работу. Я могу выложить весь текст ошибки он где-то на 45 строк, если нужно. Но далее строки идут очень однообразные.
Есть некий написанный код, который выполняет определённые действия, в середине которого идёт цикл.
Код
'обновление всех запросов PQ
For Each conn In ThisWorkbook.Connections
conn.Refresh
Next conn
И я заметил, что запросы продолжают "крутиться" - обновляться далее, пока код не выполнится полностью. Только после этого они останавливаются. Меня это не устраивает, ведь мне нужно, что бы дальше по коду обрабатывались полученные базы данных. Решил проблему словом Stop сразу после цикла по соединениям, но это немного лишает автоматизации, потом приходится нажимать на f5, что бы код работал дальше. Может кто посоветует, можно ли как то по другому сделать так, что бы запросы PQ обновлялись "вовремя" ? Есть кто сталкивался с таким ?
Добрый день всем. Имеется столбец с множеством разнообразных значений:
1. Есть текстовое, которое начинается строго на *6 2. Есть error 3. null 4. и есть числовые значения с 3 разрядами, всего не больше 7 символов
Я пытаюсь решить задачу - преобразовать так, что бы пункт 1 и 3 всегда оставался таким же. Пункт 2 и 4 менялись на null В общем нужно создать условия для FillDown по этому столбцу для текстового значения в п.1, и я никак не подхожу в решению. (за наименьшее кол-во шагов)
Всем привет. В книге Николая Павлова по PQ он рассказывает, как настроить сабж, что бы можно было писать код в PQ с подсказками и цветовым выделением. Я сделал все по инструкции, цвета появились, но подсказок нет к сожалению. Может какую галочку надо прожать ? Что тут можно сделать ?
Есть один файл, где после удаления первых 58 символов остаются номера статей, которые начинаются всегда с "2". Но вот незадача: строк может быть 2500, и в некоторых из них может попасться строка которая содержит цифры от 0 до 9 перед этой самой двойкой.
У меня получилось убрать все лишние цифры, кроме самой "2" ведь она тоже может стоять вначале перед "нужной" мне двойкой)))
В общем возникла необходимость удалить первую цифру 2 в 16 строке PQ. Почему-то по условию через Text.At не выходит.
Наверно что то не так делаю(( Прикладываю файл на последней стадии обработки
в результате обработки выгрузки из 1С в PQ я столкнулся с проблемой - на выходе появились задвоившиеся города в первом столбце. То есть, например есть "город1" в столбце А, и в столбце В есть настоящая итоговая сумма по нему за период (месяц). И ниже строкой идет тот же "город1", но сумма в столбце В уже меньше итоговой.
Я в целом прикинул как, должен работать такой макрос на VBA, но реализовать его не могу(( (если значение ячейки = значению вышестоящей ячейки И сумма по этой же строке меньше чем в вышестоящей, то строку удалить ) средствами PQ тоже не могу убрать лишние строки.
Просьба помочь написать такой макрос. Файл прилагаю
Приветствую всех. Часто смотрел семинары на канале учебного центра, которые ведет Сергей Ожиганов, но сейчас по каким то причинам все видео исчезли. Очень хотел посмотреть последние его семинары по Power query + vba. Он уволился и забрал с собой видео семинаров ?)) Никто не знает где можно отыскать их ?
Имеется файл, где на 1 листе в ячейку С4 должно затягиваться значение из периода в листе "Факт 2018 в формате 2019", смотря какой период стоит в выпадающем списке в ячейке С2.
Далее - имеются два макроса на деление умножение источника информации (листа "Факт 2018 в формате 2019") на 1000. Кнопки на эти макросы расположены на 1 листе. Стрелка вниз делит, стрелка вверх умножает на 1000
Мне нужно что бы работали одновременно выпадающий список и возможность разделить или умножить значение в ячейке С4 на 1000.
Но проблема в том, что если я нахожусь на 1 листе, то при нажатии на любую кнопку, выдает ошибку #ЗНАЧ. Если на листе "Факт 2018 в формате 2019", то делится нормально
Возникла проблемы с макросом, который не хочет запускаться с другого листа. То есть он должен на активном листе мне делить/умножать числа на 1000, которые находятся на другом неактивном листе. В результате появляется ошибка #ЗНАЧ. При этом мне нужно что бы в зависимости от периода в списке, менялись числа из того же листа. То есть мне надо что бы эти две фичи работали одновременно. По отдельности работают. и макрос на деление/умножение работает только когда я нахожусь на самом листе с источником чисел((
В общем прилагаю файл. Помогите советом плз файл ниже
Имеются папки с 5 файлами и файл, где содержится сводная таблица со всеми подключениями.
Файлы консолидируются через Power Query в общую базу данных, и остаются там в виде подключения. Из него уже я делаю сводную таблицу, где в строках идет иерархия: Город, статья, подразделения. Далее столбцы: план\факт и в идеале еще должны стоять столбцы с % вып. плана (оставил 1 для примера).
Тут я и столкнулся с проблемой, что при свертывании какой - либо статьи все проценты отклонения по подразделениям суммируются меж собой, и далее суммируются меж собой по статьям и выдается абсолютно неверное значение по городу.
Мне очень интересно узнать, как, имея мои данные, можно сделать так, что бы шли вычисления и по статьям тоже и по городам в соответствии с их итоговыми значениями. (та же ситуация возникает при группировке столбцов. Если сделать одну группу по январю, то в ней сложатся план и факт).
А так же хочу узнать, реально ли сделать вдобавок к этому еще и возможность смотреть данные по каждому месяцу, плану/факту в нарастании ? Потому что встроенное вычисление Сводной таблицы делает так только, если у меня будут 12 месяцев факта.
Файлы приложил, нужно только изменить пути к папкам, если скачаете.