Excel - конвертировать дни чч:мм:сс в минуты (включая отрицательные значения)

Excel - конвертировать дни чч:мм:сс в минуты (включая отрицательные значения)

Данные даны в следующем формате (т.е. дни часы:минуты:секунды):

-4 1:0:0.0

Как преобразовать это в минуты в Excel? (например, 5820 минут)

В настоящее время я разношу текст по столбцам (столбец дней; столбец чч:мм:сс) и делаю =([@Days]+[@Hours])*24*60; но это дает неверное значение, когда дни отрицательные (например, -5700).

Есть ли у кого-нибудь элегантная формула?

решение1

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

=(LEFT(A1,FIND(" ",A1))+MID(A1,FIND(" ",A1)+1,20)*IF(LEFT(A1)="-",-1,1))*1440

В вашем примере это должно дать -5820 — это ожидаемый результат или вы всегда хотите положительное значение?

решение2

Оберните функцию abs вокруг ссылки на ячейку дней. Например, если день был сохранен в A1, замените A1 на abs(A1). Это автоматически вернет число без знака, поэтому отрицательные числа будут возвращены как положительные числа, что позволит функции работать правильно.

Я бы сделал это для вас, но я не знаю, как настроена ваша таблица и какой формат ячеек вы используете. Если бы вы прикрепили (соответствующую часть) вашей таблицы к вашему вопросу (загрузили ее в Dropbox или Mediafire или что-то подобное), то я бы это сделал.

решение3

(Я не понимаю, как Крис использует @ для указания имен столбцов. У меня это не работает. В моем решении каждый столбец представляет собой именованный диапазон (Дни и Часы), а в формуле отображается только имя диапазона.)

Здесь важно отметить, чтообаСтолбцы содержат числа. Столбец «Часы» содержит дробь; поскольку он отформатирован как время, это интерпретируется как дробь 24-часового периода. Это должно быть правдой, иначе формула

 =(Days+Hours)*24*60

не принесет никакой пользы, даже при положительных значениях.

Теперь мы складываем значения, которые всегда либо оба положительные, либо оба отрицательные. Значение Days всегда имеет правильный знак, но значение Hours всегда неотрицательно, даже когда оно должно быть отрицательным. Поэтому нам нужно изменить значение Hours, когда Days отрицательно:

 =(Days+IF(Days>=0,Hours,-Hours))*24*60

Связанный контент