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

Вход

Регистрация

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

 

= Мир MS Excel/Суммирование строк с определенным названием, связь по ID - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Суммирование строк с определенным названием, связь по ID (Формулы/Formulas)
Суммирование строк с определенным названием, связь по ID
Serrg Дата: Суббота, 05.12.2015, 18:19 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 25
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Подскажите, пожалуйста, как написать формулу суммирования по ID по строкам.
Есть первый список объектов (вкладов в банках), и для каждого объекта есть несколько показателей (остаток, ставка, сумма процентов и т.д.).
При этом каждый показатель ведется не в отдельном столбце, а расположены по строкам. Т.е. строк столько, сколько объектов *(умножить) на количество показателей.

Далее есть второй список других объектов (текущих счетов), у них тоже есть свои показатели (суммы выплаченных процентов, остаток, и т.д.)

Для всех объектов есть идентификаторы (ID). При этом объекты первого списка и второго списка связаны между собой по ID: У объектов первого списка (вкладов) есть отдельный показатель в отдельной строке: ID объекта второго списка (ID текущего счета, куда выплачиваются проценты, генерируемые вкладами).

Задача такая: для объектов второго списка просуммировать определенный показатель объектов первого списка (для этого ID). Перефразируя, нужно для каждого текущего счета просуммировать количество процентов, которые падают на него с соответствующих вкладов (соответствие по ID).
Строки могут быть пересортированы потом, поэтому требуется написать устойчивую к сортировке формулу, в которой будет суммирование по имени показателя.

Если бы показатели стояли в столбец, проблем бы вообще не было = суммируем определенный столбец, если в другом столбце стоит нужный ID. Но проблема в том, что эти показатели расположены не по столбцам, а по строкам. Как написать такую формулу?

Прикладываю Excel.
К сообщению приложен файл: ___ID.xls (26.5 Kb)
 
Ответить
СообщениеПодскажите, пожалуйста, как написать формулу суммирования по ID по строкам.
Есть первый список объектов (вкладов в банках), и для каждого объекта есть несколько показателей (остаток, ставка, сумма процентов и т.д.).
При этом каждый показатель ведется не в отдельном столбце, а расположены по строкам. Т.е. строк столько, сколько объектов *(умножить) на количество показателей.

Далее есть второй список других объектов (текущих счетов), у них тоже есть свои показатели (суммы выплаченных процентов, остаток, и т.д.)

Для всех объектов есть идентификаторы (ID). При этом объекты первого списка и второго списка связаны между собой по ID: У объектов первого списка (вкладов) есть отдельный показатель в отдельной строке: ID объекта второго списка (ID текущего счета, куда выплачиваются проценты, генерируемые вкладами).

Задача такая: для объектов второго списка просуммировать определенный показатель объектов первого списка (для этого ID). Перефразируя, нужно для каждого текущего счета просуммировать количество процентов, которые падают на него с соответствующих вкладов (соответствие по ID).
Строки могут быть пересортированы потом, поэтому требуется написать устойчивую к сортировке формулу, в которой будет суммирование по имени показателя.

Если бы показатели стояли в столбец, проблем бы вообще не было = суммируем определенный столбец, если в другом столбце стоит нужный ID. Но проблема в том, что эти показатели расположены не по столбцам, а по строкам. Как написать такую формулу?

Прикладываю Excel.

Автор - Serrg
Дата добавления - 05.12.2015 в 18:19
AlexM Дата: Суббота, 05.12.2015, 18:50 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4501
Репутация: 1117 ±
Замечаний: 0% ±

Excel 2003
Массивная формула
Код
=СУММ(ЕСЛИ(F$11:F$31=--ПОДСТАВИТЬ(D2;"Счет ";"");F$10:F$30))
К сообщению приложен файл: Serrg_ID.xls (32.0 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеМассивная формула
Код
=СУММ(ЕСЛИ(F$11:F$31=--ПОДСТАВИТЬ(D2;"Счет ";"");F$10:F$30))

Автор - AlexM
Дата добавления - 05.12.2015 в 18:50
Serrg Дата: Суббота, 05.12.2015, 19:22 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 25
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Массивная формула

Спасибо, но это все же не то...
В вашей формуле смысл в том, что суммируются строки, номер которых на единицу меньше строки с ID - я этот вариант тоже сам рассматривал, это сделать несложно. Но как я писал выше, строки могут быть очень сильно пересортированы, и например строки с суммами процентов будут идти в самом конце сразу по всем вкладам, а ID - где-то в середине. Да и если новую строку с показателем добавить в середину, то эта формула перестает работать.

В той формуле, которую я ищу, можно оперировать только следующими параметрами : ID и название показателей "Сумма процентов", "ID счета куда выпл. проценты".
Как такую формулу написать, которая будет искать строки только с этими именами и сравнивать по ID? Тут не получится предполагать что строка с суммами идет рядом со строкой с "ID счета куда выпл. проценты", они могут быть как угодно пересортированы в списке.


Сообщение отредактировал Serrg - Суббота, 05.12.2015, 19:33
 
Ответить
Сообщение
Массивная формула

Спасибо, но это все же не то...
В вашей формуле смысл в том, что суммируются строки, номер которых на единицу меньше строки с ID - я этот вариант тоже сам рассматривал, это сделать несложно. Но как я писал выше, строки могут быть очень сильно пересортированы, и например строки с суммами процентов будут идти в самом конце сразу по всем вкладам, а ID - где-то в середине. Да и если новую строку с показателем добавить в середину, то эта формула перестает работать.

В той формуле, которую я ищу, можно оперировать только следующими параметрами : ID и название показателей "Сумма процентов", "ID счета куда выпл. проценты".
Как такую формулу написать, которая будет искать строки только с этими именами и сравнивать по ID? Тут не получится предполагать что строка с суммами идет рядом со строкой с "ID счета куда выпл. проценты", они могут быть как угодно пересортированы в списке.

Автор - Serrg
Дата добавления - 05.12.2015 в 19:22
Светлый Дата: Суббота, 05.12.2015, 23:08 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1829
Репутация: 510 ±
Замечаний: 0% ±

Excel 2013, 2016
У меня получилась такая массивная формула:
Код
=СУММ(ЕСЛИ((E$7:E$31="Сумма процентов")*(C$7:C$31=ЕСЛИОШИБКА(НАИМЕНЬШИЙ(ЕСЛИ((E$7:E$31="ID счета куда выпл. Проценты")*(F$7:F$31=C4);C$7:C$31);СТОЛБЕЦ(A:J));"#"));F$7:F$31))

Количество вкладов на один счёт ограничено десятью "СТОЛБЕЦ(A:J)", но можно увеличить. Считать будет дольше. Сортировка не влияет.


Программировать проще, чем писать стихи.

Сообщение отредактировал Светлый - Суббота, 05.12.2015, 23:16
 
Ответить
СообщениеУ меня получилась такая массивная формула:
Код
=СУММ(ЕСЛИ((E$7:E$31="Сумма процентов")*(C$7:C$31=ЕСЛИОШИБКА(НАИМЕНЬШИЙ(ЕСЛИ((E$7:E$31="ID счета куда выпл. Проценты")*(F$7:F$31=C4);C$7:C$31);СТОЛБЕЦ(A:J));"#"));F$7:F$31))

Количество вкладов на один счёт ограничено десятью "СТОЛБЕЦ(A:J)", но можно увеличить. Считать будет дольше. Сортировка не влияет.

Автор - Светлый
Дата добавления - 05.12.2015 в 23:08
Serrg Дата: Воскресенье, 06.12.2015, 01:02 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 25
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Количество вкладов на один счёт ограничено десятью "СТОЛБЕЦ(A:J)", но можно увеличить

Спасибо, работает правильно, но конечно мудрёно, потом сложно будет вспомнить и понять смысл.
А для чего приходится делать СТОЛБЕЦ(A:J)? это чтобы Эксель при расчете генерировал последовательно числа от 1 до 10, т.е. как источник генерации? А на СТРОКА(1:10) я так понимаю будет не перейти, т.к. по строкам уже другая часть массива работает - так?

Не могли бы поподробнее пояснить, вот эта часть формулы что делает?:
НАИМЕНЬШИЙ(ЕСЛИ((E$7:E$31="ID счета куда выпл. Проценты")*(F$7:F$31=C2);C$7:C$31);СТОЛБЕЦ(A:Z))

В файле будет около 300 вкладов. И столбцов будет около 1000 (каждый столбец на каждую дату). Интересно на сколько долго все это будет работать?


Сообщение отредактировал Serrg - Воскресенье, 06.12.2015, 01:04
 
Ответить
Сообщение
Количество вкладов на один счёт ограничено десятью "СТОЛБЕЦ(A:J)", но можно увеличить

Спасибо, работает правильно, но конечно мудрёно, потом сложно будет вспомнить и понять смысл.
А для чего приходится делать СТОЛБЕЦ(A:J)? это чтобы Эксель при расчете генерировал последовательно числа от 1 до 10, т.е. как источник генерации? А на СТРОКА(1:10) я так понимаю будет не перейти, т.к. по строкам уже другая часть массива работает - так?

Не могли бы поподробнее пояснить, вот эта часть формулы что делает?:
НАИМЕНЬШИЙ(ЕСЛИ((E$7:E$31="ID счета куда выпл. Проценты")*(F$7:F$31=C2);C$7:C$31);СТОЛБЕЦ(A:Z))

В файле будет около 300 вкладов. И столбцов будет около 1000 (каждый столбец на каждую дату). Интересно на сколько долго все это будет работать?

Автор - Serrg
Дата добавления - 06.12.2015 в 01:02
Светлый Дата: Воскресенье, 06.12.2015, 10:37 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1829
Репутация: 510 ±
Замечаний: 0% ±

Excel 2013, 2016
Не могли бы поподробнее пояснить, вот эта часть формулы что делает?:
НАИМЕНЬШИЙ(ЕСЛИ((E$7:E$31="ID счета куда выпл. Проценты")*(F$7:F$31=C2);C$7:C$31);СТОЛБЕЦ(A:Z))

Создаёт массив (в строку) ID вкладов для конкретного счёта.
Можно в строке редактирования выделить эту часть формулы и нажать F9. Будет виден получившийся массив.
Если формулу нужно протягивать по столбцам, надо добавить знак $ в соответствующие диапазоны.
Код
=СУММ(ЕСЛИ(($E$7:$E$36="Сумма процентов")*($C$7:$C$36=ЕСЛИОШИБКА(НАИМЕНЬШИЙ(ЕСЛИ(($E$7:$E$36="ID счета куда выпл. Проценты")*(F$7:F$36=$C2);$C$7:$C$36);СТОЛБЕЦ($A:$Z));"#"));F$7:F$36))


Программировать проще, чем писать стихи.
 
Ответить
Сообщение
Не могли бы поподробнее пояснить, вот эта часть формулы что делает?:
НАИМЕНЬШИЙ(ЕСЛИ((E$7:E$31="ID счета куда выпл. Проценты")*(F$7:F$31=C2);C$7:C$31);СТОЛБЕЦ(A:Z))

Создаёт массив (в строку) ID вкладов для конкретного счёта.
Можно в строке редактирования выделить эту часть формулы и нажать F9. Будет виден получившийся массив.
Если формулу нужно протягивать по столбцам, надо добавить знак $ в соответствующие диапазоны.
Код
=СУММ(ЕСЛИ(($E$7:$E$36="Сумма процентов")*($C$7:$C$36=ЕСЛИОШИБКА(НАИМЕНЬШИЙ(ЕСЛИ(($E$7:$E$36="ID счета куда выпл. Проценты")*(F$7:F$36=$C2);$C$7:$C$36);СТОЛБЕЦ($A:$Z));"#"));F$7:F$36))

Автор - Светлый
Дата добавления - 06.12.2015 в 10:37
Serrg Дата: Воскресенье, 06.12.2015, 14:43 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 25
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Создаёт массив (в строку) ID вкладов для конкретного счёта.

А СТОЛБЕЦ(), а не СТРОКА() нужно для того, чтобы этот массив был другого измерения, по горизонтали а не вертикали?
Если сделать СТРОКА(), то не работает.

Т.е. СТОЛБЕЦ() сделан для того, чтобы 2 условия:
($E$7:$E$36="Сумма процентов")
$C$7:$C$36=**ID вкладов для этого счета**

Как бы образовывали матрицу, а не линейную строку? и были перпендикулярны друг другу, независимыми. так?

А если потом нужно будет добавить 3-е условие отбора строк, то откуда сможем взять 3-е измерение? Формула в таком виде уже не будет работать?
Больше никак нельзя сделать чтобы уйти от конкретного количества столбцов в СТОЛБЕЦ(A:J)?


Сообщение отредактировал Serrg - Воскресенье, 06.12.2015, 14:44
 
Ответить
Сообщение
Создаёт массив (в строку) ID вкладов для конкретного счёта.

А СТОЛБЕЦ(), а не СТРОКА() нужно для того, чтобы этот массив был другого измерения, по горизонтали а не вертикали?
Если сделать СТРОКА(), то не работает.

Т.е. СТОЛБЕЦ() сделан для того, чтобы 2 условия:
($E$7:$E$36="Сумма процентов")
$C$7:$C$36=**ID вкладов для этого счета**

Как бы образовывали матрицу, а не линейную строку? и были перпендикулярны друг другу, независимыми. так?

А если потом нужно будет добавить 3-е условие отбора строк, то откуда сможем взять 3-е измерение? Формула в таком виде уже не будет работать?
Больше никак нельзя сделать чтобы уйти от конкретного количества столбцов в СТОЛБЕЦ(A:J)?

Автор - Serrg
Дата добавления - 06.12.2015 в 14:43
Светлый Дата: Воскресенье, 06.12.2015, 15:32 | Сообщение № 8
Группа: Друзья
Ранг: Старожил
Сообщений: 1829
Репутация: 510 ±
Замечаний: 0% ±

Excel 2013, 2016
Да, все рассуждения верные.
А если потом нужно будет добавить 3-е условие отбора строк, то откуда сможем взять 3-е измерение? Формула в таком виде уже не будет работать?
Больше никак нельзя сделать чтобы уйти от конкретного количества столбцов в СТОЛБЕЦ(A:J)?

Если бы Excel предусматривал третье измерение, то формулу можно было бы написать... Даже не представляю, какое ещё можно третье ортогональное условие включить в исходную таблицу...
В таком случае просто ввести дополнительный столбец и тогда любое количество условий можно забить в него, а его использовать для выбора суммируемых значений.
А вообще проблема возникла из-за избыточности и нерационального расположения исходных данных.


Программировать проще, чем писать стихи.
 
Ответить
СообщениеДа, все рассуждения верные.
А если потом нужно будет добавить 3-е условие отбора строк, то откуда сможем взять 3-е измерение? Формула в таком виде уже не будет работать?
Больше никак нельзя сделать чтобы уйти от конкретного количества столбцов в СТОЛБЕЦ(A:J)?

Если бы Excel предусматривал третье измерение, то формулу можно было бы написать... Даже не представляю, какое ещё можно третье ортогональное условие включить в исходную таблицу...
В таком случае просто ввести дополнительный столбец и тогда любое количество условий можно забить в него, а его использовать для выбора суммируемых значений.
А вообще проблема возникла из-за избыточности и нерационального расположения исходных данных.

Автор - Светлый
Дата добавления - 06.12.2015 в 15:32
Serrg Дата: Воскресенье, 06.12.2015, 15:52 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 25
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
А в вашей формуле про СТОЛБЕЦ(), а не СТРОКА() - я правильно написал, чтобы образовывалась двумерная матрица?

А вообще проблема возникла из-за избыточности и нерационального расположения исходных данных.

Я уже подумал чтобы для ID куда выплачиваются проценты сделать отдельный столбец просто, а не отдельные строки у каждого вклада.

А как по-вашему лучше расположить данные, если для каждого вклада будет порядка 40 показателей, а всего вкладов будет 100-300, и должна быть удобная возможность их добавлять время от времени.
И при этом еще нужно видеть значения на каждую дату - т.е. столбцов будет столько, сколько дней есть за 3 года например - 1000 столбцов.

Я уже по-разному думал располагать - и транспонировать, чтобы вклады шли по столбцам. Но в этом случае не получается сделать удобную фильтрацию - когда хочу посмотреть только по определенным вкладам определенные показатели - поэтому пришлось их по строкам располагать.
 
Ответить
СообщениеА в вашей формуле про СТОЛБЕЦ(), а не СТРОКА() - я правильно написал, чтобы образовывалась двумерная матрица?

А вообще проблема возникла из-за избыточности и нерационального расположения исходных данных.

Я уже подумал чтобы для ID куда выплачиваются проценты сделать отдельный столбец просто, а не отдельные строки у каждого вклада.

А как по-вашему лучше расположить данные, если для каждого вклада будет порядка 40 показателей, а всего вкладов будет 100-300, и должна быть удобная возможность их добавлять время от времени.
И при этом еще нужно видеть значения на каждую дату - т.е. столбцов будет столько, сколько дней есть за 3 года например - 1000 столбцов.

Я уже по-разному думал располагать - и транспонировать, чтобы вклады шли по столбцам. Но в этом случае не получается сделать удобную фильтрацию - когда хочу посмотреть только по определенным вкладам определенные показатели - поэтому пришлось их по строкам располагать.

Автор - Serrg
Дата добавления - 06.12.2015 в 15:52
Светлый Дата: Воскресенье, 06.12.2015, 18:54 | Сообщение № 10
Группа: Друзья
Ранг: Старожил
Сообщений: 1829
Репутация: 510 ±
Замечаний: 0% ±

Excel 2013, 2016
А в вашей формуле про СТОЛБЕЦ(), а не СТРОКА() - я правильно написал, чтобы образовывалась двумерная матрица?

Да. Я выше написал об этом.
Я бы предложил сделать индексный столбец, объединив в нём ID счёта и ID вклада.
Или ID счёта и вклада разнести по разным столбцам, при этом можно убрать много строк "ID счета куда выпл. проценты". Формулы упростятся, а быстродействие увеличится.
К сообщению приложен файл: _ID_1.xls (33.0 Kb)


Программировать проще, чем писать стихи.

Сообщение отредактировал Светлый - Воскресенье, 06.12.2015, 22:26
 
Ответить
Сообщение
А в вашей формуле про СТОЛБЕЦ(), а не СТРОКА() - я правильно написал, чтобы образовывалась двумерная матрица?

Да. Я выше написал об этом.
Я бы предложил сделать индексный столбец, объединив в нём ID счёта и ID вклада.
Или ID счёта и вклада разнести по разным столбцам, при этом можно убрать много строк "ID счета куда выпл. проценты". Формулы упростятся, а быстродействие увеличится.

Автор - Светлый
Дата добавления - 06.12.2015 в 18:54
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Суммирование строк с определенным названием, связь по ID (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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