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

Страницы: 1 2 3 4 5 След.
Фильтрация по последней дате в каждом месяце в power query
 
Здесь нельзя суммировать факт.
Поле факт нужно добавить в список полей для группирования, а не в блок для нового столбца: (Имя нового столбца - операция (сумм) - столбец)
Но если сделать группировку таким образом, PQ не хочется группировать по последней (макс.) дате...вообще не будет группировки, можете попробовать.
Выше в теме есть сообщение №3, в котором указан подобный код, но он не учитывает что есть дополнительные столбцы. А в реальной задаче несколько столбцов, как в текущем примере.
Фильтрация по последней дате в каждом месяце в power query
 
Нет, немного не так. Вы просуммировали значения по полю факт и сгруппировали их по и так оказывается последним датам месяца (это мой косяк, я в пример уже отфильтрованный по последним датам столбец приложил)
Сейчас поправил пример, добавил более ранние даты в каждом месяце
Задача сгруппировать по последней дате в разрезе месяца, при этом суммировать не нужно данные по полю факт, нужно вывести значение факта соответствующее последней дате по каждому продукту в каждом месяце, оставив все столбцы. Месяц, такие то продукты, по каждому свой факт, но только по последней дате внутри месяца.
За один день у одного продукта может быть только одна строка факт, это я здесь налепил неглядя, но думаю это не критично для решения  
Изменено: Артем_81 - 23.06.2022 14:45:55
Фильтрация по последней дате в каждом месяце в power query
 
В продолжение этой темы, подскажите пожалуйста, как можно к имеющемуся примеру добавить код который будет группировать по максимальной дате внутри каждого месяца.
Если можно, не меняя ничего в коде примера, следующим шагом добавить группировку?
Фильтрация по последней дате в каждом месяце в power query
 
Вопрос снят, группировкой по макс дате почему-то в конце концов получилось справиться)
Фильтрация по последней дате в каждом месяце в power query
 
Уважаемые знатоки Power query, всем доброго времени суток!

Помогите плиз отфильтровать столбец с датами так, чтобы в каждом месяце оказалась последняя имеющаяся в выгрузке дата.
Вложил файл пример, надо чтобы фильтр отработал так чтобы получились только строки выделенные желтым цветом.
Создание вычисляемого столбца с условиями и дальнейшей разбивкой на новые строчки в Power query
 
Цитата

А почему вы Товар 1 опт разбили на 98 и 2, а не, как один из тысяч вариантов, на 65 и 35 ?
И как вы это формулами Excel сделали?

Т.к. в моем случае вес опта 98%, а розницы 2%, а чтобы получить долю, надо общий оборот/портфель умножить на 0.98 для товара опт и на 0.02 для розницы
Было б 65/35, умножил бы общее на 0.65 и на 0.35 соответственно...
Изменено: Артем_81 - 09.06.2022 21:09:26
Создание вычисляемого столбца с условиями и дальнейшей разбивкой на новые строчки в Power query
 
В общем задачу не корректно описал, т.к есть две таблицы: факты и планы, в целом задачу решил, просто слишком многоступенчато получилось (несколько настраиваемых столбцов в запросе, далее выгрузка запроса в таблицу, и применение формулы, думаю ничего легче здесь не придумать), т.ч. можно закрывать вопрос. Спасибо)
Создание вычисляемого столбца с условиями и дальнейшей разбивкой на новые строчки в Power query
 
Добрый день, уважаемые профессионалы Power query!

Во вложении файл с примером.
Задача создать поле, в котором цифра из диапазона А2:С7 по полю факт у продуктов Товар 1 опт и Товар 2 опт
разделится на соответствующие доли (пример в диапазоне Е2:G9) в новом вычисляемом столбце и у новой доли появится новое наименование Товар 1 розница
и товар 2 розница в столбце товар (либо новое поле вычисляемое создавать, либо в имеющемся поле сделать переименование)
Это вообще реально, или проще в excel доработать формулами эту задачу?
Или как это можно еще сделать не прибегая к таким заморочкам?
Если в диапазоне не содержатся ненулевые значения, то после фильтрации диапазона от нулевых значений, макрос все равно копирует все нулевые значения
 
Цитата
написал:
'сняли фильтры если они есть, если их нет обнулили автофильтр
Если вы эту строчку
Код
  If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData      'сняли фильтры если они есть, если их нет обнулили автофильтр

имеете в виду, то она относится к файлу в который вставляются данные, а у мне вопрос как отфильтровать в исходном файле данные от нулевых значений, или я что-то не правильно понял?
Изменено: Артем_81 - 28.04.2022 17:50:15
Если в диапазоне не содержатся ненулевые значения, то после фильтрации диапазона от нулевых значений, макрос все равно копирует все нулевые значения
 
Вот так сделал, все равно вставляет нулевые данные.
Код
 Range(Selection, Selection.End(xlDown)).Select          ' выделили весь отфильтрованный столбец до конца
    Selection.Copy
    
      
    Dim arr As Variant
    For Each cl In Selection
        If Not cl.EntireRow.Hidden Then
            If IsEmpty(arr) Then
                ReDim arr(1 To 1)
            Else
                ReDim Preserve arr(1 To UBound(arr) + 1)
            End If
            arr(UBound(arr)) = cl.Value
        End If
    Next
    
    Workbooks("Наш файл.xlsx").Worksheets("Наш файл").Activate         
    Cells(Range("D4").End(xlDown).Row, [O1].Column).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False  
Изменено: Артем_81 - 28.04.2022 15:36:14
Если в диапазоне не содержатся ненулевые значения, то после фильтрации диапазона от нулевых значений, макрос все равно копирует все нулевые значения
 
Уважаемые знатоки VBA, помогите пожалуйста найти ошибку в коде!
Во второй строке фильтрую диапазон по критерию "<> 0", причем пробовал двумя методами
1  Criteria1:="<>0", Operator:=xlFilterValues    
2  Criteria1:="<>0", Operator:=xlAnd  
В итоге т.к. Field 13 кроме нулей других значений не содержит, макрос нули не отфильтровывает, копирует весь столбец с нулевыми значениями и дальше макрос их вставляет в соответствии с инструкциями кода. Что это за беда?!

Код
ActiveSheet.ListObjects("Выгрузки_xml").Range.AutoFilter Field:=13, _
       Criteria1:="<>0", Operator:=xlFilterValues             ' фильтранули нули по 13 столбцу
    
    Set wb = GetObject("Наш_файл".xlsx")
    wb.Windows(1).Visible = True
    Workbooks.Open Filename:="Наш_файл".xlsx"
    Workbooks("Наш_файл".xlsx").Worksheets("Лист").Activate        
    If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData      'сняли фильтры если они есть, если их нет обнулили автофильтр
    
    Windows("Отчет_xml.xlsm").Activate  ' Активировать нужную книгу (переключситься)
    Range("M2").Select
    Range(Selection, Selection.End(xlDown)).Select          ' выделили весь отфильтрованный столбец до конца
    Selection.Copy                                          ' скопировали содержимое
    
    Workbooks("Наш_файл".xlsx").Worksheets("Лист").Activate     
    Cells(Range("D4").End(xlDown).Row, [O1].Column).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False     'Спустились до конца столбце D (т.к. он отправная точка, т.к. всегда заполнен) и вставили теперь БПИФы в (M)
    Cells(Range("D4").End(xlDown).Row, [M1].Column).Offset(1, 0).Resize(Selection.Rows.Count).Value = 0                                                        'Вставляем 0 в столбец М(притоки)
    
Поиск этой же строки в другом столбце в VBA
 
Сделал вот так, но ничего не работает, формулы не протягивает
Код
   Windows("Отчет_БПИФ_xml.xlsm").Activate  ' Активировать нужную книгу (переключиться)
    Range("C2").Select
    Range(Selection, Selection.End(xlDown)).Select          ' выделили весь отфильтрованный столбец Фонд до конца
    Selection.Copy
    Windows("РЕЕСТР ПРИВЛЕЧЕНИЙ 2022.xlsx").Activate
    Cells(Range("D4").End(xlDown).Row, [D1].Column).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False     'спустились до конца столбца D (т.к. он отправная точка, т.к. всегда заполнен) и вставили теперь Фонды в (D)

    CopyColumn [B1].Column
    CopyColumn [C1].Column
    CopyColumn [E1].Column
    CopyColumn [H1].Column
    CopyColumn [I1].Column
    CopyColumn [J1].Column
    CopyColumn [K1].Column
    CopyColumn [L1].Column
    CopyColumn [N1].Column
    CopyColumn [P1].Column
    
    
  
End Sub
  
Sub CopyColumn(xx As Integer)
    Cells(Range("D4").End(xlDown).Row, xx).Copy Cells(Range("D4").End(xlDown).Row, xx).Offset(1, 0).Resize(Selection.Rows.Count)

End Sub
    
Поиск этой же строки в другом столбце в VBA
 
А не подскажете как этот код интегрировать в уже имеющийся код? Это нижняя часть моего кода. Я попытался добавить вниз, отладчик ругается. Обязательно заканчивать нужно процедуру, и новую открывать?
Код
    Windows("Отчет_БПИФ_xml.xlsm").Activate                 ' Активировать нужную книгу (переключиться)
    Range("J2").Select
    Range(Selection, Selection.End(xlDown)).Select          ' выделили весь отфильтрованный столбец Новые до конца
    Selection.Copy
    Windows("РЕЕСТР ПРИВЛЕЧЕНИЙ 2022.xlsx").Activate
    Cells(Range("D4").End(xlDown).Row, [G1].Column).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False     'спустились до конца столбца D (т.к. он отправная точка, т.к. всегда заполнен) и вставили теперь Новые в (G)

    Windows("Отчет_БПИФ_xml.xlsm").Activate  ' Активировать нужную книгу (переключиться)
    Range("C2").Select
    Range(Selection, Selection.End(xlDown)).Select          ' выделили весь отфильтрованный столбец Фонд до конца
    Selection.Copy
    Windows("РЕЕСТР ПРИВЛЕЧЕНИЙ 2022.xlsx").Activate
    Cells(Range("D4").End(xlDown).Row, [D1].Column).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False     'спустились до конца столбца D (т.к. он отправная точка, т.к. всегда заполнен) и вставили теперь Фонды в (D)
   
Поиск этой же строки в другом столбце в VBA
 
Отлично, эту
Код
Cells(Range("D4").End(xlDown).Row, [N1].Column).Offset(1, 0).Resize(Selection.Rows.Count).Value = 0
строку подставил ниже этой и все работает как часики!
Код
Cells(Range("D4").End(xlDown).Row, [M1].Column).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=Fals

А можете еще помочь дописать код до совершенства: чтобы протягивались формулы (на листе в который вставляются данные кодом) которые содержатся в столбцах B,C,E,H,I,J,K,L,N,P, но формулы находятся на строку выше (т.к. мы используем Offset(1,0), чем строка в которую мы начинаем вставлять наш диапазон с данными.

Поиск этой же строки в другом столбце в VBA
 
Цитата
написал:
Cells(Range("D4").End(xlDown).Row, [M1].Column).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=Fals
Возвращаясь к этой строке кода подскажите пожалуйста, возможно ли например по всей длине диапазона D данные которого мы вставляем в столбец M вставить нулевые значения (не Null, а именно 0) в столбец N?
 
Изменено: Артем_81 - 19.04.2022 15:57:06
Извлечение символов для поиска из диапазона в котором ищем, суммирование искомых данных нарастающим итогом (помесячно) с условием.
 
Спасибо, последнее решение (от _Boroda_) конечно полностью адаптивно под мой рабочий отчет, но и первая формула (от bigorq) тоже мощь!
Ребята, вы каждый раз решениями задаете больше загадок, в хорошем смысле, огромное спасибо за помощь и за щедрость в передаче вашего опыта!  
Извлечение символов для поиска из диапазона в котором ищем, суммирование искомых данных нарастающим итогом (помесячно) с условием.
 
Дорогие коллеги, всем доброго дня!
Столкнулся с задачей, которую смог решить только с помощью добавления вспомогательных столбцов.
Во вложении файл где все подробно расписано, кто-нибудь может помочь решить задачу, усложнив формулу, но чтобы не пришлось добавлять столбцы расчетные.
Благодарю заранее за идеи как это можно решить!
Поиск этой же строки в другом столбце в VBA
 
Благодарю!
Поиск этой же строки в другом столбце в VBA
 
Благодарю, строка работает, помогли продвинуться по коду.
Так я же обрамил код в "<>", почему-то он все равно не окультурился... что не так подскажите плиз!
Поиск этой же строки в другом столбце в VBA
 
Цитата
написал:
cell(Range("d4").End(xlDown).row, "M").Offset(1, 0).Select
Имеется ввиду что так нужно написать?

<Cell(Range("d4").End(xlDown).Row, "M").Offset(1, 0).Select
   ActiveCell.Offset(1, 0).Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False>
Поиск этой же строки в другом столбце в VBA
 
Уважаемые программисты, помогите пожалуйста продвинуться в написании кода.
В общем я застопорился на следующем моменте:
Range("d4").End(xlDown).Select
   ActiveCell.Offset(1, 0).Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False    'на этом этапе мы находим последнюю строчку диапазона и смещаемся на одну вниз, чтобы туда вставлять скопированные данные.
Но дело в том что мне данные нужно вставить в столбец M, а по D я просто нахожу последнюю строку диапазона, т.к. в М возможны Null , а в D обязательно имеются данные.
Заранее благодарю!
Объединение двух кодов VBA в один
 
Не выходит то, что если я пытаюсь запустить макрос при открытой книге, то появляется ошибкка в строке (желтым выделяется строка -
Sheets("Выгрузка_все_фонды").Select   'активировали нужный лист

А надо чтобы книга если была открыта, то макрос не ругался...
Объединение двух кодов VBA в один
 
Нет так я пробовал ничего не выходит.
Переменная wb в первой части кода уже объявлялась: Dim wb As Workbook
Теперь задача сделать так чтобы макрос вставлял данные в новый файл, причем если файл закрыт, то макрос открывает  если файл уже открыт, то макрос не должен ругаться на это.
Я нашел на форуме код который отвечает за открытие книги в любом случае , открыта она или нет, но не могу теперь объединить со своим кодом, кто-то может помочь?
Объединение двух кодов VBA в один
 
Коллеги, помогите пожалуйста интегрировать второй код в первый, чтобы он стал продолжением первого скрипта.
По отдельности они работают, не могу понять как их объединить.
Буду очень признателен за помощь, вложил файл, в котором есть два куска которые хотелось бы соединить.
Фильтрация нулевых значений в динамическом диапазоне и вставка данных в другую книгу в конец столбцов A и B
 
Все разобрался, можно закрыть задачу. получился такой код.


Sub Кнопка1_Щелчок()
'
' Кнопка1_Щелчок Макрос
'

'
   ActiveSheet.Range("$A$1:$B$1000").AutoFilter Field:=1, Criteria1:="<>0", Operator:=xlFilterValues
   Range("A2:B2").Select
   Range(Selection, Selection.End(xlDown)).Select
   Selection.Copy
   Windows("Полотно.xlsx").Activate
   Range("A20").End(xlDown).Select
   ActiveCell.Offset(1, 0).Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
   Windows("Фильтр.xlsm").Activate
End Sub
Фильтрация нулевых значений в динамическом диапазоне и вставка данных в другую книгу в конец столбцов A и B
 
Коллеги, всем доброго дня!
Вложил 2 файла.
В файле Фильтр необходимо кодом VBA (можно через кнопку) отфильтровать нулевые значения, и оба столбца вставить в книгу Полотно вниз расширяемого диапазона.
Если писать макрос макрорекордером, то при ручной фильтрации нулевых значений, макрос использует команду которая перечисляет те цифры кроме нулей, которые есть в текущем столбце, и в следующий раз когда будет другой список, не вошедшие в первую выборку числа не равные 0, тоже отфильтруются и не будут добавлены в результирующий набор.
Помогите плиз написать код в книге Фильтр. В код не обязательно добавлять команду автоматически открывающую файл Полотно.  
Преобразование текстового формата в число
 
Точно))))
Так в итоге как формулой реализовать эту штуку, если не прибегать к инструменту текст по столбцам?
Чтобы на выходе время осталось, а не 01.01.1900
Преобразование текстового формата в число
 
Получилось сделать через текст по столбцам, выбрав разделитель точку (.), весь столбец преобразовался в формат время (без даты как я понимаю)
Преобразование текстового формата в число
 
=--Левсимв   выдает вот такую ерунду. все даты = 01.01.1900 (ниже файл с примером)
Если скопировать столбец А правее, в значениях, то левсимв работает корректно (Блок EF)
А надо чтобы формула (--левсимв или другая) ссылалась на столбец А, в общем надо как-то преобразовать, можно вообще не удалять 6 знаков после самой правой точки, если есть такая возможность преобразовать,  но удаление крайних 6 знаков допускается.
Преобразование текстового формата в число
 
Пардон, вот файл
Изменено: Артем_81 - 04.03.2022 11:22:44
Страницы: 1 2 3 4 5 След.
Наверх