Расчеты в электронной таблице с использованием форматов времени и чисел - PullRequest
0 голосов
/ 16 мая 2019

У меня есть электронная таблица со следующими соответствующими данными:

  |  A   |  B   |  C  |
--|------|------|-----|
1 | Time |Number|Const|
2 |01:00 | 100  |  5  |
3 |01:30 |      |     |
4 |02:00 |      |     |

В этой настройке значения в строке 2 являются статическими.Однако остальные ячейки в столбце B необходимо рассчитать, взяв их смежные значения времени и получив разницу между ними и A2.Разницу в минутах необходимо умножить на постоянную в C2, чтобы получить числовое значение формата.

Сразу же выполнение B3 не будет работать:

=A3 - $A$1 * $C$2

В результате я пытаюсь получить разницу в полчаса в минутах, умноженную на 5, которая должна быть 30 * 5 на 150.

Я подумал, что все будет не так просто,так как мне нужен способ для Calc превратить значение времени в полезное значение.С этой целью я также попробовал следующие формулы:

=TIME(,A3-$A$1,)*$C$2
=TIME(,A3,)-TIME(,$A$1,)*$C$2

Первая дает мне ошибку 502, поэтому я уверен, что это неправильный способ сделать это.Вторая дает мне значение 0, во многом аналогично тому, как выводила самая первая формула без формулы TIME.

Я также пытался использовать формулу TIMEVALUE, но ссылаясь на любую ячейку формата временис этой формулой просто выдает ошибку NAME.

Какие еще способы я могу попытаться сделать?

1 Ответ

1 голос
/ 16 мая 2019

Если ваши значения в столбце A распознаются как времена, это легко для LibreOffice.

Если я наберу 01:00 в ячейке, он распознает его как время и изменит его на 01:00:00

Если вам нужно, чтобы он был отформатирован в точности как 01:00, вы можете щелкнуть правой кнопкой мыши по ячейке и выбрать подходящий формат. В этом случае ячейка выглядит как 01:00, но если вы щелкнете по ней, в строке значения появится надпись 01:00:00

Затем вы можете сделать математику с этими значениями времени. Так =A3-A2 рассчитывается как 00:30:00

Вы могли бы почти использовать функцию MINUTE(), но не можете. MINUTE() будет работать, если все ваши интервалы меньше 1 часа. Бит, если интервал больше часа, тогда MINUTE() дает только минутную его часть (поэтому, если интервал сработает до 01:30, то MINUTE() даст вам 30, что не то, что вы хотите) .

Вместо этого вы фактически используете способ хранения дат. Похоже, что LibreOffice хранит даты точно так же, как Microsoft. Это число с плавающей запятой. Целая часть - дни, часть с плавающей точкой - часть дня.

Так что, если вы щелкнете правой кнопкой мыши по ячейке со значением времени 00:30 и выберете формат / число / общие, будет отображаться 0.208333. Вы можете преобразовать это в минуты, умножив его на 1440 - то есть 24*60 - которое преобразует вашу долю дня в количество минут, которое работает, даже если интервал больше 1 часа.

Таким образом, формула в B3 становится:

=B2 + ((A3-A2)*1440)*$C$2

Вы можете скопировать эту формулу вниз - формат $C$2 означает, что он продолжает ссылаться на ячейку C2. Пропуск $ делает его относительным, поэтому, если вы скопируете его и вставите в B4, LibreOffice изменит его на

=B3+((A4-A3)*1440)*$C$2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...