Mam arkusz programu Excel, w którym w niektórych kolumnach mam komórki typu integer,integerM
lub integer,integerH
, na przykład 1,30m
lub 5,2H
. Dla całej kolumny chciałbym uzyskać wyrażenie sprawdzające dla każdej komórki kolumny, czy w drugiej liczbie całkowitej znajdują się H
(godziny) lub m
(minuty), i w takim przypadku oblicza całkowitą liczbę godzin (wartość zmiennoprzecinkowa) dla wszystkich tych drugich liczby całkowite w kolumnie.
Na przykład, jeśli mamy jedną kolumnę z czterema komórkami:
1,30m
5,2H
3,20m
4,1H
Łączna suma wynosiłaby:
30m + 2H + 20m + 1H = 0.5 + 2 + 0.33333 + 1 = 3.83333 H
Jak można to zrobić?
microsoft-excel
worksheet-function
date-time
Otwórz drogę
źródło
źródło
Odpowiedzi:
Załóżmy, że twoja pierwsza komórka to A2 i możesz umieścić obliczenia w dowolnej kolumnie po prawej stronie.
=MID(A2,SEARCH(",",A2)+1,99)
(znajduje rzeczy po przecinku)=VALUE(LEFT(B2,LEN(B2)-1))
(wyodrębnia liczbę przed „h” lub „m”)=LOWER(RIGHT(B2,1))
(wyodrębnia „h” lub „m”) (chociaż nie potrzebujeszLOWER
- patrz komentarz Scotta)=IF(D2="m",C2/60,IF(D2="h",C2,""))
(oblicza liczbę godzin)Następnie możesz zsumować kolumnę E.
Możesz umieścić to w jednej komórce i mieć długą formułę, ale łatwiej jest debugować i zapisać powtarzanie się w formule.
źródło
LOWER()
- porównanie tekstu w programie Excel nie rozróżnia wielkości liter, chyba że używaszEXACT()
.EXACT()
. Każdy dzień jestOdpowiedź benshepherda jest dobra, +1 ode mnie. Jeśli chciałeś zmienić konfigurację danych, pomyślałem, że zostawię inną odpowiedź, która może być przydatna dla kogoś.
,
h
im
zrobię kolejny tekst do kolumn o stałej szerokości, przeciągając znaki nienumeryczne do następnej komórki.=IF(C1="h",B1,IF(C1="m",B1/60,0))
i zsumować tę kolumnęźródło