В целях расчёта рабочего дня и переработок написал простенькую функцию. Захотел модернизировать, т.е. учёл и пустые ячейки. Покопавшись в инете нашёл решение и внедрил. Затем понадобилось изменить эту самую функцию с учётом всех моих условий. По отдельности каждое условие выполняется как положено. Но соединив их в единую функцию получаю либо ошибку #ЗНАЧ! либо не могу заставить работать правильно.
Под конец сам перестал соображать, что и как делать. Прошу помочь с правильной формулировкой задачи или готовым решением (можно используя мои функции).
Подробности, расчёты, что имею и что надо описаны в файле. На всякий случай продублирую здесь:
E1 = 10:00 (норма рабочих часов за день)
Начало Конец Сумма A B C 1 07:00 12:45 5:00 2 13:30 18:30 5:00 3 19:00 20:00 2:00
Условия: 1 Сумма C1 + C2 может быть равной 10:00 (иногда), больше (обычно) или меньше 10:00 (редко) 2 Сумма C1 + C2 в любом случае должна быть отображена в ячейке C3 3 Если A3 или B3 не пустые, то сумма C1 + C2 и разница B3 - A3 должны суммироваться в C3 4 Если сумма C1 + С2 меньше 10:00, то A3 или B3, обязательно пустая 5 Если сумма C1 + С2 равно или больше 10:00, то A3 или B3, то может быть пустой 6 Если сумма C1 + С2 равно или больше 10:00, то A3 или B3, то может быть не пустой
Скрин и сам файл Excel прилагаю. [moder]Для начала правильно (согласно п.2 Правил форума) обзовите тему
В целях расчёта рабочего дня и переработок написал простенькую функцию. Захотел модернизировать, т.е. учёл и пустые ячейки. Покопавшись в инете нашёл решение и внедрил. Затем понадобилось изменить эту самую функцию с учётом всех моих условий. По отдельности каждое условие выполняется как положено. Но соединив их в единую функцию получаю либо ошибку #ЗНАЧ! либо не могу заставить работать правильно.
Под конец сам перестал соображать, что и как делать. Прошу помочь с правильной формулировкой задачи или готовым решением (можно используя мои функции).
Подробности, расчёты, что имею и что надо описаны в файле. На всякий случай продублирую здесь:
E1 = 10:00 (норма рабочих часов за день)
Начало Конец Сумма A B C 1 07:00 12:45 5:00 2 13:30 18:30 5:00 3 19:00 20:00 2:00
Условия: 1 Сумма C1 + C2 может быть равной 10:00 (иногда), больше (обычно) или меньше 10:00 (редко) 2 Сумма C1 + C2 в любом случае должна быть отображена в ячейке C3 3 Если A3 или B3 не пустые, то сумма C1 + C2 и разница B3 - A3 должны суммироваться в C3 4 Если сумма C1 + С2 меньше 10:00, то A3 или B3, обязательно пустая 5 Если сумма C1 + С2 равно или больше 10:00, то A3 или B3, то может быть пустой 6 Если сумма C1 + С2 равно или больше 10:00, то A3 или B3, то может быть не пустой
Скрин и сам файл Excel прилагаю. [moder]Для начала правильно (согласно п.2 Правил форума) обзовите темуEricbek
1 Сумма C1 + C2 может быть равной 10:00 (иногда), больше (обычно) или меньше 10:00 (редко) Это понятно.
2 Сумма C1 + C2 в любом случае должна быть отображена в ячейке C3 Хорошо. Т.е. неважно что будет с1+с2 должно попасть в с3 - либо голыми (без других примесей) - либо в составе других чисел (ну т.е. с примесями от других ячеек) так? или как?
3 Если A3 или B3 не пустые, то сумма C1 + C2 и разница B3 - A3 должны суммироваться в C3 вот вижу с1+с2 как примесь к B3-A3 (значит утверждение про то, что с1+с2 идёт с примесями норм) верно?
4 Если сумма C1 + С2 меньше 10:00, то A3 или B3, обязательно пустая Эмм. А если я всё-равно заполню А3 и В3, то что делать? = ) можно допустим условное форматирование и подсветить.
5 Если сумма C1 + С2 равно или больше 10:00, то A3 или B3, то может быть пустой 6 Если сумма C1 + С2 равно или больше 10:00, то A3 или B3, то может быть не пустой
А если использовать такой алгоритм для с3.
Реализация в приложении.
1 Сумма C1 + C2 может быть равной 10:00 (иногда), больше (обычно) или меньше 10:00 (редко) Это понятно.
2 Сумма C1 + C2 в любом случае должна быть отображена в ячейке C3 Хорошо. Т.е. неважно что будет с1+с2 должно попасть в с3 - либо голыми (без других примесей) - либо в составе других чисел (ну т.е. с примесями от других ячеек) так? или как?
3 Если A3 или B3 не пустые, то сумма C1 + C2 и разница B3 - A3 должны суммироваться в C3 вот вижу с1+с2 как примесь к B3-A3 (значит утверждение про то, что с1+с2 идёт с примесями норм) верно?
4 Если сумма C1 + С2 меньше 10:00, то A3 или B3, обязательно пустая Эмм. А если я всё-равно заполню А3 и В3, то что делать? = ) можно допустим условное форматирование и подсветить.
5 Если сумма C1 + С2 равно или больше 10:00, то A3 или B3, то может быть пустой 6 Если сумма C1 + С2 равно или больше 10:00, то A3 или B3, то может быть не пустой
2 Сумма C1 + C2 в любом случае должна быть отображена в ячейке C3 Хорошо. Т.е. неважно что будет с1+с2 должно попасть в с3 - либо голыми (без других примесей) - либо в составе других чисел (ну т.е. с примесями от других ячеек) так? или как? Т.е. если сумма C1 + C2 не превышает E1?, то в с3 должна быть их сумма, если превышает, то должна быть разница (C1 + C2) - E1 + (B2 - B1) [если ячейка B2 или B1 не пустая].
3 Если A3 или B3 не пустые, то сумма C1 + C2 и разница B3 - A3 должны суммироваться в C3 вот вижу с1+с2 как примесь к B3-A3 (значит утверждение про то, что с1+с2 идёт с примесями норм) верно? Да. Если с1+с2 больше e1, то в C3 надо отобразить разницу (с1+с2) - e1, иначе просто сумму с1+с2.
4 Если сумма C1 + С2 меньше 10:00, то A3 или B3, обязательно пустая Эмм. А если я всё-равно заполню А3 и В3, то что делать? = ) можно допустим условное форматирование и подсветить. Оба не могут быть пустыми. Одно из двух: либо А3 либо В3. Если заполнить А3 и В3, то нужно вычислить в C3 следующее: В3 - А3 + ((с1+с2) - e1).
5 Если сумма C1 + С2 равно или больше 10:00, то A3 или B3, то может быть пусто Если C1 + С2 меньше e1 т.е. 10:00, то в с3 тупо отображаем сумму C1 + С2. Если C1 + С2 равно e1 т.е. 10:00, то в с3 тупо отображаем сумму C1 + С2.
Если C1 + С2 больше e1 т.е. 10:00, то в с3 то необходимо проверить не пусто ли в ячейках - A3 или B3. Если пусто, то в с3 = (с1+с2) - e1. Если не пусто, то в с3 = (B3 - A3) + ((с1+с2) - e1).
2 Сумма C1 + C2 в любом случае должна быть отображена в ячейке C3 Хорошо. Т.е. неважно что будет с1+с2 должно попасть в с3 - либо голыми (без других примесей) - либо в составе других чисел (ну т.е. с примесями от других ячеек) так? или как? Т.е. если сумма C1 + C2 не превышает E1?, то в с3 должна быть их сумма, если превышает, то должна быть разница (C1 + C2) - E1 + (B2 - B1) [если ячейка B2 или B1 не пустая].
3 Если A3 или B3 не пустые, то сумма C1 + C2 и разница B3 - A3 должны суммироваться в C3 вот вижу с1+с2 как примесь к B3-A3 (значит утверждение про то, что с1+с2 идёт с примесями норм) верно? Да. Если с1+с2 больше e1, то в C3 надо отобразить разницу (с1+с2) - e1, иначе просто сумму с1+с2.
4 Если сумма C1 + С2 меньше 10:00, то A3 или B3, обязательно пустая Эмм. А если я всё-равно заполню А3 и В3, то что делать? = ) можно допустим условное форматирование и подсветить. Оба не могут быть пустыми. Одно из двух: либо А3 либо В3. Если заполнить А3 и В3, то нужно вычислить в C3 следующее: В3 - А3 + ((с1+с2) - e1).
5 Если сумма C1 + С2 равно или больше 10:00, то A3 или B3, то может быть пусто Если C1 + С2 меньше e1 т.е. 10:00, то в с3 тупо отображаем сумму C1 + С2. Если C1 + С2 равно e1 т.е. 10:00, то в с3 тупо отображаем сумму C1 + С2.
Если C1 + С2 больше e1 т.е. 10:00, то в с3 то необходимо проверить не пусто ли в ячейках - A3 или B3. Если пусто, то в с3 = (с1+с2) - e1. Если не пусто, то в с3 = (B3 - A3) + ((с1+с2) - e1).Ericbek
Pelena, прошу прощения за допущенные мной нарушение. Конец рабочего дня, извините! Какое должно быть название, подскажите? [moder]В п.2 Правил по-моему все четко написано по поводу "Задача с использованием ЕСЛИ И ИЛИ" и им подобных.
Pelena, прошу прощения за допущенные мной нарушение. Конец рабочего дня, извините! Какое должно быть название, подскажите? [moder]В п.2 Правил по-моему все четко написано по поводу "Задача с использованием ЕСЛИ И ИЛИ" и им подобных.Ericbek
Сообщение отредактировал _Boroda_ - Среда, 11.05.2016, 16:37
Вот сложно оценить верно ли дал ТС название для топика. Pelena, Вас устраивает название? Я без злого умысла. Просто охота доделать начатое. [moder]Меня не устраивает. И еще меня не устраивает нарушение Вами пункта 5о Правил форума[/moder][moder]Забыл галку подписи поставить. Вчерашний комментарий выше мой. Борода[/moder]
Вот сложно оценить верно ли дал ТС название для топика. Pelena, Вас устраивает название? Я без злого умысла. Просто охота доделать начатое. [moder]Меня не устраивает. И еще меня не устраивает нарушение Вами пункта 5о Правил форума[/moder][moder]Забыл галку подписи поставить. Вчерашний комментарий выше мой. Борода[/moder]mathiax90
webmoney: R242692021885 ЯД:410013877261817
Сообщение отредактировал _Boroda_ - Четверг, 12.05.2016, 07:44
Pelena, Правила по этой ссылке http://www.excelworld.ru/forum/2-20-1 читал. Помню время, когда я обращался сюда за советом / помощью отвечал сам Serge_007. И всё было прекрасно. Даже не требовалась регистрация, чтобы создать тему. Я не думаю, что суть моей задачи и название темы далеки друг от друга. Если Вам так не кажется будьте добры ткните ссылкой на конкретные условия Правил. К тому же ограничение символов в названии темы не позволяет мне выразить моими мыслями по иному. И хватит уже цепляться к названии, а то получится как всегда "Хотели как лучше, а получилось как всегда!". Если обидел, то уж извините, что так резко!
Pelena, Правила по этой ссылке http://www.excelworld.ru/forum/2-20-1 читал. Помню время, когда я обращался сюда за советом / помощью отвечал сам Serge_007. И всё было прекрасно. Даже не требовалась регистрация, чтобы создать тему. Я не думаю, что суть моей задачи и название темы далеки друг от друга. Если Вам так не кажется будьте добры ткните ссылкой на конкретные условия Правил. К тому же ограничение символов в названии темы не позволяет мне выразить моими мыслями по иному. И хватит уже цепляться к названии, а то получится как всегда "Хотели как лучше, а получилось как всегда!". Если обидел, то уж извините, что так резко!Ericbek
Ericbek, у Вас в первом предложении первого поста очень хорошо сформулирована суть задачи. Вот почему бы не назвать тему так же вместо этого пустого обмена любезностями?
А если есть решение без функций ЕСЛИ/ИЛИ, оно Вам не подойдёт? На дружественном форуме есть отличная статья "Зачем давать темам осмысленные названия", почитайте на досуге
Ericbek, у Вас в первом предложении первого поста очень хорошо сформулирована суть задачи. Вот почему бы не назвать тему так же вместо этого пустого обмена любезностями?
у Вас в первом предложении первого поста очень хорошо сформулирована суть задачи. Вот почему бы не назвать тему так же
Сделаем.
Цитата
А если есть решение без функций ЕСЛИ/ИЛИ, оно Вам не подойдёт?
Подойдёт. Главное, чтобы выполняла поставленную задачу. А о чём речь? Где это решение?
Цитата
На дружественном форуме есть отличная статья "Зачем давать темам осмысленные названия", почитайте на досуге
Прочту обязательно, но все мы люди. Поэтому нельзя требовать определённые вещи от человека, когда единица измерения или другой инструмент у каждого бывает разным. Мне например проще написать сочинение, чем придумывать к нему точное название. Кто-то наоборот, может написать тему а сформулировать суть вопроса ему никак. Давайте всё таки вернёмся к сути вопроса и закончим все эти санкции и прочие замечания. [moder]Вернёмся, как только будет исправлено название темы. Исправлено[/moder]
Цитата
у Вас в первом предложении первого поста очень хорошо сформулирована суть задачи. Вот почему бы не назвать тему так же
Сделаем.
Цитата
А если есть решение без функций ЕСЛИ/ИЛИ, оно Вам не подойдёт?
Подойдёт. Главное, чтобы выполняла поставленную задачу. А о чём речь? Где это решение?
Цитата
На дружественном форуме есть отличная статья "Зачем давать темам осмысленные названия", почитайте на досуге
Прочту обязательно, но все мы люди. Поэтому нельзя требовать определённые вещи от человека, когда единица измерения или другой инструмент у каждого бывает разным. Мне например проще написать сочинение, чем придумывать к нему точное название. Кто-то наоборот, может написать тему а сформулировать суть вопроса ему никак. Давайте всё таки вернёмся к сути вопроса и закончим все эти санкции и прочие замечания. [moder]Вернёмся, как только будет исправлено название темы. Исправлено[/moder]Ericbek
Сообщение отредактировал Pelena - Четверг, 12.05.2016, 08:36
Раз уже тему поправили, давайте снова вернёмся к блок-схеме. Ваши ответы в сообщении http://www.excelworld.ru/forum/2-23551-186288-16-1462972161 Ввели меня в полный ступор. Поэтому я задам пару вопросов: 1. Для какой ячейки мы создаём формулу (алгоритм) для С3? Или С3 это какая-то промежуточная ячейка? 2. Что вы хотите рассчитать? Словами опишите. Например: Хочу рассчитать сколько конкретный человек отработал за день, если он работал до обеда, после обеда и после ужина или в любых других комбинациях обеда и ужина. При этом я хочу видеть одну цифру, которая будет показывать +1 или -1 (т.е. переработка 1 час или недоработка 1 час). Это я для примера. А что вы хотите увидеть?
Раз уже тему поправили, давайте снова вернёмся к блок-схеме. Ваши ответы в сообщении http://www.excelworld.ru/forum/2-23551-186288-16-1462972161 Ввели меня в полный ступор. Поэтому я задам пару вопросов: 1. Для какой ячейки мы создаём формулу (алгоритм) для С3? Или С3 это какая-то промежуточная ячейка? 2. Что вы хотите рассчитать? Словами опишите. Например: Хочу рассчитать сколько конкретный человек отработал за день, если он работал до обеда, после обеда и после ужина или в любых других комбинациях обеда и ужина. При этом я хочу видеть одну цифру, которая будет показывать +1 или -1 (т.е. переработка 1 час или недоработка 1 час). Это я для примера. А что вы хотите увидеть?mathiax90
webmoney: R242692021885 ЯД:410013877261817
Сообщение отредактировал mathiax90 - Четверг, 12.05.2016, 08:57
1. Для какой ячейки мы создаём формулу (алгоритм) для С3? Или С3 это какая-то промежуточная ячейка?
Формула именно для ячейки C3.
Цитата
2. Что вы хотите рассчитать? Словами опишите.
Если коротко. Надо рассчитать количество переработок до обеда, после обеда и после ужина, если таковые имеются. При этом, если до и после обеда переработок нет, то значения времени (начало [а3] или конец [в3]) после ужина не заполняется.
Теперь попробую это выразить математически. Необходимо рассчитать количество переработок, если таковые имеются. А проверить наличие переработок их я пытался через условие если сумма с1 + с2 больше 10:00, то нужно просто отобразить разницу (с1 + с2) - е1. Затем проверить не пусто ли в ячейке а3 или в3. Если пуст, то просто отобразить результат 1-го условия. Т.е. либо сумму либо разницу. Если не пусто, то добавить к результату (с1 + с2) - е1 разницу в3 - а3. Т.е. (в3 - а3) + (с1 + с2) - е1.
Цитата
1. Для какой ячейки мы создаём формулу (алгоритм) для С3? Или С3 это какая-то промежуточная ячейка?
Формула именно для ячейки C3.
Цитата
2. Что вы хотите рассчитать? Словами опишите.
Если коротко. Надо рассчитать количество переработок до обеда, после обеда и после ужина, если таковые имеются. При этом, если до и после обеда переработок нет, то значения времени (начало [а3] или конец [в3]) после ужина не заполняется.
Теперь попробую это выразить математически. Необходимо рассчитать количество переработок, если таковые имеются. А проверить наличие переработок их я пытался через условие если сумма с1 + с2 больше 10:00, то нужно просто отобразить разницу (с1 + с2) - е1. Затем проверить не пусто ли в ячейке а3 или в3. Если пуст, то просто отобразить результат 1-го условия. Т.е. либо сумму либо разницу. Если не пусто, то добавить к результату (с1 + с2) - е1 разницу в3 - а3. Т.е. (в3 - а3) + (с1 + с2) - е1.Ericbek
Сообщение отредактировал Ericbek - Четверг, 12.05.2016, 09:30
Или как лучше сделать, чтобы видеть сколько часов человек работал до и после обеда, после ужина. Если имеются и переработки, то отобразить и их.
Или как лучше сделать, чтобы видеть сколько часов человек работал до и после обеда, после ужина. Если имеются и переработки, то отобразить и их.Ericbek
Если коротко. Надо рассчитать количество переработок до обеда, после обеда и после ужина, если таковые имеются. Отлично это я понял.
При этом, если до и после обеда переработок нет, то значения времени (начало [а3] или конец [в3]) после ужина не заполняется. Я конечно приму это как данность но всё же поясните почему? человек не может переработать вечером? или если я до обеда сделал 5 часов, после обеда 5 часов, а потом задержался после ужина, то мне ничегошеньки не начислят? Это к тому что работу надо делать вовремя, а не после ужина? Необходимо рассчитать количество переработок, если таковые имеются. Количество переработок = время работы - стандартное время работы (10 часов)
Итак алгоритм
Всё верно?
Если коротко. Надо рассчитать количество переработок до обеда, после обеда и после ужина, если таковые имеются. Отлично это я понял.
При этом, если до и после обеда переработок нет, то значения времени (начало [а3] или конец [в3]) после ужина не заполняется. Я конечно приму это как данность но всё же поясните почему? человек не может переработать вечером? или если я до обеда сделал 5 часов, после обеда 5 часов, а потом задержался после ужина, то мне ничегошеньки не начислят? Это к тому что работу надо делать вовремя, а не после ужина? Необходимо рассчитать количество переработок, если таковые имеются. Количество переработок = время работы - стандартное время работы (10 часов)