Кстати, да!

Короткие полезные советы,
основанные на личном жизненном опыте,
иногда печальном.

Войдите

или зарегистрируйтесь!

Это вам пригодится, когда вы решите поделиться с нами советом, проголосовать за совет или оставить комментарий. И заодно пропадёт этот надоедливый текст!

Например, офис
3

Чтобы сделать отрицательное время в ячейке Excel, поставьте в настройках систему дат 1904 года. +4+4/-0, 63 прочитавших

Файл → Параметры Excel → Вычисления
или
Сервис → Параметры → Вычисления
→ система дат 1904 год

Все даты в файле уедут на 4 года, с этим осторожнее. Это полезно, правда.

Код для вставки в блог Ой, нет, я лучше руками
×

Получится вот так
...

Написал(а) chat очень давно, 21 мая 2013 в 11:11

Комментарии (31)

  1.   2

    А зачем это может понадобиться?

    Написала Alias2 21 мая 2013 в 11:23¤
  2.   0

    Alias2, считать время)) Бывает пригождается тем, кто ведет учет времени работы, почасовая оплата или с мягким графиком.

    Написал(а) chat 21 мая 2013 в 11:31¤
  3.   0

    chat, можно пояснить? Я как раз веду учет времени работы по часам, записываю с какого часа по какой, потом делаю разницу и суммирую. С отрицательным временем как-то удобнее?

    Написала Alias2 21 мая 2013 в 11:55¤
  4.   0

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

    Написал(а) chat 21 мая 2013 в 14:04¤
  5.   1

    Можешь объяснить то же самое на пальцах? Чтобы вот всем сразу всё стало понятно.

    Написал TT 21 мая 2013 в 14:16¤
  6.   0

    TT, если тебе по каким-нибудь причинам надо будет из 7 часов 45 минут вычесть 8 часов, то эксель результат не покажет, а воспользовавшись фичей, получишь результат в -15 минут.

    Написал(а) chat 21 мая 2013 в 14:32¤
  7.   0

    chat, ясно, а смогу ли я по-прежнему отмечать и считать часы работы обычным способом?

    Написала Alias2 21 мая 2013 в 14:36¤
  8.   0

    Alias2, не очень поняла) Все останется как прежде, кроме годов. По умолчанию, если дату не ставить, эксель все равно думает, что речь о 1 января 1900 года и раньше него ничего быть не могло, а если изменить систему дат, то все считается.

    Написал(а) chat 21 мая 2013 в 14:44¤
  9.   0

    chat, допустим, в первой колонке я отмечаю, с какого часа человек работал, во второй — когда закончил, в третьей — разницу (т.е. кол-во часов), в четвертой ставлю кол-во "эталонных часов", в пятой — разницу между кол-вом отработанных часов и "эталонных", ну а потом суммирую эту разницу. Пройдет такая фишка?

    Написала Alias2 21 мая 2013 в 14:52¤
  10.   3

    Alias2, да, все это будет работать. Ты будешь наглядно видеть, что работник сегодня недоработал 15 минут, а завтра он переработал 10. Можно еще задать условное форматирование и, например, отрицательное время красить красным, а положительное зеленым.

    Написал(а) chat 21 мая 2013 в 14:54¤
  11.   0

    Alias2, пройдёт. Тут аффтар про другое колдует. Не знаю как экзель, и проверять лень, но например опеноффисовский Calc при отнимании ячейки в формате "время" от другой такой же ячейки, в том случает если отнимаемое время больше того, от которого отнимают (вычитаем восемь часов из семи) считает, что это не -1 час, а 23. MS Excel получается вообще такое считать не хочет. А автор сильным колдунством заставляет бедную программу поверить, что существует такое значение времени как "-1 час", или "-15 минут". Деяние в общем-то сугубое и в некотором роде даже извращённое, но уголовно не наказуемое. К сожалению. Иначе бы такие костылестроители либо задумались о правильной организации данных и работе с ними, или пошли бы заниматься чем-нибудь полезным. Например лес валить, чтобы было из чего пилить костыли.

    Написал(а) Cairin 21 мая 2013 в 14:58¤
  12.   0

    Cairin, не совсем поняла, есть какой-то другой, не извращенный способ подсчитать то, что я описала?

    Написала Alias2 21 мая 2013 в 15:00¤
  13.   0

    Alias2, так у тебя же описан нормальный способ. Датавремя начала, датавремя завершения. Без изобретения машины времени второе значение не может быть меньше первого. Соответственно разница между ними будет считаться нормально. Автор же предлагает способ научить excel отнимать от меньшей датывремени большую. Типа пришёл человек на работу, а за два часа до прихода взял и ушёл. И надо эти самые -2 часа посчитать.
    Зачем? Почему это нельзя посчитать иным способом, помимо неочевидного хака системы обработки датывремени в программе… Тайна, покрытая глюком…

    Написал(а) Cairin 21 мая 2013 в 15:05¤
  14.   0

    Cairin, каким?

    Написала kashtanka-net 21 мая 2013 в 15:07¤
  15.   -2

    kashtanka-net, что каким? Каким способом отнять из семи часов восемь?
    Хотелось бы сначала понять "а зачем". Ибо в отрыве от реальной задачи можно любое извращение предложить реальзовать. Например высрать своё ухо через нос — чем не задача? И даже можно предложить хитрую схему её решения. Только зачем?
    Как правило — необходимость решения такой фигни говорит об изначально неверной постановке задачи.

    Написал(а) Cairin 21 мая 2013 в 15:13¤
  16.   3

    Cairin, да, но если мне, как я там написала, еще надо посчитать разницу между фактическими часами работы и "эталонными"? Причем надо наглядно видеть, сколько человек недо- или переработал в конкретный день.

    Написала Alias2 21 мая 2013 в 15:10¤
  17.   0

    Alias2, так элементарно.
    Дата прихода, дата ухода, разность д2-д1, эталонное время, разность эталон-(д2-д1).

    В датах прихода-ухода отображение времени в полном формате даты (чтобы таблица понимала переход рабочего времени на новый день, не у всех смена в пределы суток попадает). Во времени отработки/эталонном/итоговом отображение времени в формате (часы_без24ограничения) ибо считаем время.
    И всё нормально работает.
    У таблицы один фиг свой внутренний формат датывремени, нужно просто указать ей, чего мы хотим видеть — дату или время.

    s017.radikal.ru/i420/1305/29/e29c7dab3add.png

    Написал(а) Cairin 21 мая 2013 в 15:25¤
  18.   0

    Cairin, (часы_без24ограничения)
    не работает

    Написал(а) chat 21 мая 2013 в 15:28¤
  19.   0

    Cairin, так там будет отображаться отрицательное время?

    Написала Alias2 21 мая 2013 в 15:30¤
  20.   0

    Alias2, будет, гляньте картинку.

    Написал(а) Cairin 21 мая 2013 в 15:30¤
  21.   0

    Cairin, а где на картинке Эксель?

    Написал(а) chat 21 мая 2013 в 15:33¤
  22.   -1

    chat, если excel не работает подобным образом без изменения умолчаний — значит надо реорганизовать работу с данными. Ибо эта галочка когда-нибудь где-нибудь имеет шанс всплыть. Причём вылезет это тогда, когда все забудут о изменённой настройке, и придётся долго и мучительно искать причину — какого чёрта в документе, который связан с кучей других документов что-то не так считается.

    Все данные по прежнему хранить в стандартом формате, с 1900 системой, раз она идёт по умолчанию, а для отображения ячейки переработка/недоработка использовать если(сравнениевремени;текстдляположительного;текстдляотрицательного).
    что-то типа ЕСЛИ(эталоноевремя>=фактическоевремя;ТЕКСТ(эталонное-фактическое; "-ЧЧ:ММ:СС");ТЕКСТ(фактическое-эталонное; "+ЧЧ:ММ:СС"))

    При кажущейся ужасности подобной конструкции подводных камней она несёт меньше, чем изменение системы дат для документа.

    Написал(а) Cairin 21 мая 2013 в 16:27¤
  23.   1

    Если у пользователя свой собственный документ с какими-то временнЫми подсчетами, не связанный ни с какими другими (а это чаще всего так и есть), то как раз уже ваш способ будет костылями. Вы мыслите как разработчик ПО, которому важна совместимость и использование стандартных инструментов, с которыми не нужно держать в голове какую-то доп. инфу по использованию.
    Но обычному пользователю — сюрприз! — реально проще поставить одну галочку, чем ковыряться в формулах и пытаться написать костыль стандартными методами.

    Лично я сам согласен с обеими сторонами, потому что оба метода "правильные", только области применения каждого из них — разные.

    Написал TT 22 мая 2013 в 07:18¤
  24.   1

    Cairin, а как я подсчитаю сумму за месяц? А, матричные функции… Ну хорошо, а если у меня считается время за неделю, потом за месяц, а потом за год?

    Написал Soli 24 мая 2013 в 14:30¤
  25.   0

    Soli, элементарно. Считаете себе спокойно данные (те самые, которые иногда отображаются решётками), они от этих решёток не перестают обрабатываться. А результат выводите с помощью ТЕКСТ.

    Написал(а) Cairin 25 мая 2013 в 07:21¤
  26.   0

    Cairin, у меня 365 дней в году. Некоторые из них — праздничные, некоторые — отпуск, другие — больничные. Но это фигня, просто ноль из нуля вычитается. Другое дело, если у меня при работе больше 6 часов в день должны вычитаться 30 минут перерыва. Или не вычитаться, если человек работал менее 6 часов в этот день.

    Конечно, можно в столбце Г посчитать сумму разности, столбец скрыть, а в столбце Д выводить тот же столбец Г, но в отТЕКСТованном варианте, при этом запомнить, что СЧИТАЮ я столбец Г, а ВИЖУ столбец Д… АХренеть, как читабельность, понятность и простота поиска ошибок ухуйшились…

    Да и совместимость тоже пострадала, причём ещё не понятно, от чего меньше — от изменения системы дат или от таких варварских конструкций…

    Написал Soli 26 мая 2013 в 00:50¤
  27.   0

    Soli, а в чём проблема то?
    Разделять данные и их представление придумали не вчера.
    И называть это варварством как-то дико.
    Даже более дико, чем корячить excel в качестве имитации системы учета рабочего времени. Ладно "на коленке" для трёх калек на краткосрочную задачу это задействовать.
    Но постоянно…

    Написал(а) Cairin 26 мая 2013 в 10:13¤
  28.   1

    Cairin, Вам никогда чужие проекты перенимать не приходилось? А людей обучать работать в каких-либо иных приложениях, кроме того же ворда и Ёкселя? А дебажить ссылки на файл, где дата-время вроде бы считается-отображается верно, но вот с-катина не хочет суммироваться в другом файле: нуль показывает и всё тут… А если файл ещё и защищён, а если формулы расчёта вообще скрыты…

    С другой стороны, единственное варварство с моей точки зрения — это представление отрицательных даты-времени решётками.

    Однако, любое другое решение (в том числе 1904 или введение дополнительных столбиков) является и приемлемым и оправданным с той или иной точки зрения. Но документацию проекту всё равно придётся писать. Хоть так, хоть эдак.

    И это правильно.

    Написал Soli 26 мая 2013 в 23:50¤
  29.   0

    Soli, Да, конструкции дичайшей лапши на 20 защищенных листах с кучей VBA функций, половина которых закрыты паролями и в идеале с переменными типа ttttt и kkk, всё работает, но столько хорошего думаешь о том, кто это писал когда поддерживаешь.

    Я когда про этот хак прочитал тоже подумал как приятно будет потом это кому-то поддерживать.

    Написал Tosser 27 мая 2013 в 09:56¤
  30.   1

    1. для MS Office 2003: Сервис — Параметры — Вычисления.
    2. Таки правда, работает.
    3. (support.microsoft.com/kb/180162/ru) Система дат 1900 и система дат 1904 на сайте Майкрософт. Отсюда хоть стало понятно, о чем вообще речь идет.

    Теперь совет приобрел хоть какую-то приблизительную полноту и осмысленность.
    Осталось разобраться в сути этого колдунства.

    Написал TT 21 мая 2013 в 14:51¤
  31.   1

    TT, Я одно не могу понять, мегахард вообще каким местом думал, что время минус три часа — это ошибка? С какого перепугу???

    Написал Soli 24 мая 2013 в 14:32¤
  32.   2
    Поставил TT 21 мая 2013 в 14:52¤

Незарегистрированные пользователи не могут оставлять комментарии.
Хотите зарегистрироваться? ?