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

Вход

Регистрация

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

 

= Мир MS Excel/Формула массивов или подсчет количества с условием - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Формула массивов или подсчет количества с условием
MacSieM Дата: Вторник, 23.06.2015, 15:34 | Сообщение № 1
Группа: Проверенные
Ранг: Участник
Сообщений: 84
Репутация: 18 ±
Замечаний: 0% ±

Excel 2010
Здравствуйте.

Прошу помочь составить формулу.
Есть два листа: "Виды работ" со всеми вариантами работ и запланированным под них числом дней и "Прогресс" - где вводится дата и тип работ, который был совершен.
Хочу посчитать, сколько дней фактически было затрачено под тот или иной вид работ.

Если бы в один день был возможен только один вид работ, то формула могла бы выглядеть так:
Код
=СУММЕСЛИ(Progress_ArtOfJob;'Виды работ'!$A2)

или так:
Код
{=СУММ(ЕСЛИ(Progress_ArtOfJob='Виды работ'!$A2;1;0))}


Однако, в один день возможны несколько работ. В этом случае я хотел бы добавлять к уже посчитанным дням равную дробную часть дня.
Например, 22 июня сделали А и Б. Тогда за этот день в факт для А и для Б нужно добавить по 0,5 дня.

Пытался решить с ДВССЫЛ, АДРЕС и СЧЕТЕСЛИ и массивами для того, чтобы определить число повторений тех дней, когда была совершена конкретная работа. Не получилось.

Буду рад идеям или готовому решению!

ПС: задачу хочу решить без использования VBA.
К сообщению приложен файл: FileForum.xlsx (15.6 Kb)


Сообщение отредактировал MacSieM - Вторник, 23.06.2015, 15:35
 
Ответить
СообщениеЗдравствуйте.

Прошу помочь составить формулу.
Есть два листа: "Виды работ" со всеми вариантами работ и запланированным под них числом дней и "Прогресс" - где вводится дата и тип работ, который был совершен.
Хочу посчитать, сколько дней фактически было затрачено под тот или иной вид работ.

Если бы в один день был возможен только один вид работ, то формула могла бы выглядеть так:
Код
=СУММЕСЛИ(Progress_ArtOfJob;'Виды работ'!$A2)

или так:
Код
{=СУММ(ЕСЛИ(Progress_ArtOfJob='Виды работ'!$A2;1;0))}


Однако, в один день возможны несколько работ. В этом случае я хотел бы добавлять к уже посчитанным дням равную дробную часть дня.
Например, 22 июня сделали А и Б. Тогда за этот день в факт для А и для Б нужно добавить по 0,5 дня.

Пытался решить с ДВССЫЛ, АДРЕС и СЧЕТЕСЛИ и массивами для того, чтобы определить число повторений тех дней, когда была совершена конкретная работа. Не получилось.

Буду рад идеям или готовому решению!

ПС: задачу хочу решить без использования VBA.

Автор - MacSieM
Дата добавления - 23.06.2015 в 15:34
vikttur Дата: Вторник, 23.06.2015, 16:06 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

Добавить столбец (например, С) на листе Прогресс с определением часи суток
Код
=1/СЧЁТЕСЛИ($A$2:$A$4;A2)

Результат:
Код
=СУММЕСЛИ(Progress_ArtOfJob;A2;Прогресс!$C$2:$C$4)
 
Ответить
СообщениеДобавить столбец (например, С) на листе Прогресс с определением часи суток
Код
=1/СЧЁТЕСЛИ($A$2:$A$4;A2)

Результат:
Код
=СУММЕСЛИ(Progress_ArtOfJob;A2;Прогресс!$C$2:$C$4)

Автор - vikttur
Дата добавления - 23.06.2015 в 16:06
MacSieM Дата: Вторник, 23.06.2015, 16:18 | Сообщение № 3
Группа: Проверенные
Ранг: Участник
Сообщений: 84
Репутация: 18 ±
Замечаний: 0% ±

Excel 2010
vikttur, большое спасибо.
Сразу не пришло в голову это решение. Искал без использования доп. столбцов.
А знает ли кто-нибудь, есть ли у моей задачки решение без дополнительного столбца?
 
Ответить
Сообщениеvikttur, большое спасибо.
Сразу не пришло в голову это решение. Искал без использования доп. столбцов.
А знает ли кто-нибудь, есть ли у моей задачки решение без дополнительного столбца?

Автор - MacSieM
Дата добавления - 23.06.2015 в 16:18
vikttur Дата: Вторник, 23.06.2015, 16:26 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

Без доп. столбца - формула массива, которая производит больше вычислений, чем в предложеном варианте. Оно вам надо?


Сообщение отредактировал vikttur - Вторник, 23.06.2015, 16:27
 
Ответить
СообщениеБез доп. столбца - формула массива, которая производит больше вычислений, чем в предложеном варианте. Оно вам надо?

Автор - vikttur
Дата добавления - 23.06.2015 в 16:26
MacSieM Дата: Вторник, 23.06.2015, 16:35 | Сообщение № 5
Группа: Проверенные
Ранг: Участник
Сообщений: 84
Репутация: 18 ±
Замечаний: 0% ±

Excel 2010
vikttur, мой конкретный случай решен. Огромное спасибо.

Насчет надо ли мне это, пожалуй, отвечу "да".
Объясню. В прикладных задачах наличие дополнительных столбцов всегда скрывается от пользователя. Ему об этом знать не нужно.
То есть формулу в доп. столбце нужно растягивать с запасом. Это влияет на область печати, которая, насколько я знаю, статична.
Область печати можно поменять при помощи ВБА, но для этого нужно разрешение на использование макросов со стороны пользователя,
что не всегда оправданно.

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

Насчет надо ли мне это, пожалуй, отвечу "да".
Объясню. В прикладных задачах наличие дополнительных столбцов всегда скрывается от пользователя. Ему об этом знать не нужно.
То есть формулу в доп. столбце нужно растягивать с запасом. Это влияет на область печати, которая, насколько я знаю, статична.
Область печати можно поменять при помощи ВБА, но для этого нужно разрешение на использование макросов со стороны пользователя,
что не всегда оправданно.

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

Автор - MacSieM
Дата добавления - 23.06.2015 в 16:35
vikttur Дата: Вторник, 23.06.2015, 17:01 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

Код
=СУММ(ЕСЛИ(Прогресс!B2:B4=A2;1/СЧЁТЕСЛИ(Прогресс!A2:A4;Прогресс!A2:A4)))

Закрепить диапазоны


Сообщение отредактировал vikttur - Вторник, 23.06.2015, 17:04
 
Ответить
Сообщение
Код
=СУММ(ЕСЛИ(Прогресс!B2:B4=A2;1/СЧЁТЕСЛИ(Прогресс!A2:A4;Прогресс!A2:A4)))

Закрепить диапазоны

Автор - vikttur
Дата добавления - 23.06.2015 в 17:01
MacSieM Дата: Вторник, 23.06.2015, 17:07 | Сообщение № 7
Группа: Проверенные
Ранг: Участник
Сообщений: 84
Репутация: 18 ±
Замечаний: 0% ±

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

Автор - MacSieM
Дата добавления - 23.06.2015 в 17:07
  • Страница 1 из 1
  • 1
Поиск:

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