powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Найти все верхние уровни группировок, куда входит определенная строка
11 сообщений из 11, страница 1 из 1
Найти все верхние уровни группировок, куда входит определенная строка
    #37579004
Романыч84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.

Вопрос такой, есть таблица с группировками. Всего 3 уровня(но количество уровней может меняться).

Необходимо узнать всех родителей определенной строки, в которой пользователь изменил значение.
Проблема состоит в определении всех верхних уровней группировки.

Уровень1------------------Получить
________Уровень2
___________Уровень3
___________Уровень3
___________Уровень3
________Уровень2---------Получить
___________Уровень3
___________Уровень3------Изменяем
Уровень1
________Уровень2
___________Уровень3

Если пользователь изменит 3 уровень, то мне необходимо получить номера строк Уровень2 и Уровень1.
Это необходимо для пересчета итогов по уровню. Можно это было сделать формулами, но этот вариант у меня запасной.

--------------------------------------------------------------
Мой первый сайт
сайт developers.do.am
...
Рейтинг: 0 / 0
Найти все верхние уровни группировок, куда входит определенная строка
    #37579007
Романыч84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все это с помощью VBA необходимо сделать.
...
Рейтинг: 0 / 0
Найти все верхние уровни группировок, куда входит определенная строка
    #37580898
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Дайте образец самого файла (или кода, создающего ваш "список с группировкой").
2) Определитесь, _для чего_ вам нужно определить последовательность "родителей". Если задача только в том, чтобы, например, пересчитать суммы в вышестоящих объединяющих строках - то вы выбрали совершенно "череззадничный" путь решения...
...
Рейтинг: 0 / 0
Найти все верхние уровни группировок, куда входит определенная строка
    #37582313
Романыч84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTM1) Дайте образец самого файла (или кода, создающего ваш "список с группировкой").
2) Определитесь, _для чего_ вам нужно определить последовательность "родителей". Если задача только в том, чтобы, например, пересчитать суммы в вышестоящих объединяющих строках - то вы выбрали совершенно "череззадничный" путь решения...

1. Пример файла приведен в вопросе, файл слишком громоздкий, вычищать его тяжко, а показывать такой какой он есть - лишнее захламление.
2. Вполне возможно что и череззадничный, но это не ТОЛЬКО для расчета итогов по одной колонке, а еще и не тривиальная формула.
...
Рейтинг: 0 / 0
Найти все верхние уровни группировок, куда входит определенная строка
    #37582324
Романыч84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот пример файла
...
Рейтинг: 0 / 0
Найти все верхние уровни группировок, куда входит определенная строка
    #37582332
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О, нечто мы увидели...
Вы сами группировку делаете, или этот файл уже сгруппирован? Это я к чему - если вы сами создавали группировку, то у вас были и уровни вложения - вот их оставить в отдельном столбце и пользовать потом для поиска "родителей".
Что касается моего замечания о "пути решения" - так именно это и есть тот самый "непраздный вопрос", от которого надо начинать плясать. Ведь, с одной стороны, если вы не будете ставить формулы для вычисления сумм, то сэкономите на объеме файла. С другой же, можете проиграть в быстродействии, поскольку макросы будут вызываться "при любом чихе", надо будет встраивать анализ положения изменения, пользовать нелетучие описания собственных функций...
...
Рейтинг: 0 / 0
Найти все верхние уровни группировок, куда входит определенная строка
    #37582334
Романыч84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Этот файл выгружается из 1с, я уже пробовал сам создавать подобный файл, т.е. выгружать в Excel самостоятельно, но это слишком долго. Поэтому у меня файл выгружается из 1с, а затем я его обрабатываю макросами самостоятельно. Поэтому вариант с запоминанием родителя не прокатывает. Хотя можно подумать над этим.

Как я понимаю стандартными средствами не получится получить родителей?
...
Рейтинг: 0 / 0
Найти все верхние уровни группировок, куда входит определенная строка
    #37582343
Романыч84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Романыч84 Поэтому у меня файл выгружается из 1с, а затем я его обрабатываю макросами самостоятельно. ?
Выгружаю его средствами 1С.
...
Рейтинг: 0 / 0
Найти все верхние уровни группировок, куда входит определенная строка
    #37582354
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему не получится? Для программистов нет ничего невозможного...
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 3 And Target.CurrentRegion.Row = 1 Then
        lnRow = Target.Rows(1).Row
        lcLev = ""
        lnLev = Target.Rows(1).OutlineLevel + 1
        Do While lnLev > 1
            If Rows(lnRow).OutlineLevel < lnLev Then
                lcLev = lcLev & "," & lnRow
                lnLev = Rows(lnRow).OutlineLevel
            End If
            lnRow = lnRow - 1
        Loop
        MsgBox Target.Address & " - " & lcLev
    End If
End Sub

Строка lcLev - список номеров строк (включая строку, где изменилось значение). Разбейте её, например, с помощью Split() , и обращайтесь по индексам... можете собирать её сразу в обратном порядке, если надо...
...
Рейтинг: 0 / 0
Найти все верхние уровни группировок, куда входит определенная строка
    #37582356
Романыч84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, я думал есть свойство, а перебором я знаю как сделать.
Но все равно спасибо.
...
Рейтинг: 0 / 0
Найти все верхние уровни группировок, куда входит определенная строка
    #37582368
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так я про что и спрашивал...
Можно ведь _один_ раз пройти по списку и заполнить столбец с уровнем группировки. Вернее, со списком уровней-родителей. И пользоваться затем значениями, подставляя в СУММ(ЕСЛИ... в объединяющих ячейках.
Сразу заполнить в объединяющих ячейках формулы с явными СУММ() или "+" вряд ли получится безгеморно, если предполагается добавлять/удалять строки...
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Найти все верхние уровни группировок, куда входит определенная строка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]