Распределение часов по неделям
Oh_Nick
Дата: Суббота, 16.12.2023, 21:44 |
Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 445
Репутация:
8
±
Замечаний:
20% ±
Excel 2019
Всем привет! Файл во вложении распределяет часы в колонке B.Мы нажимаем кнопку , вводим кол-во часов, кол-во предметов , и часы итоговой аттестации и он нам выдает кол-во часов по предметам в колонке B. Помогите дополнить код, чтобы получился следующий алгоритм: Мы берем часы из колонки B и начиная с ячейки I1 распределяем эти часы по неделям по 40 часов. В нашем случае мы взяли две ячейки по 40 и у нас осталось 3 , т.к 83-80 = 3, и далее чтобы получить 40 мы к этим 3 должны прибавить 37. И далее опять берем вправо 40 и так пока все часы из колонки B не закончатся. Приложил пример как должно получатся. Надеюсь понятно объяснил) спасибо заранее!
Всем привет! Файл во вложении распределяет часы в колонке B.Мы нажимаем кнопку , вводим кол-во часов, кол-во предметов , и часы итоговой аттестации и он нам выдает кол-во часов по предметам в колонке B. Помогите дополнить код, чтобы получился следующий алгоритм: Мы берем часы из колонки B и начиная с ячейки I1 распределяем эти часы по неделям по 40 часов. В нашем случае мы взяли две ячейки по 40 и у нас осталось 3 , т.к 83-80 = 3, и далее чтобы получить 40 мы к этим 3 должны прибавить 37. И далее опять берем вправо 40 и так пока все часы из колонки B не закончатся. Приложил пример как должно получатся. Надеюсь понятно объяснил) спасибо заранее! Oh_Nick
Ответить
Сообщение Всем привет! Файл во вложении распределяет часы в колонке B.Мы нажимаем кнопку , вводим кол-во часов, кол-во предметов , и часы итоговой аттестации и он нам выдает кол-во часов по предметам в колонке B. Помогите дополнить код, чтобы получился следующий алгоритм: Мы берем часы из колонки B и начиная с ячейки I1 распределяем эти часы по неделям по 40 часов. В нашем случае мы взяли две ячейки по 40 и у нас осталось 3 , т.к 83-80 = 3, и далее чтобы получить 40 мы к этим 3 должны прибавить 37. И далее опять берем вправо 40 и так пока все часы из колонки B не закончатся. Приложил пример как должно получатся. Надеюсь понятно объяснил) спасибо заранее! Автор - Oh_Nick Дата добавления - 16.12.2023 в 21:44
Oh_Nick
Дата: Вторник, 19.12.2023, 13:03 |
Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 445
Репутация:
8
±
Замечаний:
20% ±
Excel 2019
Задача выполнена, тема закрыта
Задача выполнена, тема закрыта Oh_Nick
Ответить
Сообщение Задача выполнена, тема закрыта Автор - Oh_Nick Дата добавления - 19.12.2023 в 13:03
MikeVol
Дата: Вторник, 19.12.2023, 14:49 |
Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 378
Репутация:
81
±
Замечаний:
0% ±
MSO LTSC 2021 EN
Oh_Nick , Доброго времени суток. Для соискателей с похожим вопросом поделитесь вашим решением данной (вашей) задачи. Удачи.
Oh_Nick , Доброго времени суток. Для соискателей с похожим вопросом поделитесь вашим решением данной (вашей) задачи. Удачи.MikeVol
Ученик. Одесса - Украина
Ответить
Сообщение Oh_Nick , Доброго времени суток. Для соискателей с похожим вопросом поделитесь вашим решением данной (вашей) задачи. Удачи.Автор - MikeVol Дата добавления - 19.12.2023 в 14:49
Oh_Nick
Дата: Среда, 20.12.2023, 10:51 |
Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 445
Репутация:
8
±
Замечаний:
20% ±
Excel 2019
MikeVol , добрый день!) на самом деле пока встал вопрос, если часов > 40 в колонке B то спотыкается и начинает вычитать числа. Пример прилагаю. Если часов в колонке B < 40, то считает хорошо...
MikeVol , добрый день!) на самом деле пока встал вопрос, если часов > 40 в колонке B то спотыкается и начинает вычитать числа. Пример прилагаю. Если часов в колонке B < 40, то считает хорошо...Oh_Nick
Сообщение отредактировал Oh_Nick - Среда, 20.12.2023, 11:21
Ответить
Сообщение MikeVol , добрый день!) на самом деле пока встал вопрос, если часов > 40 в колонке B то спотыкается и начинает вычитать числа. Пример прилагаю. Если часов в колонке B < 40, то считает хорошо...Автор - Oh_Nick Дата добавления - 20.12.2023 в 10:51
Oh_Nick
Дата: Среда, 20.12.2023, 11:18 |
Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 445
Репутация:
8
±
Замечаний:
20% ±
Excel 2019
Вот , например, для такого кол-ва часов будет такая раскладка (первый скрин), а код выдает вот так (второй скрин) в сумме то ок, только вот по распределению неверно...
Вот , например, для такого кол-ва часов будет такая раскладка (первый скрин), а код выдает вот так (второй скрин) в сумме то ок, только вот по распределению неверно... Oh_Nick
Сообщение отредактировал Oh_Nick - Среда, 20.12.2023, 11:20
Ответить
Сообщение Вот , например, для такого кол-ва часов будет такая раскладка (первый скрин), а код выдает вот так (второй скрин) в сумме то ок, только вот по распределению неверно... Автор - Oh_Nick Дата добавления - 20.12.2023 в 11:18
Oh_Nick
Дата: Среда, 20.12.2023, 13:23 |
Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 445
Репутация:
8
±
Замечаний:
20% ±
Excel 2019
Вот, например, код срабатывает на часы > 40, но по неделям считает больше 40. а должно быть равно.
Вот, например, код срабатывает на часы > 40, но по неделям считает больше 40. а должно быть равно. Oh_Nick
Ответить
Сообщение Вот, например, код срабатывает на часы > 40, но по неделям считает больше 40. а должно быть равно. Автор - Oh_Nick Дата добавления - 20.12.2023 в 13:23
mgt
Дата: Среда, 20.12.2023, 13:53 |
Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 102
Репутация:
26
±
Замечаний:
0% ±
Excel 2010
Почему на первом скрине в колонке L в сумме 50? Я не совсем понял зачем количество предметов и почему на разных скринах разное количество часов в неделю, но если часы беруться из столбца B а норма часов в неделю из столбца C, то попробуйте запустить этот код. [vba]Код
Dim i% Dim ch%, st%, counter% counter = 9 For i = 1 To Range("a65536").End(xlUp).Row ch = Cells(i, 3).Value If Range("b" & i).Value < ch Then Cells(i, counter - 1).Value = Range("b" & i).Value Else st = Range("b" & i).Value - Cells(i, counter - 1).Value Do While st - ch > 0 Cells(i, counter).Value = ch st = st - ch counter = counter + 1 Loop Cells(i, counter).Value = st Cells(i + 1, counter).Value = ch - st counter = counter + 1 End If Next i
[/vba]
Почему на первом скрине в колонке L в сумме 50? Я не совсем понял зачем количество предметов и почему на разных скринах разное количество часов в неделю, но если часы беруться из столбца B а норма часов в неделю из столбца C, то попробуйте запустить этот код. [vba]Код
Dim i% Dim ch%, st%, counter% counter = 9 For i = 1 To Range("a65536").End(xlUp).Row ch = Cells(i, 3).Value If Range("b" & i).Value < ch Then Cells(i, counter - 1).Value = Range("b" & i).Value Else st = Range("b" & i).Value - Cells(i, counter - 1).Value Do While st - ch > 0 Cells(i, counter).Value = ch st = st - ch counter = counter + 1 Loop Cells(i, counter).Value = st Cells(i + 1, counter).Value = ch - st counter = counter + 1 End If Next i
[/vba] mgt
Сообщение отредактировал mgt - Среда, 20.12.2023, 13:54
Ответить
Сообщение Почему на первом скрине в колонке L в сумме 50? Я не совсем понял зачем количество предметов и почему на разных скринах разное количество часов в неделю, но если часы беруться из столбца B а норма часов в неделю из столбца C, то попробуйте запустить этот код. [vba]Код
Dim i% Dim ch%, st%, counter% counter = 9 For i = 1 To Range("a65536").End(xlUp).Row ch = Cells(i, 3).Value If Range("b" & i).Value < ch Then Cells(i, counter - 1).Value = Range("b" & i).Value Else st = Range("b" & i).Value - Cells(i, counter - 1).Value Do While st - ch > 0 Cells(i, counter).Value = ch st = st - ch counter = counter + 1 Loop Cells(i, counter).Value = st Cells(i + 1, counter).Value = ch - st counter = counter + 1 End If Next i
[/vba] Автор - mgt Дата добавления - 20.12.2023 в 13:53
Oh_Nick
Дата: Среда, 20.12.2023, 13:55 |
Сообщение № 8
Группа: Проверенные
Ранг: Обитатель
Сообщений: 445
Репутация:
8
±
Замечаний:
20% ±
Excel 2019
mgt , приложите файл, пожалуйста
mgt , приложите файл, пожалуйстаOh_Nick
Ответить
Сообщение mgt , приложите файл, пожалуйстаАвтор - Oh_Nick Дата добавления - 20.12.2023 в 13:55
Oh_Nick
Дата: Среда, 20.12.2023, 13:58 |
Сообщение № 9
Группа: Проверенные
Ранг: Обитатель
Сообщений: 445
Репутация:
8
±
Замечаний:
20% ±
Excel 2019
mgt , норма часов не из столбца С. Норма часов всегда одна - 40 часов в неделю, т.е логика макроса должна быть такая: 1) пока я не набью сумму 40 по значениям 1 столбца 2) на 2ой столбец я не перехожу Набиваем из колонки B. Остальные колонки нас вообще не интересуют. Тут еще важно соблюсти тригер, чтобы в колонке B брал числа до формулы =СУММ в ячейке (там просто итог выводится)
mgt , норма часов не из столбца С. Норма часов всегда одна - 40 часов в неделю, т.е логика макроса должна быть такая: 1) пока я не набью сумму 40 по значениям 1 столбца 2) на 2ой столбец я не перехожу Набиваем из колонки B. Остальные колонки нас вообще не интересуют. Тут еще важно соблюсти тригер, чтобы в колонке B брал числа до формулы =СУММ в ячейке (там просто итог выводится)Oh_Nick
Сообщение отредактировал Oh_Nick - Среда, 20.12.2023, 13:59
Ответить
Сообщение mgt , норма часов не из столбца С. Норма часов всегда одна - 40 часов в неделю, т.е логика макроса должна быть такая: 1) пока я не набью сумму 40 по значениям 1 столбца 2) на 2ой столбец я не перехожу Набиваем из колонки B. Остальные колонки нас вообще не интересуют. Тут еще важно соблюсти тригер, чтобы в колонке B брал числа до формулы =СУММ в ячейке (там просто итог выводится)Автор - Oh_Nick Дата добавления - 20.12.2023 в 13:58
mgt
Дата: Среда, 20.12.2023, 14:00 |
Сообщение № 10
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 102
Репутация:
26
±
Замечаний:
0% ±
Excel 2010
ну ок. 40 часов присвоил переменной)
ну ок. 40 часов присвоил переменной) mgt
Ответить
Сообщение ну ок. 40 часов присвоил переменной) Автор - mgt Дата добавления - 20.12.2023 в 14:00
mgt
Дата: Среда, 20.12.2023, 14:04 |
Сообщение № 11
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 102
Репутация:
26
±
Замечаний:
0% ±
Excel 2010
Макрос берет не до формулы сумм, а до нижней заполненной ячейки в столбце А.
Макрос берет не до формулы сумм, а до нижней заполненной ячейки в столбце А. mgt
Сообщение отредактировал mgt - Среда, 20.12.2023, 14:04
Ответить
Сообщение Макрос берет не до формулы сумм, а до нижней заполненной ячейки в столбце А. Автор - mgt Дата добавления - 20.12.2023 в 14:04
Oh_Nick
Дата: Среда, 20.12.2023, 14:05 |
Сообщение № 12
Группа: Проверенные
Ранг: Обитатель
Сообщений: 445
Репутация:
8
±
Замечаний:
20% ±
Excel 2019
mgt , почему-то сумма диапазона I:W (600) не бьется с колонкой B (594)
mgt , почему-то сумма диапазона I:W (600) не бьется с колонкой B (594)Oh_Nick
Ответить
Сообщение mgt , почему-то сумма диапазона I:W (600) не бьется с колонкой B (594)Автор - Oh_Nick Дата добавления - 20.12.2023 в 14:05
mgt
Дата: Среда, 20.12.2023, 14:08 |
Сообщение № 13
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 102
Репутация:
26
±
Замечаний:
0% ±
Excel 2010
Ну оно и логично, т.к. 594 на 40 нацело не делится. Остаток 6, он у вас внизу и остался.
Ну оно и логично, т.к. 594 на 40 нацело не делится. Остаток 6, он у вас внизу и остался. mgt
Ответить
Сообщение Ну оно и логично, т.к. 594 на 40 нацело не делится. Остаток 6, он у вас внизу и остался. Автор - mgt Дата добавления - 20.12.2023 в 14:08
Oh_Nick
Дата: Среда, 20.12.2023, 14:10 |
Сообщение № 14
Группа: Проверенные
Ранг: Обитатель
Сообщений: 445
Репутация:
8
±
Замечаний:
20% ±
Excel 2019
mgt , Надо до формулы, потому что рабочий файл вот такой:
mgt , Надо до формулы, потому что рабочий файл вот такой:Oh_Nick
Сообщение отредактировал Oh_Nick - Среда, 20.12.2023, 14:14
Ответить
Сообщение mgt , Надо до формулы, потому что рабочий файл вот такой:Автор - Oh_Nick Дата добавления - 20.12.2023 в 14:10
Oh_Nick
Дата: Среда, 20.12.2023, 14:13 |
Сообщение № 15
Группа: Проверенные
Ранг: Обитатель
Сообщений: 445
Репутация:
8
±
Замечаний:
20% ±
Excel 2019
mgt , Тогда должно быть вот так, у нас же общая сумма в колонке 594, вот мы ее и распределяем
mgt , Тогда должно быть вот так, у нас же общая сумма в колонке 594, вот мы ее и распределяемOh_Nick
Ответить
Сообщение mgt , Тогда должно быть вот так, у нас же общая сумма в колонке 594, вот мы ее и распределяемАвтор - Oh_Nick Дата добавления - 20.12.2023 в 14:13
mgt
Дата: Среда, 20.12.2023, 14:57 |
Сообщение № 16
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 102
Репутация:
26
±
Замечаний:
0% ±
Excel 2010
До предпоследней заполненой ячейки в столбце B.
До предпоследней заполненой ячейки в столбце B. mgt
Ответить
Сообщение До предпоследней заполненой ячейки в столбце B. Автор - mgt Дата добавления - 20.12.2023 в 14:57
Oh_Nick
Дата: Среда, 20.12.2023, 15:09 |
Сообщение № 17
Группа: Проверенные
Ранг: Обитатель
Сообщений: 445
Репутация:
8
±
Замечаний:
20% ±
Excel 2019
mgt , Вот эти часы вот так вывел...
mgt , Вот эти часы вот так вывел...Oh_Nick
Ответить
Сообщение mgt , Вот эти часы вот так вывел...Автор - Oh_Nick Дата добавления - 20.12.2023 в 15:09
mgt
Дата: Среда, 20.12.2023, 16:00 |
Сообщение № 18
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 102
Репутация:
26
±
Замечаний:
0% ±
Excel 2010
Видимо я недоконца понимаю условие. Разбейте как должен выглядеть результат примера на картинке
Видимо я недоконца понимаю условие. Разбейте как должен выглядеть результат примера на картинке mgt
Ответить
Сообщение Видимо я недоконца понимаю условие. Разбейте как должен выглядеть результат примера на картинке Автор - mgt Дата добавления - 20.12.2023 в 16:00
Oh_Nick
Дата: Среда, 20.12.2023, 16:10 |
Сообщение № 19
Группа: Проверенные
Ранг: Обитатель
Сообщений: 445
Репутация:
8
±
Замечаний:
20% ±
Excel 2019
mgt , такая разбивка часов конечно вряд ли будет, потому что часы распределяет равномерно в нашем случае было бы так (скриншот 1) 150 часов, из них 6 аттестацией. И тогда распределение было бы таким (скриншот 2) а если, например, как хотите вы, то будет так (скриншот 3) 150 часов, из них 6 аттестацией (например) почему, например ,не использовать тригер в виде числа 40 где нибудь первой строкой и по нему смотреть?
mgt , такая разбивка часов конечно вряд ли будет, потому что часы распределяет равномерно в нашем случае было бы так (скриншот 1) 150 часов, из них 6 аттестацией. И тогда распределение было бы таким (скриншот 2) а если, например, как хотите вы, то будет так (скриншот 3) 150 часов, из них 6 аттестацией (например) почему, например ,не использовать тригер в виде числа 40 где нибудь первой строкой и по нему смотреть?Oh_Nick
Сообщение отредактировал Oh_Nick - Среда, 20.12.2023, 16:11
Ответить
Сообщение mgt , такая разбивка часов конечно вряд ли будет, потому что часы распределяет равномерно в нашем случае было бы так (скриншот 1) 150 часов, из них 6 аттестацией. И тогда распределение было бы таким (скриншот 2) а если, например, как хотите вы, то будет так (скриншот 3) 150 часов, из них 6 аттестацией (например) почему, например ,не использовать тригер в виде числа 40 где нибудь первой строкой и по нему смотреть?Автор - Oh_Nick Дата добавления - 20.12.2023 в 16:10
Oh_Nick
Дата: Среда, 20.12.2023, 16:16 |
Сообщение № 20
Группа: Проверенные
Ранг: Обитатель
Сообщений: 445
Репутация:
8
±
Замечаний:
20% ±
Excel 2019
Oh_Nick , а должен был вот так (скриншот)
Oh_Nick , а должен был вот так (скриншот)Oh_Nick
Ответить
Сообщение Oh_Nick , а должен был вот так (скриншот)Автор - Oh_Nick Дата добавления - 20.12.2023 в 16:16