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

Вход

Регистрация

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

 

= Мир MS Excel/Суммирование со сложным критерием - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Суммирование со сложным критерием
dum Дата: Четверг, 25.04.2013, 05:49 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация: 0 ±
Замечаний: 0% ±

Господа, у меня довольно специфическая задача, проконсультируйте, пожалуйста. Во множестве клеток содержимое имеет вид "NN XX:YY" - то есть номер из двух цифр, а за ним - время. Важно то, что время всегда занимает последние 5 символов и потому функцией RIGHT его можно легко получить. Для редких клеток в начале проставляется, допустим, восклицательный знак - значение становится "!NN XX:YY". Так вот мне нужно написать формулу, которая бы суммировала все времена XX:YY для клеток, первый символ значения в которых - восклицательный знак. Как это можно сделать.

Иными словами, мне видятся здесь две проблемы:
1) Как добиться перебора клеток и суммирования по условию, которое не поддерживается функцийе SUMIF
2) Как просуммировать не содержимое клеток, а результат функции, выполненной над содержимым (в данном случае - RIGHT и TIME, видимо)

Заранее благодарю.
 
Ответить
СообщениеГоспода, у меня довольно специфическая задача, проконсультируйте, пожалуйста. Во множестве клеток содержимое имеет вид "NN XX:YY" - то есть номер из двух цифр, а за ним - время. Важно то, что время всегда занимает последние 5 символов и потому функцией RIGHT его можно легко получить. Для редких клеток в начале проставляется, допустим, восклицательный знак - значение становится "!NN XX:YY". Так вот мне нужно написать формулу, которая бы суммировала все времена XX:YY для клеток, первый символ значения в которых - восклицательный знак. Как это можно сделать.

Иными словами, мне видятся здесь две проблемы:
1) Как добиться перебора клеток и суммирования по условию, которое не поддерживается функцийе SUMIF
2) Как просуммировать не содержимое клеток, а результат функции, выполненной над содержимым (в данном случае - RIGHT и TIME, видимо)

Заранее благодарю.

Автор - dum
Дата добавления - 25.04.2013 в 05:49
Anastasia Дата: Четверг, 25.04.2013, 07:05 | Сообщение № 2
Группа: Пользователи
Ранг: Новичок
Сообщений: 39
Репутация: 3 ±
Замечаний: 0% ±

Можно через дополнительные столбцы
К сообщению приложен файл: _Microsoft_Exce.xlsx (10.1 Kb)
 
Ответить
СообщениеМожно через дополнительные столбцы

Автор - Anastasia
Дата добавления - 25.04.2013 в 07:05
Pelena Дата: Четверг, 25.04.2013, 07:36 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 19407
Репутация: 4556 ±
Замечаний: ±

Excel 365 & Mac Excel
Без доп. столбцов (на примере Anastasia)
Код
=СУММПРОИЗВ((ЛЕВСИМВ($A$2:$A$17)="!")*(ПРАВСИМВ($A$2:$A$17;5)))

Формат ячейки [ч]:мм


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеБез доп. столбцов (на примере Anastasia)
Код
=СУММПРОИЗВ((ЛЕВСИМВ($A$2:$A$17)="!")*(ПРАВСИМВ($A$2:$A$17;5)))

Формат ячейки [ч]:мм

Автор - Pelena
Дата добавления - 25.04.2013 в 07:36
dum Дата: Четверг, 25.04.2013, 18:52 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация: 0 ±
Замечаний: 0% ±

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

Pelena, фантастика, спасибо. Единственное - у меня время минуты:секунды, потому пришлось так:
Код
=SUMPRODUCT((LEFT(A2:A17;1)="!")*(TIME(0;LEFT(RIGHT(A2:A17;5);2);RIGHT(A2:A17;2))))

Но благодарю за идею. Пока у меня с этим только одна проблема - я не сказал, но всё же некоторые ячейки пустые, а RIGHT генерирует ошибку в таком случае. Можно это как-то преодолеть?

А позвольте мне спросить ещё две вещи дополнительные, может быть кто-то поделится идеей - я просто не сталкивался с подобными вещами ранее:
1) Как бы мне определить максимальное значение NN для каждого столбца? (то есть опять же - максимум от подстроки - либо первые два символа, либо второй и третий, если первый - восклицательный знак)
2) Столбец в моём случае считается "корректным", если NN принимает значения 01, 02, 03 и т.д. до некого максимального в данном столбце (для каждого столбца оно может быть своим + номера идут не по порядку, а как им угодно + есть пустые). Если какой-то номер пропущен, то столбец неправильный. Могу ли я написать логическое выражение, которое проверяло бы это?
 
Ответить
СообщениеAnastasia, дополнительные столбцы - не вариант, к сожалению - у меня не один столбец, а огромная простыня этих данных. На отдельный длист разве что выносить.

Pelena, фантастика, спасибо. Единственное - у меня время минуты:секунды, потому пришлось так:
Код
=SUMPRODUCT((LEFT(A2:A17;1)="!")*(TIME(0;LEFT(RIGHT(A2:A17;5);2);RIGHT(A2:A17;2))))

Но благодарю за идею. Пока у меня с этим только одна проблема - я не сказал, но всё же некоторые ячейки пустые, а RIGHT генерирует ошибку в таком случае. Можно это как-то преодолеть?

А позвольте мне спросить ещё две вещи дополнительные, может быть кто-то поделится идеей - я просто не сталкивался с подобными вещами ранее:
1) Как бы мне определить максимальное значение NN для каждого столбца? (то есть опять же - максимум от подстроки - либо первые два символа, либо второй и третий, если первый - восклицательный знак)
2) Столбец в моём случае считается "корректным", если NN принимает значения 01, 02, 03 и т.д. до некого максимального в данном столбце (для каждого столбца оно может быть своим + номера идут не по порядку, а как им угодно + есть пустые). Если какой-то номер пропущен, то столбец неправильный. Могу ли я написать логическое выражение, которое проверяло бы это?

Автор - dum
Дата добавления - 25.04.2013 в 18:52
Pelena Дата: Четверг, 25.04.2013, 19:30 | Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 19407
Репутация: 4556 ±
Замечаний: ±

Excel 365 & Mac Excel
Цитата (dum)
Можно это как-то преодолеть?

Либо скрыть значение ошибки,
либо изменить формулу, например, так
Код
=СУММПРОИЗВ((ЛЕВСИМВ($A$2:$A$17)="!")*ЕСЛИ($A$2:$A$17="";0;ПРАВСИМВ($A$2:$A$17;5)))

Формула массива вводится сочетанием клавиш Ctrl+Shift+Enter

Цитата (dum)
А позвольте мне спросить ещё две вещи дополнительные

dum, п. 4 Правил форума: один вопрос - одна тема


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
Цитата (dum)
Можно это как-то преодолеть?

Либо скрыть значение ошибки,
либо изменить формулу, например, так
Код
=СУММПРОИЗВ((ЛЕВСИМВ($A$2:$A$17)="!")*ЕСЛИ($A$2:$A$17="";0;ПРАВСИМВ($A$2:$A$17;5)))

Формула массива вводится сочетанием клавиш Ctrl+Shift+Enter

Цитата (dum)
А позвольте мне спросить ещё две вещи дополнительные

dum, п. 4 Правил форума: один вопрос - одна тема

Автор - Pelena
Дата добавления - 25.04.2013 в 19:30
dum Дата: Четверг, 25.04.2013, 19:37 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация: 0 ±
Замечаний: 0% ±

Спасибо большое!
 
Ответить
СообщениеСпасибо большое!

Автор - dum
Дата добавления - 25.04.2013 в 19:37
  • Страница 1 из 1
  • 1
Поиск:

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