"Autor" |
Excel- Frage |
|
geschrieben am: 02.05.2002 um 22:32 Uhr
|
|
Kann mir jemand helfen?
Ich habe ne Exceltabelle.
Dort steht der Arbeitsbeginn, und das Ende der Arbeitszeit. Jedes in einer Spalte. Format: 8:30 z.b.
Ich will die Arbeitsstunden automatisch berechnen lassen.
Wenn ich die Summenformel nehme bekomme ich den Wert 0.67 (für 8h).
kann mir jemand von Euch sagen, welche Formel ich nehme, am besten, hier gleich reinkopieren?
Oder geht das gar nicht?
Mir stinkt das, wenn ich das immer im Kopf ausrechnen muß.
|
|
|
|
|
Top
|
"Autor" |
|
|
geschrieben am: 02.05.2002 um 22:42 Uhr
|
|
würd gern helfen ... um es eventuell konkret reinkopieren zu können sag doch bitte die Feldnamen also
A1 - X1 ist text
B2 - X2 sind Zahleb
A3 - X3 soll die Summe stehn
oder so irgendwie, dann kann ich mal schaun und wenn ich es nich hinbekomm frag ich den Oberadmin im Büro
imp |
Die Signatur befindet sich aus technischen Gründen auf der Rückseite. |
|
|
|
|
Top
|
"Autor" |
|
|
geschrieben am: 03.05.2002 um 00:07 Uhr
|
|
Also, ich gehe mal davon aus, dass in der Spalte A die Anfangszeiten stehen. Also 08:00, 09:30.....
In der Spalte B stehen die Endzeiten, also 08:30, 23:00...
In C1 schreibst du dann "=B1-A1"
Wenn du dieses Kästchen markiert hast, kannst du unten rechts an die Markierung nach unten ziehen, und er kopiert das automatisch in die Zeilen darunter und ändert es automatisch auf "=B2-A2" etc...
In D1 schreibst du dann "=SUMME(C1:C35)", wobei C35 der letzte Eingabewert ist.
Das sollte dich wohl weiter bringen...
Gruß R. |
|
|
|
|
Top
|
"Autor" |
|
|
geschrieben am: 03.05.2002 um 05:44 Uhr
|
|
Die Spalten hab ich als Datumsformat eingegeben.
Und wenn ich eingebe =B1-A1, dann kommt statt 8 h ein Bruch heraus. Nämlich 0,67
Oder bezieht sich der Bruch auf 12 h?
Wie geh ich dann weiter?
Ergebnis durch 12 dividieren, und ich krieg die Stunden?
Geändert am 03.05.2002 um 06:33 Uhr von Zabia |
|
|
|
|
Top
|
"Autor" |
|
|
geschrieben am: 03.05.2002 um 08:26 Uhr
|
|
Du musst die Zelleneigenschaften benutzerdefiniert als [b][rot]hh:mm[/rot][/b] definieren, dann kannst du aus z.B.
A1 (10:30) und B1 (8:30) eine einfache Subraktion machen, schon kommste auf 2 Stunden |
|
|
|
|
Top
|
"Autor" |
|
|
geschrieben am: 03.05.2002 um 09:20 Uhr
|
|
Bei meinem Excel 2000 hat er automatisch erkannt, dass es sich um eine Zeitangabe handelt. |
|
|
|
|
Top
|
"Autor" |
|
|
geschrieben am: 03.05.2002 um 09:51 Uhr
|
|
bei mir auch, muss aber nicht überall sein deshalb die Definition |
|
|
|
|
Top
|
"Autor" |
|
|
geschrieben am: 03.05.2002 um 19:17 Uhr
|
|
Danke!
Ich habs jetzt mal so gemacht:
Anfangszeit und Endzeit in hh:mm. Quer geht die Subtraktion.
Er zeigt mir schön brav die Differenz in Stunden in Spalte J an.
Wenn ich die Spalte J markiere, meldet er mir 181 Stunden.
Als Summe, unten in der Leiste.
Wenn ich dort die Summenformel eingebe =SUMME(J3:J32)
dann wirds wieder chaotisch.
dann schreibt er mir im Summenfeld 13:00 ! Bei Standardzahl schreibt er 7,541667 anstatt 181!
Er rechnet zwar richtig. Wenn ich die ganze Spalte (also mit SUmme markiere, zeigt er mir unten 362 ws korrekt ist.)
[b]Ich brauch also nochmal Hilfe, was ich für ein Format im Summenfeld angebe.[/b]
Ich hab ein altes Excel, ein 97er, das Format hh:mm hab ich bei "benutzerdefiniert" gefunden.
[b]Ãœbrigens Ihr seid Spitze![/b]
Ich könnt ja auch das Summenfeld ohne Formel lassen, und die korrekte Summe hinschreiben, als Standardzahl. Aber eigentlich will ich es richtig machen. Und mir die Tabelle bauen, damit Excel das selber rechnet. Geändert am 03.05.2002 um 19:24 Uhr von Zabia |
|
|
|
|
Top
|
"Autor" |
|
|
geschrieben am: 04.05.2002 um 01:08 Uhr
|
|
Format:
Uhrzeit -> 37:30:55
Aus 7,541666667 sollte dann 181:00:00 werden. |
|
|
|
|
Top
|
"Autor" |
|
|
geschrieben am: 04.05.2002 um 01:38 Uhr
|
|
probier mal das
=TEXT(SUMME(J3:J32);"[h]:mm")
kann man alternativ auch ohne Minuten anzeigen lassen
=TEXT(SUMME(J3:J32);"[h]") |
|
|
|
|
Top
|
"Autor" |
|
|
geschrieben am: 04.05.2002 um 09:14 Uhr
|
|
Super!!!!!
Danke!
Extra Dank an Romualdo, ich hab mich schon geärgert wegen der Sekunden, die er mir anzeigt.
Also muß ich in der Zeit hh:mm formatieren, benutzerdefiniert.
Und in der Summe Uhrzeit, und bei mir heißts 26:30:55.
Und die Summenformel als Text kennzeichnen, dann zeigts mir sogar die Spaltensumme korrekt an! Ein Wahnsinn!!!
Das wollt ich schon seit Jahren wissen!
(Jetzt kann ich sogar meine eigene Arbeitszeit überprüfen! Laß mirnix mehr von der CHefin erzählen, daß sie mir Stunden schenkt!) Geändert am 04.05.2002 um 09:43 Uhr von Zabia |
|
|
|
|
Top
|
"Autor" |
|
|
geschrieben am: 04.05.2002 um 11:42 Uhr
|
|
ich hab garkein Excel mehr |
|
|
|
|
Top
|
"Autor" |
|
|
geschrieben am: 04.05.2002 um 15:07 Uhr
|
|
Bitte schön |
|
|
|
|
Top
|
"Autor" |
|
|
geschrieben am: 04.05.2002 um 20:03 Uhr
|
|
Hihiii, eines sage ich Euch noch.
Es ging in Excel um die Arbeitsstunden meines Freundes. Der hat den unmöglichsten Arbeitgeber. Link ist der, doppel-, dreifachlink. Ich wollte nicht, daß Passion wieder so betrogen wurde, wie im März, da wurden ihm 50(!) Überstunden gekürzt.
Nun hat der Excel mir die Stunden ausgerechnet, und noch mehr Daten. Die legte Passion seinem Arbeitgeber heut vor.
Natürlich hatten die heut wieder was zu bemäkeln daran:
Wir sollen in Zukunft die dienstl. Infos dort weglassen, weil sonst sieht es doof aus, wenn diese Blätter der Steuerberater kriegt! Und wir sollen ihr die Überstunden getrennt von der Normalarbeitszeit machen, weil dann muß sie nicht so viel rechnen, höhööö! Na hab ich ihr die gewünschte Spalte gemacht.
Ist ja auch schwer, jeden Tag 8h abziehen, und das,was überbleibt, dann zusammenzuaddieren, nicht?
Ich habs für uns gemacht, nicht für die Chefin! Ich dachte mir, die macht sich ihre eigene Liste.
Leider muß Passion bei diesem unmöglichen Arbeitgeber bleiben. Es ist seine erste Arbeitsstelle in Österreich. Für Sozialleistungen braucht er aber 12 Monate in 2 Jahren.
Ich danke noch mal!
|
|
|
|
|
Top
|
"Autor" |
|
|
geschrieben am: 04.05.2002 um 22:06 Uhr
|
|
(zitat)Hihiii, eines sage ich Euch noch.
Es ging in Excel um die Arbeitsstunden meines Freundes. Der hat den unmöglichsten Arbeitgeber. Link ist der, doppel-, dreifachlink. Ich wollte nicht, daß Passion wieder so betrogen wurde, wie im März, da wurden ihm 50(!) Überstunden gekürzt.
Nun hat der Excel mir die Stunden ausgerechnet, und noch mehr Daten. Die legte Passion seinem Arbeitgeber heut vor.
Natürlich hatten die heut wieder was zu bemäkeln daran:
Wir sollen in Zukunft die dienstl. Infos dort weglassen, weil sonst sieht es doof aus, wenn diese Blätter der Steuerberater kriegt! Und wir sollen ihr die Überstunden getrennt von der Normalarbeitszeit machen, weil dann muß sie nicht so viel rechnen, höhööö! Na hab ich ihr die gewünschte Spalte gemacht.
Ist ja auch schwer, jeden Tag 8h abziehen, und das,was überbleibt, dann zusammenzuaddieren, nicht?
Ich habs für uns gemacht, nicht für die Chefin! Ich dachte mir, die macht sich ihre eigene Liste.
Leider muß Passion bei diesem unmöglichen Arbeitgeber bleiben. Es ist seine erste Arbeitsstelle in Österreich. Für Sozialleistungen braucht er aber 12 Monate in 2 Jahren.
Ich danke noch mal!
(/zitat)
Warum Excel nimm doch Access ist doch einfacher
mfg Doggy |
|
|
|
|
Top
|
"Autor" |
|
|
geschrieben am: 04.05.2002 um 22:41 Uhr
|
|
Ogott, ich habs mehrmals mit Access verscuht, wollte nur einige Daten eingeben.
Ich habs in die Ecke geschmissen, bin schon bei der österr. PLZ hängengeblieben.
Habs einmal gefunden, wie mans verstellt auf vierstellig, und dann wars aus.
Nie wieder. Excel reicht!
Übrigens, Doggy, winke, winke. Freut mich, wennst einmal wieder da bist. Ich hoffe, es läuft bei Dir!? |
|
|
|
|
Top
|
"Autor" |
|
|
geschrieben am: 05.05.2002 um 04:44 Uhr
|
|
Danke mir gehts gut.
Bzw Super habe nun nen Super Job bekommen (Mit Ausbildung)
da kann es einem ja nur noch super gehen oder.
Mfg Doggy |
|
|
|
|
Top
|
"Autor" |
|
|
geschrieben am: 09.05.2002 um 13:17 Uhr
|
|
Ich hab noch etwas zu Excel, falls du sowas brauchst:
Link
Fendt |
Die Liebe heilt alle Wunden. |
|
|
|
|
Top
|
"Autor" |
|
|
geschrieben am: 09.05.2002 um 17:42 Uhr
|
|
VBA-Bibliothek: Rechnen mit Werk- und Arbeitstagen
Hier ne kleine Hilfe für Access und Werk und Arbeitstage Berechnung
Function IstWerktag(dtTag As Variant) As Boolean
dtTag = CDate(dtTag) 'Strings ggf. nach Date konvertieren
IstWerktag = (WeekDay(dtTag) <> vbSunday And WeekDay(dtTag) <> vbSaturday)
End Function
Function IstWochenende(dtTag As Variant) As Boolean
dtTag = CDate(dtTag) 'Strings ggf. nach Date konvertieren
IstWochenende = (WeekDay(dtTag) = vbSunday Or WeekDay(dtTag) = vbSaturday)
End Function
Function IstArbeitstag(dtTag As Variant) As Boolean
Dim db As Database
Dim rs As Recordset
Dim strSQL As String
Dim sngFeiertage As Single
dtTag = CDate(dtTag) 'Strings ggf. nach Date konvertieren
'Wochenende prüfen - wenn ja, gleich wieder raus...
If WeekDay(dtTag) = vbSunday Or WeekDay(dtTag) = vbSaturday Then
IstArbeitstag = False
Exit Function
End If
'Ansonsten weitere Prüfungen anhand Tabelle 'Feiertage'
Set db = CurrentDb()
strSQL = "select distinctrow Sum([FTFaktor]) AS [AnzFeiertage] from Feiertage "
strSQL = strSQL & "where [FTDatum] = #" & Format$(dtTag, "mm-dd-yyyy") & "#"
Set rs = db.OpenRecordset(strSQL)
On Error Resume Next
sngFeiertage = rs("AnzFeiertage")
If Err <> 0 Then 'Nichts gefunden
IstArbeitstag = True
Else
IstArbeitstag = False
End If
rs.Close
End Function
Function AnzahlWerktage(dtVon As Variant, dtBis As Variant) As Long
Dim dtErsterTag As Date
Dim dtLetzterTag As Date
Dim dtTempDatum As Date
Dim lngAnzTage As Long
Dim intVorZurueck As Integer
'Strings ggf. nach Date konvertieren...
dtVon = CDate(dtVon)
dtBis = CDate(dtBis)
'Ersten und letzten Tag, Flag für vor-/rückwärts setzen...
If dtVon < dtBis Then
dtErsterTag = dtVon
dtLetzterTag = dtBis
intVorZurueck = 1
Else
dtErsterTag = dtBis
dtLetzterTag = dtVon
intVorZurueck = -1
End If
'Anzahl Tage Brutto ermitteln...
lngAnzTage = DateDiff("d", dtErsterTag, dtLetzterTag) + 1
'Davon die Wochenenden Sa/So abziehen...
dtTempDatum = CDate(dtErsterTag)
While dtTempDatum <= dtLetzterTag
'Sa/So ggf. ausklammern...
If WeekDay(dtTempDatum) = vbSunday Or WeekDay(dtTempDatum) = vbSaturday Then
lngAnzTage = lngAnzTage - 1
End If
dtTempDatum = dtTempDatum + 1
Wend
'Funktionsergebnis setzen...
AnzahlWerktage = intVorZurueck * lngAnzTage
Abschließend setzen wir das Funktionsergebnis unter Berücksichtigung des »Vorwärts/Rückwärts«-Kennzeichens.
Die Funktion »AnzahlArbeitstage()«
Function AnzahlArbeitstage(dtVon As Variant, dtBis As Variant) As Single
Dim db As Database
Dim rs As Recordset
Dim strSQL As String
Dim sngWerktageGesamt As Single
Dim sngFeiertage As Single
'Strings ggf. nach Date konvertieren...
dtVon = CDate(dtVon)
dtBis = CDate(dtBis)
'Anzahl Werktage gesamt ermitteln...
sngWerktageGesamt = AnzahlWerktage(dtVon, dtBis)
'Davon Feiertage abziehen...
Set db = CurrentDb()
strSQL = "select distinctrow Sum([FTFaktor]) AS [AnzFeiertage] from Feiertage "
If dtVon <= dtBis Then
strSQL = strSQL & "where [FTDatum] >= #" & Format$(dtVon, "mm-dd-yyyy") & _
"# And [FTDatum] <= #" & Format$(dtBis, "mm-dd-yyyy") & "#"
Else
strSQL = strSQL & "where [FTDatum] >= #" & Format$(dtBis, "mm-dd-yyyy") & _
"# And [FTDatum] <= #" & Format$(dtVon, "mm-dd-yyyy") & "#"
End If
On Error Resume Next
Set rs = db.OpenRecordset(strSQL)
If Err = 0 Then
sngFeiertage = rs("AnzFeiertage")
Else
sngFeiertage = 0
End If
rs.Close
AnzahlArbeitstage = sngWerktageGesamt ? sngFeiertage
Urlaubstermine prüfen
Sub UrlaubPruefen(dtVon As Date, dtBis As Date, intResturlaub As Integer)
Dim intArbeitstage As Integer
Dim strMsg As String
intArbeitstage = AnzahlArbeitstage("15.11.2000", "8.12.2000")
strMsg = "Anzahl Arbeitstage vom " & dtVon & " bis " & dtBis & ": " & _
CStr(intWerktage) & vbCrLf & vbCrLf
If intArbeitstage > intResturlaub Then
strMsg = strMsg & "!!! Nicht genug Resturlaub !!!"
Else
strMsg = strMsg & "Urlaub OK..."
End If
MsgBox strMsg, vbOKOnly + vbInformation, "Urlaub prüfen:"
End Sub
(ist doch mehr als einfach oder)
mfg Doggy |
|
|
|
|
Top
|
"Autor" |
|
|
geschrieben am: 09.05.2002 um 19:15 Uhr
|
|
(zitat)VBA-Bibliothek: Rechnen mit Werk- und Arbeitstagen
Hier ne kleine Hilfe für Access und Werk und Arbeitstage Berechnung
Function IstWerktag(dtTag As Variant) As Boolean
dtTag = CDate(dtTag) 'Strings ggf. nach Date konvertieren
IstWerktag = (WeekDay(dtTag) <> vbSunday And WeekDay(dtTag) <> vbSaturday)
End Function
Function IstWochenende(dtTag As Variant) As Boolean
dtTag = CDate(dtTag) 'Strings ggf. nach Date konvertieren
IstWochenende = (WeekDay(dtTag) = vbSunday Or WeekDay(dtTag) = vbSaturday)
End Function
Function IstArbeitstag(dtTag As Variant) As Boolean
Dim db As Database
Dim rs As Recordset
Dim strSQL As String
Dim sngFeiertage As Single
dtTag = CDate(dtTag) 'Strings ggf. nach Date konvertieren
'Wochenende prüfen - wenn ja, gleich wieder raus...
If WeekDay(dtTag) = vbSunday Or WeekDay(dtTag) = vbSaturday Then
IstArbeitstag = False
Exit Function
End If
'Ansonsten weitere Prüfungen anhand Tabelle 'Feiertage'
Set db = CurrentDb()
strSQL = "select distinctrow Sum([FTFaktor]) AS [AnzFeiertage] from Feiertage "
strSQL = strSQL & "where [FTDatum] = #" & Format$(dtTag, "mm-dd-yyyy") & "#"
Set rs = db.OpenRecordset(strSQL)
On Error Resume Next
sngFeiertage = rs("AnzFeiertage")
If Err <> 0 Then 'Nichts gefunden
IstArbeitstag = True
Else
IstArbeitstag = False
End If
rs.Close
End Function
Function AnzahlWerktage(dtVon As Variant, dtBis As Variant) As Long
Dim dtErsterTag As Date
Dim dtLetzterTag As Date
Dim dtTempDatum As Date
Dim lngAnzTage As Long
Dim intVorZurueck As Integer
'Strings ggf. nach Date konvertieren...
dtVon = CDate(dtVon)
dtBis = CDate(dtBis)
'Ersten und letzten Tag, Flag für vor-/rückwärts setzen...
If dtVon < dtBis Then
dtErsterTag = dtVon
dtLetzterTag = dtBis
intVorZurueck = 1
Else
dtErsterTag = dtBis
dtLetzterTag = dtVon
intVorZurueck = -1
End If
'Anzahl Tage Brutto ermitteln...
lngAnzTage = DateDiff("d", dtErsterTag, dtLetzterTag) + 1
'Davon die Wochenenden Sa/So abziehen...
dtTempDatum = CDate(dtErsterTag)
While dtTempDatum <= dtLetzterTag
'Sa/So ggf. ausklammern...
If WeekDay(dtTempDatum) = vbSunday Or WeekDay(dtTempDatum) = vbSaturday Then
lngAnzTage = lngAnzTage - 1
End If
dtTempDatum = dtTempDatum + 1
Wend
'Funktionsergebnis setzen...
AnzahlWerktage = intVorZurueck * lngAnzTage
Abschließend setzen wir das Funktionsergebnis unter Berücksichtigung des »Vorwärts/Rückwärts«-Kennzeichens.
Die Funktion »AnzahlArbeitstage()«
Function AnzahlArbeitstage(dtVon As Variant, dtBis As Variant) As Single
Dim db As Database
Dim rs As Recordset
Dim strSQL As String
Dim sngWerktageGesamt As Single
Dim sngFeiertage As Single
'Strings ggf. nach Date konvertieren...
dtVon = CDate(dtVon)
dtBis = CDate(dtBis)
'Anzahl Werktage gesamt ermitteln...
sngWerktageGesamt = AnzahlWerktage(dtVon, dtBis)
'Davon Feiertage abziehen...
Set db = CurrentDb()
strSQL = "select distinctrow Sum([FTFaktor]) AS [AnzFeiertage] from Feiertage "
If dtVon <= dtBis Then
strSQL = strSQL & "where [FTDatum] >= #" & Format$(dtVon, "mm-dd-yyyy") & _
"# And [FTDatum] <= #" & Format$(dtBis, "mm-dd-yyyy") & "#"
Else
strSQL = strSQL & "where [FTDatum] >= #" & Format$(dtBis, "mm-dd-yyyy") & _
"# And [FTDatum] <= #" & Format$(dtVon, "mm-dd-yyyy") & "#"
End If
On Error Resume Next
Set rs = db.OpenRecordset(strSQL)
If Err = 0 Then
sngFeiertage = rs("AnzFeiertage")
Else
sngFeiertage = 0
End If
rs.Close
AnzahlArbeitstage = sngWerktageGesamt ? sngFeiertage
Urlaubstermine prüfen
Sub UrlaubPruefen(dtVon As Date, dtBis As Date, intResturlaub As Integer)
Dim intArbeitstage As Integer
Dim strMsg As String
intArbeitstage = AnzahlArbeitstage("15.11.2000", "8.12.2000")
strMsg = "Anzahl Arbeitstage vom " & dtVon & " bis " & dtBis & ": " & _
CStr(intWerktage) & vbCrLf & vbCrLf
If intArbeitstage > intResturlaub Then
strMsg = strMsg & "!!! Nicht genug Resturlaub !!!"
Else
strMsg = strMsg & "Urlaub OK..."
End If
MsgBox strMsg, vbOKOnly + vbInformation, "Urlaub prüfen:"
End Sub
(ist doch mehr als einfach oder)
mfg Doggy(/zitat)
Aha |
|
|
|
|
Top
|
"Autor" |
|
|
geschrieben am: 09.05.2002 um 21:50 Uhr
|
|
Lol
Wow!
Bin beeindruckt.
ist mir aber ein klein wenig zu hoch!
Ich gebs zu. |
|
|
|
|
Top
|