Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Вставить подсчёт уникальных значений именно в пустые строчки - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вставить подсчёт уникальных значений именно в пустые строчки (Макросы/Sub)
Вставить подсчёт уникальных значений именно в пустые строчки
ant6729 Дата: Пятница, 26.08.2016, 16:51 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 151
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
Добрый день!
1. Из варианта А получаю вариант Б макросами делаю промежуточный итог. Нужно, чтобы в первый столбец таблицы Б втаскивался подсчёт уникальных значений. Внизу промежуточного итога.

Есть формулы подсчёта массива. http://www.planetaexcel.ru/techniques/14/187/

Но я не знаю, как автоматизировать их вставку в ячейки в строке промежуточных итогов. И чтобы данная формула была живой: могла сама следить за изменениями внутри каждого куска между промежуточными итогами при изменении данного куска. Однако это уже пункт 2.

2. Причём если я убираю или перемещаю строчки, (переход из Б в В) подсчёт автоматически суммировал до вышестоящего куска (строки промежуточных итогов, сумм).

У кого какие решения могут быть. В принципе, буду благодарен и за решение хотя бы пункта 1.
К сообщению приложен файл: 5891250.xlsx(6Kb)


Сообщение отредактировал ant6729 - Пятница, 26.08.2016, 21:38
 
Ответить
СообщениеДобрый день!
1. Из варианта А получаю вариант Б макросами делаю промежуточный итог. Нужно, чтобы в первый столбец таблицы Б втаскивался подсчёт уникальных значений. Внизу промежуточного итога.

Есть формулы подсчёта массива. http://www.planetaexcel.ru/techniques/14/187/

Но я не знаю, как автоматизировать их вставку в ячейки в строке промежуточных итогов. И чтобы данная формула была живой: могла сама следить за изменениями внутри каждого куска между промежуточными итогами при изменении данного куска. Однако это уже пункт 2.

2. Причём если я убираю или перемещаю строчки, (переход из Б в В) подсчёт автоматически суммировал до вышестоящего куска (строки промежуточных итогов, сумм).

У кого какие решения могут быть. В принципе, буду благодарен и за решение хотя бы пункта 1.

Автор - ant6729
Дата добавления - 26.08.2016 в 16:51
Nic70y Дата: Пятница, 26.08.2016, 17:21 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3472
Репутация: 722 ±
Замечаний: 0% ±

Excel 2013
А зачем нам пустой файл?


ЯД(poison) 41001841029809
+7 978 049 98 74 (мтс)
 
Ответить
СообщениеА зачем нам пустой файл?

Автор - Nic70y
Дата добавления - 26.08.2016 в 17:21
ant6729 Дата: Пятница, 26.08.2016, 21:36 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 151
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
Вот пример
К сообщению приложен файл: 0993847.xlsx(9Kb)
 
Ответить
СообщениеВот пример

Автор - ant6729
Дата добавления - 26.08.2016 в 21:36
ant6729 Дата: Суббота, 27.08.2016, 12:52 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 151
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
Промежуточный итог может подсчитать только количество. Но к сожалению, не уникальное количество.
 
Ответить
СообщениеПромежуточный итог может подсчитать только количество. Но к сожалению, не уникальное количество.

Автор - ant6729
Дата добавления - 27.08.2016 в 12:52
Pelena Дата: Суббота, 27.08.2016, 12:58 | Сообщение № 5
Группа: Модераторы
Ранг: Экселист
Сообщений: 9839
Репутация: 2252 ±
Замечаний: 0% ±

Excel 2010 & Mac Excel 2011
макросами делаю промежуточный итог

А сам макрос покажете?


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
Сообщение
макросами делаю промежуточный итог

А сам макрос покажете?

Автор - Pelena
Дата добавления - 27.08.2016 в 12:58
ant6729 Дата: Суббота, 27.08.2016, 15:01 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 151
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
Да, конечно
2 макрос в документе
К сообщению приложен файл: _Microsoft_Exce.xlsm(14Kb)
 
Ответить
СообщениеДа, конечно
2 макрос в документе

Автор - ant6729
Дата добавления - 27.08.2016 в 15:01
Gustav Дата: Понедельник, 29.08.2016, 12:29 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1211
Репутация: 484 ±
Замечаний: 0% ±

начинал с Excel 4.0...
У меня получился следующий макрос:
[vba]
Код
Sub insertFormula()
    Dim rng     As Range
    Dim c       As Range
    Dim rngFrml As Range
    Dim strAddr As String
    Dim rowFrom As Integer
        
    Set rng = Selection.Resize(Selection.Rows.Count + 1)
    For Each c In rng.Columns(1).Cells
        If IsEmpty(c) Then
            If rowFrom > 0 Then
                Set rngFrml = Range(Cells(rowFrom, c.Column), Cells(c.Row - 1, c.Column))
                strAddr = rngFrml.Address(False, False)
                c.FormulaArray = "=SUM(1/COUNTIF(" & strAddr & "," & strAddr & "))"
        
                strAddr = rngFrml.Offset(, 1).Address(False, False)
                c.Offset(, 1).Formula = "=SUM(" & strAddr & ")"
        
                rowFrom = 0
            End If
        Else
            If rowFrom = 0 Then rowFrom = c.Row
        End If
    Next c
End Sub
[/vba]
Перед запуском надо выделить на рабочем листе диапазон (Selection), включающий первый столбец области обработки. В примере из сообщения 3 это диапазон E1:E16 или E1:E17 (макрос правильно обработает последнюю ячейку и в том, и в другом случае). Разумеется, ячейки E5:F5, E11:F11, E17:F17 в начале должны быть пустыми и в процессе работы будут заполнены автоматически созданными формулами.


Мой tip box - яд 41001663842605
 
Ответить
СообщениеУ меня получился следующий макрос:
[vba]
Код
Sub insertFormula()
    Dim rng     As Range
    Dim c       As Range
    Dim rngFrml As Range
    Dim strAddr As String
    Dim rowFrom As Integer
        
    Set rng = Selection.Resize(Selection.Rows.Count + 1)
    For Each c In rng.Columns(1).Cells
        If IsEmpty(c) Then
            If rowFrom > 0 Then
                Set rngFrml = Range(Cells(rowFrom, c.Column), Cells(c.Row - 1, c.Column))
                strAddr = rngFrml.Address(False, False)
                c.FormulaArray = "=SUM(1/COUNTIF(" & strAddr & "," & strAddr & "))"
        
                strAddr = rngFrml.Offset(, 1).Address(False, False)
                c.Offset(, 1).Formula = "=SUM(" & strAddr & ")"
        
                rowFrom = 0
            End If
        Else
            If rowFrom = 0 Then rowFrom = c.Row
        End If
    Next c
End Sub
[/vba]
Перед запуском надо выделить на рабочем листе диапазон (Selection), включающий первый столбец области обработки. В примере из сообщения 3 это диапазон E1:E16 или E1:E17 (макрос правильно обработает последнюю ячейку и в том, и в другом случае). Разумеется, ячейки E5:F5, E11:F11, E17:F17 в начале должны быть пустыми и в процессе работы будут заполнены автоматически созданными формулами.

Автор - Gustav
Дата добавления - 29.08.2016 в 12:29
ant6729 Дата: Вторник, 30.08.2016, 14:24 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 151
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
Да, спасибо

Работает

Её использование, вроде, можно автоматизировать, попробовал.

Спасибо!
 
Ответить
СообщениеДа, спасибо

Работает

Её использование, вроде, можно автоматизировать, попробовал.

Спасибо!

Автор - ant6729
Дата добавления - 30.08.2016 в 14:24
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вставить подсчёт уникальных значений именно в пустые строчки (Макросы/Sub)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2016 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!