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

Вход

Регистрация

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

 

= Мир MS Excel/Подсчет формулы в определенном диапазоне - Страница 2 - Мир MS Excel

Старая форма входа
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: китин, _Boroda_  
Подсчет формулы в определенном диапазоне
Jhonson Дата: Вторник, 24.07.2012, 21:08 | Сообщение № 21
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Репутация: 169 ±
Замечаний: 0% ±

Quote (Jhonson)
H5*ЕСЛИ(L4<=I5;I5-L4;J5)

если с таким смещением нужно то формула должна быть такая:
Code
=СУММПРОИЗВ(($G$4:$G$600=1)*$H$4:$H$600*((L4<=$I$4:$I$600)*$J$4:$J$600+(L4>$I$4:$I$600)*(L4-$I$4:$I$600))+($G$4:$G$600=-1)*$H$4:$H$600*((L4> $I$4:$I$600)*$J$4:$J$600+(L4<=$I$4:$I$600)*($I$4:$I$600-L4)))
К сообщению приложен файл: 3526071.xlsm (49.1 Kb)


"Ничто не приносит людям столько неприятностей, как разум."

Сообщение отредактировал Jhonson - Вторник, 24.07.2012, 21:38
 
Ответить
Сообщение
Quote (Jhonson)
H5*ЕСЛИ(L4<=I5;I5-L4;J5)

если с таким смещением нужно то формула должна быть такая:
Code
=СУММПРОИЗВ(($G$4:$G$600=1)*$H$4:$H$600*((L4<=$I$4:$I$600)*$J$4:$J$600+(L4>$I$4:$I$600)*(L4-$I$4:$I$600))+($G$4:$G$600=-1)*$H$4:$H$600*((L4> $I$4:$I$600)*$J$4:$J$600+(L4<=$I$4:$I$600)*($I$4:$I$600-L4)))

Автор - Jhonson
Дата добавления - 24.07.2012 в 21:08
shamilzzz Дата: Вторник, 24.07.2012, 21:12 | Сообщение № 22
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Jhonson, Без смещения, по том же что и первая формула. только меняется порядок расчета, показал для примера.
И ещё Ваш пример с какими то платьями..


Сообщение отредактировал shamilzzz - Вторник, 24.07.2012, 21:13
 
Ответить
СообщениеJhonson, Без смещения, по том же что и первая формула. только меняется порядок расчета, показал для примера.
И ещё Ваш пример с какими то платьями..

Автор - shamilzzz
Дата добавления - 24.07.2012 в 21:12
Jhonson Дата: Вторник, 24.07.2012, 21:22 | Сообщение № 23
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Репутация: 169 ±
Замечаний: 0% ±

shamilzzz, в предыдущем посте файл перезалил.


"Ничто не приносит людям столько неприятностей, как разум."
 
Ответить
Сообщениеshamilzzz, в предыдущем посте файл перезалил.

Автор - Jhonson
Дата добавления - 24.07.2012 в 21:22
shamilzzz Дата: Вторник, 24.07.2012, 21:24 | Сообщение № 24
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Спасибо! буду разбираться.
 
Ответить
СообщениеСпасибо! буду разбираться.

Автор - shamilzzz
Дата добавления - 24.07.2012 в 21:24
shamilzzz Дата: Вторник, 24.07.2012, 21:27 | Сообщение № 25
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Поясните немного формулу, как считает.
=СУММПРОИЗВ(((R4C7:R600C7=1)+(R4C7:R600C7=0))*R4C8:R600C8*((RC[-6]<=R4C9:R600C9)*R4C10:R600C10+(RC[-6]>R4C9:R600C9)*(RC[-6]-R4C9:R600C9))+(R4C7:R600C7=-1)*R4C8:R600C8*((RC[-6]>R4C9:R600C9)*R4C10:R600C10+(RC[-6]<=R4C9:R600C9)*(R4C9:R600C9-RC[-6])))


Сообщение отредактировал shamilzzz - Вторник, 24.07.2012, 21:28
 
Ответить
СообщениеПоясните немного формулу, как считает.
=СУММПРОИЗВ(((R4C7:R600C7=1)+(R4C7:R600C7=0))*R4C8:R600C8*((RC[-6]<=R4C9:R600C9)*R4C10:R600C10+(RC[-6]>R4C9:R600C9)*(RC[-6]-R4C9:R600C9))+(R4C7:R600C7=-1)*R4C8:R600C8*((RC[-6]>R4C9:R600C9)*R4C10:R600C10+(RC[-6]<=R4C9:R600C9)*(R4C9:R600C9-RC[-6])))

Автор - shamilzzz
Дата добавления - 24.07.2012 в 21:27
Jhonson Дата: Вторник, 24.07.2012, 21:31 | Сообщение № 26
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Репутация: 169 ±
Замечаний: 0% ±

shamilzzz, уберите галочку в параметрах: стиль ссылок R1C1. Или скачайте еще раз мой последний файл. Принцип работы формулы тот же самый, что и предыдущих, условия умножаем на значения и произведения складываем.


"Ничто не приносит людям столько неприятностей, как разум."

Сообщение отредактировал Jhonson - Вторник, 24.07.2012, 21:32
 
Ответить
Сообщениеshamilzzz, уберите галочку в параметрах: стиль ссылок R1C1. Или скачайте еще раз мой последний файл. Принцип работы формулы тот же самый, что и предыдущих, условия умножаем на значения и произведения складываем.

Автор - Jhonson
Дата добавления - 24.07.2012 в 21:31
shamilzzz Дата: Вторник, 24.07.2012, 21:41 | Сообщение № 27
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Jhonson, Сделал)
 
Ответить
СообщениеJhonson, Сделал)

Автор - shamilzzz
Дата добавления - 24.07.2012 в 21:41
Jhonson Дата: Вторник, 24.07.2012, 21:42 | Сообщение № 28
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Репутация: 169 ±
Замечаний: 0% ±

Code
($G$4:$G$600=1)*$H$4:$H$600*((L4<=$I$4:$I$600)*$J$4:$J$600+(L4>$I$4:$I$600)*(L4-$I$4:$I$600))

первая часть формулы будет не ноль в том случае если($G$4:$G$600=1) ИСТИНА

Code
($G$4:$G$600=-1)*$H$4:$H$600*((L4> $I$4:$I$600)*$J$4:$J$600+(L4<=$I$4:$I$600)*($I$4:$I$600-L4)))

точно так же и для второй части формулы если ($G$4:$G$600=1) ЛОЖЬ, то эта часть формулы вернет 0

При условии, что $G$4:$G$600=0, т.е. оба условия ложные, то обе части формул вернут 0.

Обратите внимание, что мы сравниваем диапазоны, т.е. функция СУММПРОИЗВ - работает с массивами значений.

P.S. Была небольшая ошибка, предыдущее сообщение с файлом и формулой исправил.


"Ничто не приносит людям столько неприятностей, как разум."

Сообщение отредактировал Jhonson - Вторник, 24.07.2012, 21:45
 
Ответить
Сообщение
Code
($G$4:$G$600=1)*$H$4:$H$600*((L4<=$I$4:$I$600)*$J$4:$J$600+(L4>$I$4:$I$600)*(L4-$I$4:$I$600))

первая часть формулы будет не ноль в том случае если($G$4:$G$600=1) ИСТИНА

Code
($G$4:$G$600=-1)*$H$4:$H$600*((L4> $I$4:$I$600)*$J$4:$J$600+(L4<=$I$4:$I$600)*($I$4:$I$600-L4)))

точно так же и для второй части формулы если ($G$4:$G$600=1) ЛОЖЬ, то эта часть формулы вернет 0

При условии, что $G$4:$G$600=0, т.е. оба условия ложные, то обе части формул вернут 0.

Обратите внимание, что мы сравниваем диапазоны, т.е. функция СУММПРОИЗВ - работает с массивами значений.

P.S. Была небольшая ошибка, предыдущее сообщение с файлом и формулой исправил.

Автор - Jhonson
Дата добавления - 24.07.2012 в 21:42
shamilzzz Дата: Вторник, 24.07.2012, 21:50 | Сообщение № 29
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

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

Автор - shamilzzz
Дата добавления - 24.07.2012 в 21:50
vikttur Дата: Среда, 25.07.2012, 11:19 | Сообщение № 30
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

Code
=СУММ(H$4:H$600*ВЫБОР(2+ЗНАК(G$4:G$600);ЕСЛИ(L4<=I$4:I$600;I$4:I$600-L4;J$4:J$600);;ЕСЛИ(L4<=I$4:I$600;J$4:J$600;L4-I$4:I$600)))

Как вводить формулу массива:
после введения формулы в ячейку, ввод завершается нажатием не просто Enter, а Ctrl+Shift+Enter. Формула при этом будет заключена в фигурные скобки - {}.


Сообщение отредактировал vikttur - Среда, 25.07.2012, 11:20
 
Ответить
Сообщение
Code
=СУММ(H$4:H$600*ВЫБОР(2+ЗНАК(G$4:G$600);ЕСЛИ(L4<=I$4:I$600;I$4:I$600-L4;J$4:J$600);;ЕСЛИ(L4<=I$4:I$600;J$4:J$600;L4-I$4:I$600)))

Как вводить формулу массива:
после введения формулы в ячейку, ввод завершается нажатием не просто Enter, а Ctrl+Shift+Enter. Формула при этом будет заключена в фигурные скобки - {}.

Автор - vikttur
Дата добавления - 25.07.2012 в 11:19
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

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