Auf den Beitrag: (ID: 521003) sind "21" Antworten eingegangen (Gelesen: 6795 Mal).
"Autor"

Excel- Frage

Nutzer: Gast_Zabia
Status: Profiuser
Post schicken
Registriert seit: 20.06.2002
Anzahl Nachrichten: 5679

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"  
Nutzer: imperius
Status: Profiuser
Post schicken
Registriert seit: 10.02.2002
Anzahl Nachrichten: 2998

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"  
Nutzer: MondesNacht
Status: Profiuser
Post schicken
Registriert seit: 07.07.2001
Anzahl Nachrichten: 596

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"  
Nutzer: Gast_Zabia
Status: Profiuser
Post schicken
Registriert seit: 20.06.2002
Anzahl Nachrichten: 5679

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"  
Nutzer: *tbone*
Status: Profiuser
Post schicken
Registriert seit: 28.10.2002
Anzahl Nachrichten: 5398

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"  
Nutzer: MondesNacht
Status: Profiuser
Post schicken
Registriert seit: 07.07.2001
Anzahl Nachrichten: 596

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"  
Nutzer: *tbone*
Status: Profiuser
Post schicken
Registriert seit: 28.10.2002
Anzahl Nachrichten: 5398

geschrieben am: 03.05.2002    um 09:51 Uhr   
bei mir auch, muss aber nicht überall sein deshalb die Definition
  Top
"Autor"  
Nutzer: Gast_Zabia
Status: Profiuser
Post schicken
Registriert seit: 20.06.2002
Anzahl Nachrichten: 5679

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"  
Nutzer: MondesNacht
Status: Profiuser
Post schicken
Registriert seit: 07.07.2001
Anzahl Nachrichten: 596

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"  
Nutzer: Romualdo
Status: Profiuser
Post schicken
Registriert seit: 01.01.2000
Anzahl Nachrichten: 884

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"  
Nutzer: Gast_Zabia
Status: Profiuser
Post schicken
Registriert seit: 20.06.2002
Anzahl Nachrichten: 5679

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"  
Nutzer: Death-Metal
Status: Profiuser
Post schicken
Registriert seit: 20.10.2003
Anzahl Nachrichten: 1960

geschrieben am: 04.05.2002    um 11:42 Uhr   
ich hab garkein Excel mehr
  Top
"Autor"  
Nutzer: Romualdo
Status: Profiuser
Post schicken
Registriert seit: 01.01.2000
Anzahl Nachrichten: 884

geschrieben am: 04.05.2002    um 15:07 Uhr   
Bitte schön
  Top
"Autor"  
Nutzer: Gast_Zabia
Status: Profiuser
Post schicken
Registriert seit: 20.06.2002
Anzahl Nachrichten: 5679

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"  
Nutzer: Doggy
Status: Profiuser
Post schicken
Registriert seit: 01.01.2000
Anzahl Nachrichten: 157

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"  
Nutzer: Gast_Zabia
Status: Profiuser
Post schicken
Registriert seit: 20.06.2002
Anzahl Nachrichten: 5679

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"  
Nutzer: Doggy
Status: Profiuser
Post schicken
Registriert seit: 01.01.2000
Anzahl Nachrichten: 157

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"  
Nutzer: Fendt_Favorit
Status: Profiuser
Post schicken
Registriert seit: 21.08.2001
Anzahl Nachrichten: 2042

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"  
Nutzer: Doggy
Status: Profiuser
Post schicken
Registriert seit: 01.01.2000
Anzahl Nachrichten: 157

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"  
Nutzer: Donkey_Kong
Status: Profiuser
Post schicken
Registriert seit: 20.10.2003
Anzahl Nachrichten: 1252

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"  
Nutzer: Gast_Zabia
Status: Profiuser
Post schicken
Registriert seit: 20.06.2002
Anzahl Nachrichten: 5679

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