Как умножить время на число в excel
Добрый день форумчане!
Просьба помочь решить несколько проблем касаемых подсчета времени.
Условия: время до 21:00 имеет одну цену, после 21:00 дороже; время в ячейки В5 и С5 забивается вручную.
Проблемы:
1) Как подсчитать количество времени, между ячейками В5 и С5. Я в своем макросе пошел по пути ветвления и нахождения количества времени путем вычитания. Может быть есть что-то наподобие DateDiff, только для времени - или это в данном случае не подойдет?
2) Результат получаемый моим методом - отображается в ячейках АА5 и АА6 листа "Заказы" - но даже там видно, что подсчет времени после полуночи идет неверный.
3) При попытке помножить время на цену за него в ячейке D5 получается не то, что нужно.
If Range("C5") < VECHER Then
Range("AA5") = FormatDateTime((Range("C5") - Range("B5")), vbShortTime)
ElseIf Range("B5") > VECHER Then
Range("AA6") = FormatDateTime((Range("C5") - Range("B5")), vbShortTime)
ElseIf Range("B5") < VECHER And Range("C5") >VECHER Then
Range("AA5") = FormatDateTime((VECHER - Range("B5")), vbShortTime)
Range("AA6") = FormatDateTime((VECHER - Range("C5")), vbShortTime)
End If
If Range("A4") = "Кабина №2" Or Range("A4") = "Кабина №3" Or Range("A4") = "Кабина №4" Then
Range("D5") = (Sheets("Заказы").Range("AA5") * Sheets("ПрайсЛист").Range("B5") + Sheets("Заказы").Range("AA6") * Sheets("ПрайсЛист").Range("B6"))
ElseIf Range("A4") = "VIP" Then
Range("D5") = (Sheets("Заказы").Range("AA5") * Sheets("ПрайсЛист").Range("B3") + Sheets("Заказы").Range("AA6") * Sheets("ПрайсЛист").Range("B4"))
End If
Буду рад, если предложите свои варианты решения данной задачи.
По поводу моего кода - подозреваю, что он чересчур громоздкий и конструктивно неправильный, надеюсь услышать замечания и советы по улучшению техники написания.
Добрый день форумчане!
Просьба помочь решить несколько проблем касаемых подсчета времени.
Условия: время до 21:00 имеет одну цену, после 21:00 дороже; время в ячейки В5 и С5 забивается вручную.
Проблемы:
1) Как подсчитать количество времени, между ячейками В5 и С5. Я в своем макросе пошел по пути ветвления и нахождения количества времени путем вычитания. Может быть есть что-то наподобие DateDiff, только для времени - или это в данном случае не подойдет?
2) Результат получаемый моим методом - отображается в ячейках АА5 и АА6 листа "Заказы" - но даже там видно, что подсчет времени после полуночи идет неверный.
3) При попытке помножить время на цену за него в ячейке D5 получается не то, что нужно.
If Range("C5") < VECHER Then
Range("AA5") = FormatDateTime((Range("C5") - Range("B5")), vbShortTime)
ElseIf Range("B5") > VECHER Then
Range("AA6") = FormatDateTime((Range("C5") - Range("B5")), vbShortTime)
ElseIf Range("B5") < VECHER And Range("C5") >VECHER Then
Range("AA5") = FormatDateTime((VECHER - Range("B5")), vbShortTime)
Range("AA6") = FormatDateTime((VECHER - Range("C5")), vbShortTime)
End If
If Range("A4") = "Кабина №2" Or Range("A4") = "Кабина №3" Or Range("A4") = "Кабина №4" Then
Range("D5") = (Sheets("Заказы").Range("AA5") * Sheets("ПрайсЛист").Range("B5") + Sheets("Заказы").Range("AA6") * Sheets("ПрайсЛист").Range("B6"))
ElseIf Range("A4") = "VIP" Then
Range("D5") = (Sheets("Заказы").Range("AA5") * Sheets("ПрайсЛист").Range("B3") + Sheets("Заказы").Range("AA6") * Sheets("ПрайсЛист").Range("B4"))
End If
Буду рад, если предложите свои варианты решения данной задачи.
По поводу моего кода - подозреваю, что он чересчур громоздкий и конструктивно неправильный, надеюсь услышать замечания и советы по улучшению техники написания. Railord
Nil novi sub luna, так что - век живи, век учись!)
Просьба помочь решить несколько проблем касаемых подсчета времени.
Условия: время до 21:00 имеет одну цену, после 21:00 дороже; время в ячейки В5 и С5 забивается вручную.
Проблемы:
1) Как подсчитать количество времени, между ячейками В5 и С5. Я в своем макросе пошел по пути ветвления и нахождения количества времени путем вычитания. Может быть есть что-то наподобие DateDiff, только для времени - или это в данном случае не подойдет?
2) Результат получаемый моим методом - отображается в ячейках АА5 и АА6 листа "Заказы" - но даже там видно, что подсчет времени после полуночи идет неверный.
3) При попытке помножить время на цену за него в ячейке D5 получается не то, что нужно.
If Range("C5") < VECHER Then
Range("AA5") = FormatDateTime((Range("C5") - Range("B5")), vbShortTime)
ElseIf Range("B5") > VECHER Then
Range("AA6") = FormatDateTime((Range("C5") - Range("B5")), vbShortTime)
ElseIf Range("B5") < VECHER And Range("C5") >VECHER Then
Range("AA5") = FormatDateTime((VECHER - Range("B5")), vbShortTime)
Range("AA6") = FormatDateTime((VECHER - Range("C5")), vbShortTime)
End If
If Range("A4") = "Кабина №2" Or Range("A4") = "Кабина №3" Or Range("A4") = "Кабина №4" Then
Range("D5") = (Sheets("Заказы").Range("AA5") * Sheets("ПрайсЛист").Range("B5") + Sheets("Заказы").Range("AA6") * Sheets("ПрайсЛист").Range("B6"))
ElseIf Range("A4") = "VIP" Then
Range("D5") = (Sheets("Заказы").Range("AA5") * Sheets("ПрайсЛист").Range("B3") + Sheets("Заказы").Range("AA6") * Sheets("ПрайсЛист").Range("B4"))
End If
Буду рад, если предложите свои варианты решения данной задачи.
По поводу моего кода - подозреваю, что он чересчур громоздкий и конструктивно неправильный, надеюсь услышать замечания и советы по улучшению техники написания. Автор - Railord
Дата добавления - 22.07.2014 в 17:49
может есть смысл записывать в В5 и С2 полную дату, типа 13.07.2014 23:30 и 14.07.2014 01:20? тогда простое вычитание дает разницу 1:50
может есть смысл записывать в В5 и С2 полную дату, типа 13.07.2014 23:30 и 14.07.2014 01:20? тогда простое вычитание дает разницу 1:50 nilem
Хотелось бы избежать этого - ибо так придется делать раз по 30 на дню. Хотел минимизировать количество вбиваемых данных и максимально упростить этот файл.
Просто я думаю, что я чего-то не знаю и пошел по неправильному пути. Может есть какой ни будь прием или функция о которой мне неизвестно.
Хотелось бы избежать этого - ибо так придется делать раз по 30 на дню. Хотел минимизировать количество вбиваемых данных и максимально упростить этот файл.
Просто я думаю, что я чего-то не знаю и пошел по неправильному пути. Может есть какой ни будь прием или функция о которой мне неизвестно. Railord
Nil novi sub luna, так что - век живи, век учись!)
В макросы не вникал (уж очень много там буков). Первое, что пришло в голову - перепишите 4-ю строку
[vba]
Range("AA5") = FormatDateTime((Range("C5") - Range("B5") - (Range("C5") < Range("B5"))), vbShortTime)
В макросы не вникал (уж очень много там буков). Первое, что пришло в голову - перепишите 4-ю строку
[vba]
Range("AA5") = FormatDateTime((Range("C5") - Range("B5") - (Range("C5") < Range("B5"))), vbShortTime)
Range("AA5") = FormatDateTime((Range("C5") - Range("B5") - (Range("C5") < Range("B5"))), vbShortTime)
Благодарю _Boroda_, .
Сработало - только я не понял, каким образом происходит вычитание из неравенства, если не сложно поясните пожалуйста, так сказать на пальцах, словами.
Теперь осталось решить проблему 3-го пункта - чтобы при умножении, к примеру 4 часов 30 минут на 200 получалось 900, а не непонятно что.
Есть мысль переводить часы в минуты, вот только средствами чего это можно реализовать в VBA? Хотя проблемы это наверное все равно не решит, при умножении времени на число, получается какае-то ерунда.
Благодарю _Boroda_, .
Сработало - только я не понял, каким образом происходит вычитание из неравенства, если не сложно поясните пожалуйста, так сказать на пальцах, словами.
Теперь осталось решить проблему 3-го пункта - чтобы при умножении, к примеру 4 часов 30 минут на 200 получалось 900, а не непонятно что.
Есть мысль переводить часы в минуты, вот только средствами чего это можно реализовать в VBA? Хотя проблемы это наверное все равно не решит, при умножении времени на число, получается какае-то ерунда. Railord
Теперь осталось решить проблему 3-го пункта - чтобы при умножении, к примеру 4 часов 30 минут на 200 получалось 900, а не непонятно что.
Есть мысль переводить часы в минуты, вот только средствами чего это можно реализовать в VBA? Хотя проблемы это наверное все равно не решит, при умножении времени на число, получается какае-то ерунда. Автор - Railord
Дата добавления - 22.07.2014 в 23:30
Всё как всегда просто.
В сутках 24 часа.
32 получить ты ни когда не получишь, только 1 день 8 часов.
Если тебе надо 32, то делается это двумя колонками и одной функцией.
т. е.
В первой колонке время во внутреннем представлении экселя.
А во второй колонке самописная функция, которая это время переделывает в нужный тебе формат в виде строки.
Я думаю тольок как то так.
Хотя может и ошибаюсь. Во всяком случае при работе с датой и временем лучше делать свою функцию, которая отображает так как нужно тебе. Во всяком случае, когда последний раз была такая проблемма (уж не помню что был за гемор со временем) но пришлось реализовывать именно так. Потому что у мелкософта странные взгляды на дату и время
Нет, это неверно. При указанном выше формате время отображается в часах, вне зависимости от значения. Хоть 8 суток - будет 192 часа.
Александр Искусственный Интеллект (188230) Возможно. Спорить не буду. Просто когда последний раз мне надо было со временем проводить операции, это было так геморойно, что проще оказалось написать свою функцию и пользоваться ею.
А при чем тут "=ТЕКСТ()"? Просто поставить указанный в первом ответе формат на ячейку - и, вот оно, счастье.
Александр Искусственный Интеллект (188230) А при том, что в продуктах мелкософта, если тебе что то надо то это ты можешь получить. Но . не в том виде какой может быть с точки зрения здравого смысла, а в том, какой программистам мелкософта задал постановщик задачи. И с точки зрения политики мелкософта придуманное кем-то и когда-то один раз - это закон, который изменять нельзя (лдя примера в эксплорере например, при выходе из каталога логично было бы оставаться на каталоге. Однако до последнего времени мелкософты считали что тебя надо выкинуть в начало списка) Ещё один хороший пример вышесказанного мною - это когда в эксель копируешь колкнку с цифрами взятую из к.л. источника (например из текстового файла) или просто набираешь с клавиатуры результат может быть не предсказуем. Он тебе числа может в даты переделать.
Елки-палки! Я же не на пустом месте утверждаю! Открыл Excel, на двух ячейках поставил указанный формат (тот, который начинается с 37. ) и вбил в одну =1/3, а в другую - =F4*4. Все работает как надо. А что, у Вас это не работает? Откуда столько слов?
Александр Искусственный Интеллект (188230) Да разьве я утверждаю. Я сразу написал, ". возможно ошибаюсь. " На ваш первый коммент "Нет, это неверно. " я ответил "Возможно. Спорить не буду." Автор вопроса достаточно расплывчато описал проблемму. Я проверять не стал, так как понял что у него не не получилось. В каком офисе - не понятно. Что он дальше собирается делать с этим значением - не понятно. PS если хотите, попробуйте реализовать без использования VB расчёт учёта рабочего времени Исходные данные, две колонки (тридцать строк): Дата и время начала и Дата и время окончания. Нужно дя каждой строки посчитать количество дневных часов, количество ночных часов. Дневные часы начинаются с 8:00 и до 22:00 Остальные - ночные. Итог: колчество дней всего и количество часов всего (ночных и дневных). А потом представьте, что это только для одного расчёта, а вам таких надо сделать пару десятков (по числу сотрудников). И для этих расчётов сделать общий итог.
Предположим, у вас есть диапазон чисел, и теперь вы хотите умножить их на число. 8.7 у вас есть эффективные и быстрые методы решения этой задачи?
- Умножьте ячейки диапазона на одно и то же число с помощью специальной функции «Вставить»
- Умножьте диапазон ячеек на то же число с формулой в Excel
- Умножение ячеек диапазона на одно и то же число с формулой или без нее
Умножьте диапазон ячеек на то же число с помощью специальной функции Вставить
Excel предоставляет быстрый способ применить математическую операцию к диапазону ячеек. Вы можете использовать Специальная вставка функция умножения диапазона ячеек на число следующим образом:
1. Введите число 8.7 в пустую ячейку и скопируйте его.
2. Выберите диапазон, в котором вы хотите умножить значение, и нажмите Главная > макаронные изделия > Специальная вставка. Смотрите скриншот ниже:
3. В Специальная вставка диалоговое окно, нажмите Все вариант в макаронные изделия раздел и нажмите Размножаться вариант в Эксплуатация и нажмите OK кнопка. Смотрите скриншот выше:
И выбранный диапазон будет умножен на число 8.7 . Смотрите скриншот ниже:
Умножьте диапазон ячеек на то же число с формулой в Excel
Помимо функции «Специальная вставка», мы также можем применить формулу для умножения диапазона ячеек с одинаковым числом в Excel. Пожалуйста, сделайте следующее:
1. Выберите пустую ячейку, говорит Ячейка E1, и введите формулу = A1 * $ D $ 1 (A1 это первая ячейка диапазона, который вы умножите на то же число, D1 это ячейка с указанным числом, на которое вы будете умножать), и нажмите Enter ключ.
2. Перетащите маркер автозаполнения ячейки E1 вправо в ячейку G1, а затем перетащите вниз к ячейке G8. Смотрите скриншот выше.
И теперь каждая ячейка в указанном диапазоне (A1: C8 в нашем случае) умножается сразу на 8.7.
Умножение ячеек диапазона на одно и то же число с формулой или без нее
Операционный отдел особенность Kutools for Excel может быстро применять различные виды математических операций к диапазону ячеек без использования формулы. Вы можете использовать его для умножения диапазона ячеек на число следующим образом.
Kutools for Excel - Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная 30-дневная пробная версия, кредитная карта не требуется! Бесплатная пробная версия сейчас!
Kutools for Excel - Combines more than 300 Advanced Functions and Tools for Microsoft Excel
1. Выберите диапазон, в котором вы хотите умножить значение, и нажмите Кутулс > Еще > Эксплуатация, см. снимок экрана:
2. в Инструменты для работы диалоговое окно, выберите Умножение из Эксплуатация поле и введите номер 8.7 в Операнд и нажмите Ok кнопка. Смотрите скриншот:
Примечание: Если вы также хотите создавать формулы, вы можете проверить Создавать формулы вариант. Если выбранные ячейки содержат формулы, и вы не хотите умножать вычисленные результаты формул, установите флажок Пропустить ячейки формулы вариант. Смотрите скриншот:
Демонстрация: умножение ячеек диапазона на одно и то же число с формулой или без нее
Один щелчок для преобразования нескольких значений времени в часы / минуты / секунды с автоматическим умножением 24/1440/86400
Например, у вас есть время 2:23:42, вы можете преобразовать это время в часы, умножение 24 (или умножение 1440 в минуты, умножение 86400 до секунд; другими словами, мы можем применить формулу = F2 * 24 для перевода времени в часы, = F2 * 1440 в минуты, = F2 * 8640 0 до секунд), а затем измените ячейку формулы на числовой формат. Но с Kutools for Excel's Конвертировать время Утилита, вы можете одним щелчком мыши преобразовать несколько временных данных в часы / минуты / секунды только в Excel. Полнофункциональная бесплатная 30-дневная пробная версия!
Легко конвертируйте валюты, автоматически умножая последний обменный курс в Excel
В общем, нам нужно получить последний обменный курс между двумя указанными валютами, а затем умножить последний обменный курс, чтобы преобразовать исходную валюту в данную валюту. Но с Kutools for Excel's Конвертация валют утилита, она может автоматически умножать последний обменный курс для упрощения пакетной конвертации валют в Excel. Полнофункциональная бесплатная 30-дневная пробная версия!
Как массово умножить или разделить все значения в столбце на число в Excel?
Для списка чисел вам может потребоваться умножить на определенное число для каждого из них, как показано на скриншоте ниже. Обычно их нужно вычислять по очереди с помощью формул. В этой статье мы подробно покажем вам два метода быстрого умножения или деления всех значений в столбце на число сразу.
Массовое умножение или деление всех значений в столбце на число в Excel
Вы можете умножить или разделить все значения в столбце на определенное число следующим образом.
1. Введите определенное число в пустую ячейку (например, вам нужно умножить или разделить все значения на число 10, а затем ввести число 10 в пустую ячейку). Скопируйте эту ячейку, нажав Ctrl + C ключи одновременно.
2. Выберите список номеров, который необходимо умножить, затем нажмите Главная > макаронные изделия > Специальная вставка. Смотрите скриншот:
3. в Специальная вставка в диалоговом окне выберите Размножаться or Разделение вариант в Эксплуатация раздел, как вам нужно (здесь мы выбираем опцию Умножить), а затем нажимаем OK кнопку.
Вы можете увидеть результат операции, как показано на скриншоте ниже.
Легко умножайте или делите все значения в столбце на число с помощью Kutools for Excel
Эксплуатация инструмент Kutools for Excel поможет вам легко массово умножить или разделить все значения в столбце или диапазоне на определенное число в Excel. Пожалуйста, просмотрите для более подробной информации.
Перед применением Kutools for Excel, Пожалуйста, сначала скачайте и установите.
1. Выберите столбец со значениями, которые необходимо умножить или разделить на число, затем нажмите Кутулс > Еще > Эксплуатация. Смотрите скриншот:
2. в Инструменты для работы диалоговом окне выберите нужный тип операции в Эксплуатация коробка (здесь выбираем Умножение вариант), введите определенное число для операнда умножения в текстовое поле, а затем щелкните OK кнопку.
Затем все выделенные ячейки сразу умножаются на определенное число.
Заметки:
- Вы можете создавать формулы для списка, установив флажок Создавать формулы пунктом.
- Если в списке уже есть формулы, вы можете пропустить вычисление этих ячеек, установив флажок Пропустить ячейки формулы пунктом.
Если вы хотите получить бесплатную (30-дневную) пробную версию этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.
Чтобы ввести дату в Excel, используйте символы «/» или «-«. Чтобы ввести время, используйте «:» (двоеточие). Вы можете ввести дату и время в одной ячейке.
Примечание: На рисунках данной статьи представлены даты в формате США и ряда других стран, где сперва идут месяцы, а затем дни. Тип формата зависит от ваших региональных настроек Windows. Здесь вы можете получить дополнительную информацию о форматах даты и времени.
ГОД, МЕСЯЦ, ДЕНЬ
Чтобы получить год даты, используйте функцию ГОД (YEAR):
Примечание: Используйте функции МЕСЯЦ (MONTH) и ДЕНЬ (DAY), чтобы получить месяц и день даты.
Функция ДАТА
- Чтобы добавить несколько дней к дате, используйте следующую формулу:
Примечание: Функция ДАТА (DATE) принимает три аргумента: год, месяц и день. Excel знает, что 6+2=8 – это август. Как известно в августе 31 день, поэтому программа переходит к следующему месяцу (23 августа + 9 дней = 1 сентября).
Текущая дата и время
Чтобы получить текущую дату и время, используйте функцию ТДАТА (NOW):
Примечание: Используйте функцию СЕГОДНЯ (TODAY), чтобы получить только текущую дату. Чтобы получить только текущее время, используйте следующую формулу (не забудьте применить к ячейке формат времени):
ЧАС, МИНУТЫ, СЕКУНДЫ
Чтобы вернуть часы, используйте функцию ЧАС (HOUR):
Примечание: Используйте функции МИНУТЫ (MINUTE) и СЕКУНДЫ (SECOND), чтобы вернуть минуты и секунды соответственно.
Функция ВРЕМЯ
Чтобы прибавить часы, минуты и/или секунды, используйте функцию ВРЕМЯ (TIME):
Примечание: Excel прибавит 2 часа, 10+1 = 11 минут и 70-60 = 10 секунд.
Подпишитесь к нам в дзен-канал, для получения свежих новостей it мира:
Читайте также: