Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2020, 09:10   #1
ElenaAC
 
Регистрация: 08.06.2020
Сообщений: 4
По умолчанию Автофильтр сводной таблицы

Всем здравствуйте!
Помогите, пожалуйста, чайнику...
Имеется таблица с данными по отгрузкам продукции клиентам.
Ежедневно заносятся данные по новым отгрузкам за предыдущий день и поступившим оплатам за продукцию.
Что хотелось бы получить: после занесения данных на лист "despatches_RUS" открыть "Лист1" и чтобы там при открытии автоматически бы обновились данные в двух сводных таблицах: в сводной таблице1 нужно вывести значения "меньше даты в ячейке А1 (т.е. меньше СЕГОДНЯ), а в сводной таблице2 нужно вывести только значения для сегодняшней даты (тоже привязать к ячейке А1).
Т.е. я открываю лист и вижу уже обновленные значения, без ручного обновления таблиц и снятия/удаления "галочек" в фильтрах.
Можно такое сделать?
Файл с примером в приложении.
Вложения
Тип файла: xlsx таблица4 .xlsx (54.5 Кб, 10 просмотров)
ElenaAC вне форума Ответить с цитированием
Старый 10.06.2020, 21:28   #2
Igor1961
Пользователь
 
Регистрация: 05.10.2015
Сообщений: 39
По умолчанию

Уберите из файла с примером все ненужные листы и покажите из каких столбцов нужно вытянуть данные. Из существующего примера не очень понятно.
Igor1961 вне форума Ответить с цитированием
Старый 11.06.2020, 09:29   #3
Elixi
Форумчанин
 
Регистрация: 10.05.2019
Сообщений: 163
По умолчанию

не надo ничегo убирать;
тем, ктo рабoтает сo свoдными таблицами всё пoнятнo;
пoмoч, к сoжалению, не в сoстoянии;
чтoбы свoдные таблици автoматически oбнoвлялись при oткрытии листа Лист1,
этo мoжнo сделать макрoсoм, дoстатoчнo дoбавить в Лист1 кoд:
Код:
Private Sub Worksheet_Activate()
    ActiveSheet.PivotTables("Свoданя таблица1").PivotCache.Refresh
    ActiveSheet.PivotTables("Свoданя таблица2").PivotCache.Refresh
End Sub

Последний раз редактировалось Elixi; 11.06.2020 в 09:44.
Elixi вне форума Ответить с цитированием
Старый 11.06.2020, 12:45   #4
ElenaAC
 
Регистрация: 08.06.2020
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Elixi Посмотреть сообщение
этo мoжнo сделать макрoсoм
Спасибо, эту часть я решила... Но фильтры приходится выставлять вручную... Проблема еще в том, что не все знают, как работать со сводными таблицами. Для этого и хотела по максимуму все автоматизировать.
ElenaAC вне форума Ответить с цитированием
Старый 12.06.2020, 09:32   #5
Igor1961
Пользователь
 
Регистрация: 05.10.2015
Сообщений: 39
По умолчанию

Не уверен что правильно понял чего Вы хотите, сделал как понял. Проверяйте:
Вложения
Тип файла: rar таблица4_1.rar (58.1 Кб, 7 просмотров)
Igor1961 вне форума Ответить с цитированием
Старый 15.06.2020, 08:20   #6
ElenaAC
 
Регистрация: 08.06.2020
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Igor1961 Посмотреть сообщение
Не уверен что правильно понял чего Вы хотите, сделал как понял. Проверяйте:
Спасибо большое, попробовала. Почти нормально... Только вот суммы по клиентам не объединяются, а выводятся каждая отдельно, получается очень много строк и не видно общего итога по каждому клиенту, это не информативно... Нужен именно свод - по клиенту 1 такая-то сумма задолженности и такая-то сумма ожидаемой сегодня оплаты, по клиенту 2 такая-то. Можно так сделать?
ElenaAC вне форума Ответить с цитированием
Старый 15.06.2020, 20:29   #7
Igor1961
Пользователь
 
Регистрация: 05.10.2015
Сообщений: 39
По умолчанию

Уважаемая Елена, про клиентов Вы почему-то ничего не говорили раньше, и в файле в Ваших сводных нет поля с клиентами (возможно просто не поставили галочку для добавления поля). Покажите в файле что и в каком виде Вы хотите увидеть в результате (схематически: в этой ячейке - клиент, в этой - сумма и т.п.) Это насчет информативности, которой Вы хотите: выборка должна быть сначала по клиентам и после по "PAYER"-ам или сначала по "PAYER"-ам а потом по клиентам?
Igor1961 вне форума Ответить с цитированием
Старый 16.06.2020, 10:41   #8
ElenaAC
 
Регистрация: 08.06.2020
Сообщений: 4
По умолчанию

Игорь, добрый день.
Я прошу прощения, наверное Вас ввели в заблуждение иностранные обозначения в таблице.
Мне нужны данные с группировкой по столбцу "PAYER" (по англ. плательщик, т.е. покупатель, клиент - я это имела ввиду, а столбец "Client" тут не нужен).
Так вот, Ваш макрос выводит строчки по PAYER без группировки, т.е. к примеру суммы по PAYER1 выводятся каждая отдельно, а мне нужны общие итоги. Сколько всего задолженность по PAYER1, по PAYER2 и т.д., сколько ожидать сегодня по каждому плательщику.
Прилагаю два изображения - "как получается" и "как надо".
Изображения
Тип файла: jpg так получается.JPG (89.2 Кб, 27 просмотров)
Тип файла: jpg так надо.JPG (47.3 Кб, 26 просмотров)
ElenaAC вне форума Ответить с цитированием
Старый 17.06.2020, 20:36   #9
Igor1961
Пользователь
 
Регистрация: 05.10.2015
Сообщений: 39
По умолчанию

Так вроде работает, проверяйте:
Код:
Sub Svodnaya()
    Dim i&, j&, lr1&, lr2&, s1#, s2#, sum1#, sum2#, d As Date
    
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    
'Очищаем старые данные если есть:
    Worksheets("Rezultat").Range("A4:E" & Cells(Rows.Count, 1).End(xlUp).Row + 10).ClearContents
    
'Для помещения в "А1" сегодняшней даты раскомментируйте следующую строку:
'   Worksheets("Rezultat").Cells(1, 1).Value=Date
    d = Worksheets("Rezultat").Cells(1, 1).Value 
    
'Создаем доп. лист и на нем список всех клиентов:
    Sheets.Add.Name = "Dopolnitelny"
    Worksheets("despatches_RUB").Select
    Worksheets("despatches_RUB").Columns("E:E").Select
    Selection.Copy
    Worksheets("Dopolnitelny").Select
    Worksheets("Dopolnitelny").Columns("A:A").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Worksheets("Dopolnitelny").Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row + 10).RemoveDuplicates Columns:=1, Header:=xlNo
    
'Считаем суммы:
For j = 3 To Worksheets("Dopolnitelny").Cells(Rows.Count, 1).End(xlUp).Row
    Worksheets("despatches_RUB").Select
    s1 = 0
    s2 = 0
    
 For i = 4 To Cells(Rows.Count, 3).End(xlUp).Row
  If Cells(i, 13).Value < d And Worksheets("Dopolnitelny").Cells(j, 1).Value = _
                                Worksheets("despatches_RUB").Cells(i, 5).Value Then
     s1 = s1 + Worksheets("despatches_RUB").Cells(i, 12).Value
  End If
  If Cells(i, 13).Value = d And Worksheets("Dopolnitelny").Cells(j, 1).Value = _
                                Worksheets("despatches_RUB").Cells(i, 5).Value Then
     s2 = s2 + Worksheets("despatches_RUB").Cells(i, 12).Value
  End If
 Next i
 
    lr1 = Worksheets("Rezultat").Cells(Rows.Count, 1).End(xlUp).Row
    Worksheets("Rezultat").Cells(lr1 + 1, 1).Value = Worksheets("Dopolnitelny").Cells(j, 1).Value
    Worksheets("Rezultat").Cells(lr1 + 1, 2).Value = s1
    sum1 = sum1 + Worksheets("Rezultat").Cells(lr1 + 1, 2).Value
    
    lr2 = Worksheets("Rezultat").Cells(Rows.Count, 4).End(xlUp).Row
    Worksheets("Rezultat").Cells(lr2 + 1, 4).Value = Worksheets("Dopolnitelny").Cells(j, 1).Value
    Worksheets("Rezultat").Cells(lr2 + 1, 5).Value = s2
    sum2 = sum2 + Worksheets("Rezultat").Cells(lr1 + 1, 5).Value
Next j

     Worksheets("Rezultat").Activate
With Worksheets("Rezultat")
    .Cells(lr1 + 2, 1).Value = "ОБЩИЙ ИТОГ:"
    .Cells(lr2 + 2, 4).Value = "ОБЩИЙ ИТОГ:"
    .Cells(lr1 + 2, 2).Value = sum1
    .Cells(lr2 + 2, 5).Value = sum2
End With
   
For i = Worksheets("Rezultat").Cells(Rows.Count, 4).End(xlUp).Row To 4 Step -1
 If Cells(i, 5).Value = 0 Then
    Range("D" & i & ":E" & i).Delete Shift:=xlUp
 End If
Next i
   
   Worksheets("Dopolnitelny").Delete  'удаляем доп. лист
   Application.DisplayAlerts = True
   Application.ScreenUpdating = True
End Sub

Последний раз редактировалось Igor1961; 18.06.2020 в 10:58.
Igor1961 вне форума Ответить с цитированием
Старый 18.06.2020, 10:24   #10
Igor1961
Пользователь
 
Регистрация: 05.10.2015
Сообщений: 39
По умолчанию

Файл забыл прикрепить
Вложения
Тип файла: rar таблица4_1.rar (65.2 Кб, 2 просмотров)
Igor1961 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение сводной таблицы REztor Microsoft Office Excel 1 14.04.2012 13:30
Автофильтр из сводной таблицы Севастьянов Microsoft Office Excel 0 08.09.2011 11:55
Создание сводной таблицы tinka Microsoft Office Excel 1 20.08.2010 15:04
Макрос для сводной таблицы kipish_lp Microsoft Office Excel 2 21.04.2010 10:58
Данные из двух полей исх. таблицы в одно поле сводной таблицы Strelec79 Microsoft Office Excel 2 02.08.2009 13:59