Страницы: 1
RSS
Разделение времени на "День" / "Ночь"
 
Добрый день. Есть таблица с датами и временем. Нужен макрос который в соседнем столбце отобразит день это был или ночь, при условии, что день (с 9-00 до 18-00), ночь (с 18-00 до 9-00).
 
формула не подойдет?
Код
=ЕСЛИ(И(ОСТАТ(A2;1)*1440>540;ОСТАТ(A2;1)*1440<1080);"день";"ночь")
Изменено: V - 11.10.2017 11:10:43
 
Больше спасибо V! То что нужно.
 
Еще вариант
=ЕСЛИ(ОСТАТ(A2-"9:";1)<--"9:";"день";"ночь")
И уточните - ровно 9:00 - это день или ночь?
Скажи мне, кудесник, любимец ба’гов...
 
Кнопка цитирования не для ответа [МОДЕРАТОР]
Благодарю! Я принимаю 9:00 за утро, 18:00 за ночь.
 
Я тоже
Скажи мне, кудесник, любимец ба’гов...
 
Уважаемые знатоки, а что конкретно делает знак "-" поставленный перед текстовой строкой? -"9:"
Ну, то есть если написать в ячейке
Код
=--"9:"
то видно что оно равно 0,375, т.е. числовому представлению времени 9:00. А где прочитать про механику преобразований с текстом, которые вытворяет Excel когда видит такое?
Вот горшок пустой, он предмет простой...
 
Что такое -- или как превратить ИСТИНА в 1, а ЛОЖЬ в 0?
Скажи мне, кудесник, любимец ба’гов...
 
Спасибо, правда про преобразование форматов времени там ничего не описано, но принцип стал более понятен.
Я просто всегда умножал на 1, но раз оно аж на 15% быстрее, то надо брать на вооружение!  :D  
Вот горшок пустой, он предмет простой...
 
Цитата
PooHkrd написал:
про преобразование форматов времени там ничего не описано
Там написано про числа. а дата и время в Excel - это числа
Скажи мне, кудесник, любимец ба’гов...
 
Вопрос состоял не в этом, а в том в какие числа Эксель будет интерпретировать текстовую строку "9:9" или "9.9" или "9/9". Теперь уже разобрался, спасибо за помощь.
Вот горшок пустой, он предмет простой...
 
Добрый день!
Прошу проверить макрос.
Для дня:
Код
=IF(AND(C11-INT(C11)>TIME(6,0,0),C11-INT(C11)<TIME(18,0,0)),"1","0")
С этим макросом все в порядке, выдает 1 в ячейку день.
Для ночи:
Код
=IF(AND(C11-INT(C11)<TIME(6,0,0),C11-INT(C11)>TIME(18,0,0)),"1","0") 
Я поменял знаки <> местами, я думал должно сработать, не работает.
Т.е. если время 19:00, макрос понимает что это больше 18:00 но не понимает что это меньше 6:00, в этом я пока что вижу проблему.
Если просто поменять 1 и 0 местами в первом макросе чтобы выдавал 1 для ночи, то так же выдаст 1 если в ячейке времени нет данных, а мне нужен 0 если нет данных.
Спасибо!
 
Не смотрел другие решения, вот мое.
 
kinshas, 1 - нужно определить к какому времени относятся граничные условия
2. Если нет данных, то есть в ячейке 0 - это 0:00 и относится к ночи. просто нужно исключить расчет
=IF(C10>0;--AND(MOD(C10;1)>1/4;MOD(C10;1)<3/4);"")
=IF(C10>0;--OR(MOD(C10;1)<1/4;MOD(C10;1)>3/4);"")
Изменено: БМВ - 20.10.2019 10:24:19
По вопросам из тем форума, личку не читаю.
 
Добрый день!
Спасибо всем участвующим!

Проблема кроется в переходе суток через 00:00!
Если F2=9:00 E2=18:00 то все просто
Код
=IF(AND(A2-INT(A2)>=$F$2,A2-INT(A2)<=$E$2),"День","Ночь") 
(макрос Murderface)
а вот если F2=18:00 E2=8:00 то есть имеется переход через 0000, то макрос не работает.
Есть идея сделать два макроса(выставить граничные условия по совету БМВ ;) ), один 18:00 до 23:59 дает 1, другой 00:00 до 8:00 дает 0, если А2=19:00
то вместе 1 и 0 дают 1 то есть ночь, а если А2=17:00 то макросы дают 0+0=0 день, 1+0=1 ночь. Фаил прикрепил.
А как это сделать одним макросом, попроще что ли?
Изменено: kinshas - 20.10.2019 10:35:28
 
1. Макросов в решении Вашей задачи еще нет - есть формулы.
2. Объясните, как это - ночь длится с 8 утра одного дня до 18 часов следующего дня?!
Цитата
kinshas написал: если F2=18:00 E2=8:00 то есть имеется переход через 0000
 
Ночь длится с 18 до 8, так и написанно.
 
kinshas,  Вы #14 пробовали?
Цитата
kinshas написал:
Ночь длится с 18 до 8
ровно 18:00 и ровно 8:00 это что?
По вопросам из тем форума, личку не читаю.
 
Цитата
kinshas написал: Ночь длится с 18 до 8...
если F2=18:00 E2=8:00
Но Вы же хотите переставить зачения и написать  "Ночь с" (E1) 8 (E2) "Ночь до" (F1) 18 (F2)!
 
Посмотрите пожалуйста прикрепленный файл, есть взлет (день/ночь) и посадка (день/ночь), если взлет днем то 1 в ячейку день, если ночью то в ячейку ночь, и формула от Murderface работает прекрасно, но если удалить данные(время) (оставив ячейки пустыми) из таблицы то в ячейку ночь прописывается 1, что не подходит для моих условий.
Выход найден;
Цитата
сделать два макроса(выставить граничные условия по совету БМВ ), один (ночь) с 18:00 до 23:59 дает 1, другой (ночь) с 00:00 до 8:00 дает 0, если А2=19:00
то вместе 1 и 0 дают 1 то есть ночь, а если А2=17:00 то формулы дают 0+0=0 день, 1+0=1 ночь. Фаил прикрепил.
А как это сделать в одной ячейке, попроще что ли?

Цитата
БМВ написал:ровно 18:00 и ровно 8:00 это что?

Это ночь, но можно задать любое время, это не критично.
 
Цитата
kinshas написал:
Посмотрите пожалуйста прикрепленный файл
посмотрел, плачу. А вы смотрели #14?
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
А вы смотрели #14?
Конечно смотрел, выдавало ошибку, в крайнем примере вы ее исправили. Спасибо! ;)  
Страницы: 1
Наверх