![]() |
Anzeige:
|
|
|||||||
| Office-Anwendungen Das Forum für alle Office-Anwendungen wie z.B. Open-Office, Microsoft-Office (Word, Excel, Powerpoint, Access usw.) und Co. |
|
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
|
#1 (Direktlink) |
|
Gast
Beiträge: n/a
|
Hallo arbeite im Verkauf und will mit Excel meine Provision errrechnen
Bspiel Montag hatte ich 2 Verkäufe Dienstag hatte ich 2 Verkäufe Mittwoch hatte ich 6 Verkäufe Donnerstag hatte ich2 Verkäufe Freitag hatte ich 5 Verkäufe Ab 4 erhalte ich Provision X, alles was weniger wie 4 ist 0 Proovision Ab 5 bekomme ich Provision y Undwenn ich Wochenziel von 16 errreiche bekomme ich jeden bezahlt zur Proviosion x, ausser an den Tagen, wo ich 5 hatte bekomme ich die ersten 4 mit x und ab 5 mit y €. Wie gebe ich das in die Formel. Was ist ein SVerweis? Geht das mit Summewenn oder mit Sverweis? Bitte um Hilfe!!! |
|
|
|
|
#2 (Direktlink) |
|
Dauergast
Registriert seit: 28.11.2008
Beiträge: 1.197
|
schau dir die Formeln mit
"WENN" ;"UND"; "ODER" an die kann man auch kombinieren |
|
|
|
|
|
#3 (Direktlink) | |
|
MoRoGeP-Träger 2010
![]() Registriert seit: 16.09.2004
Ort: Norddeutschland
Alter: 49
Beiträge: 12.124
|
Den Satz:
Zitat:
Versuch's noch mal, und gib Dir bitte mehr Mühe! (Du willst ja auch eine präzise, vollständige und richtige Antwort - dann must Du auch Deine Frage genau so stellen!!) Rabe
__________________
Computer setzen logisches Denken fort! Unlogisches auch.... |
|
|
|
|
|
|
#4 (Direktlink) |
|
Weiß worum´s geht
![]() Registriert seit: 23.11.2008
Beiträge: 102
|
Hallo Community
Vielleicht das es so gemeint war Wochenziel >15 prov 1 eur,ausser an den Tagen >4,die ersten 4 mit 1 eur ab 5 mit 2 eur <4=0 prov 0 eur =4 prov 1 eur >4 prov 2 eur Eine nicht uninteressante Fragestellung die es in sich hat ![]() Liebe grüße euer Tanto Geändert von Tanto (07.03.2010 um 09:21 Uhr) |
|
|
|
|
|
#5 (Direktlink) |
|
Weiß worum´s geht
![]() Registriert seit: 23.11.2008
Beiträge: 102
|
Hallo Community
Eine Makrolösung ist in Arbeit Liebe Grüße Tanto |
|
|
|
|
|
|
#6 (Direktlink) |
|
Weiß worum´s geht
![]() Registriert seit: 23.11.2008
Beiträge: 102
|
Hallo Community
Erster Versuch Liebe Grüße Tanto Code:
'Spalte A Datum 'Spalte B Anzahl 'Spalte E ab 2 Zeile abwärts die Monatsergebnisse 'Kalenderwochenfunction ist durch aktivierte Addinn Function ersetzbar Code:
Sub ProvisionA()
Range("E2:E13").Clear
Dim IndexA As Integer, Zindex As Integer, WochenT As Integer, Wtage As Integer
Dim Lzeile As Long, ZeilenAnz As Long
Lzeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
ReDim Arrayab(Lzeile, 2) As Variant
Dim DatSort(52, 7) As Integer
Arrayab() = Range(Cells(1, 1), Cells(Lzeile, 2))
For WochenT = 1 To 52
For ZeilenAnz = 2 To Lzeile
If EKalenderWoche(CStr(Arrayab(ZeilenAnz, 1))) = WochenT And Arrayab(ZeilenAnz, 1) <> "" Then
Zindex = ZeilenAnz
IndexA = IndexA + 1
DatSort(WochenT, IndexA) = Arrayab(ZeilenAnz, 2)
DatSort(WochenT, 0) = DatSort(WochenT, 0) + Arrayab(ZeilenAnz, 2)
End If
If ZeilenAnz = Lzeile And Zindex > 0 Then
If DatSort(WochenT, 0) > 15 Then
For Wtage = 1 To 7
If DatSort(WochenT, Wtage) < 5 Then
Cells(Month(CStr(Arrayab(Zindex, 1))) + 1, 5) = Cells(Month(CStr(Arrayab(Zindex, 1))) + 1, 5) + DatSort(WochenT, Wtage)
End If
If DatSort(WochenT, Wtage) > 4 Then
Cells(Month(CStr(Arrayab(Zindex, 1))) + 1, 5) = Cells(Month(CStr(Arrayab(Zindex, 1))) + 1, 5) + 4
Cells(Month(CStr(Arrayab(Zindex, 1))) + 1, 5) = Cells(Month(CStr(Arrayab(Zindex, 1))) + 1, 5) + (DatSort(WochenT, Wtage) - 4) * 2
End If
Next Wtage
End If
End If
Next ZeilenAnz
IndexA = 0
Next WochenT
End Sub
Code:
Function EKalenderWoche(Edatum As Date) As Integer
EKalenderWoche = (Edatum - DateSerial(Year(Edatum + (8 - Weekday(d)) Mod 7 - 3), 1, 1) - 3 + (Weekday(DateSerial(Year(Edatum + (8 - Weekday(d)) Mod 7 - 3), 1, 1)) + 1) Mod 7) \ 7 + 1
End Function
|
|
|
|
|
|
#7 (Direktlink) |
|
Weiß worum´s geht
![]() Registriert seit: 23.11.2008
Beiträge: 102
|
Hallo Community
Ein wenig optimiert,jetzt dürfte es nur noch Feinarbeit der Berechnung sein Liebe Grüße euer Tanto Die Provisionsangaben sind nun besser zu sehen Vorrausgesetz das jedes Datum nur einmal vorkommt Hier kommen zwei in ein verschachtelten For Next Schleifen zum Einsatz Über ein Array werden die Kalenderwochen sortiert und erfasst Die nun erfassten Wochendaten werden ausgehend von 7 Tagen Summiert Die Function Month dient nach der Summierung der Einsortierung zu den Monaten Ausgabe ist nun die Monatliche Provision von allen erfasten Jahresdaten Bei den If Then abfragen sieht man den Berechnungsweg,wie >15,>4,<5 Wochentagbeginn wie Ende ist bei der Kalenderwochenfunction anzugeben Neue Kalenderwochenfunction oder auch Addins sind duch Functionsaustausch leicht anpassbar Code:
Sub ProvisionA()
Dim ProvA As Long, ProvB As Long
ProvA = 4
ProvB = 5
Range("E2:E13").Clear
Dim IndexA As Integer, Zindex As Integer, WochenT As Integer, Wtage As Integer
Dim Lzeile As Long, ZeilenAnz As Long
Lzeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
ReDim Arrayab(Lzeile, 2) As Variant
Dim Arraymon(1 To 12, 1 To 1) As Variant
Dim DatSort(52, 7) As Integer
Arrayab() = Range(Cells(1, 1), Cells(Lzeile, 2))
For WochenT = 1 To 52
For ZeilenAnz = 2 To Lzeile
If EKalenderWoche(CStr(Arrayab(ZeilenAnz, 1))) = WochenT And Arrayab(ZeilenAnz, 1) <> "" Then
Zindex = ZeilenAnz
IndexA = IndexA + 1
DatSort(WochenT, IndexA) = Arrayab(ZeilenAnz, 2)
DatSort(WochenT, 0) = DatSort(WochenT, 0) + Arrayab(ZeilenAnz, 2)
End If
If ZeilenAnz = Lzeile And Zindex > 0 Then
If DatSort(WochenT, 0) > 15 Then
For Wtage = 1 To 7
If DatSort(WochenT, Wtage) < 5 Then
Arraymon(Month(CStr(Arrayab(Zindex, 1))), 1) = Arraymon(Month(CStr(Arrayab(Zindex, 1))), 1) + ProvA * DatSort(WochenT, Wtage)
End If
If DatSort(WochenT, Wtage) > 4 Then
Arraymon(Month(CStr(Arrayab(Zindex, 1))), 1) = Arraymon(Month(CStr(Arrayab(Zindex, 1))), 1) + ProvB * DatSort(WochenT, Wtage) - 4
End If
Next Wtage
End If
End If
Next ZeilenAnz
Zindex = 0
IndexA = 0
Next WochenT
Range("E2:E13").Resize(UBound(Arraymon())) = Arraymon()
End Sub
Code:
Function EKalenderWoche(Edatum As Date) As Integer
EKalenderWoche = (Edatum - DateSerial(Year(Edatum + (8 - Weekday(d)) Mod 7 - 3), 1, 1) - 3 + (Weekday(DateSerial(Year(Edatum + (8 - Weekday(d)) Mod 7 - 3), 1, 1)) + 1) Mod 7) \ 7 + 1
End Function
Geändert von Tanto (13.03.2010 um 07:20 Uhr) |
|
|
|
![]() |
|
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Workstation für 3D-Berechnung | efendi | Hardware - Kaufempfehlungen | 4 | 28.01.2010 11:30 |
| Excel zu dumm oder ich? (Stunden(lohn)berechnung) | Youkai | Office-Anwendungen | 9 | 06.10.2007 14:48 |
| speicherplatz berechnung | Tim25 | Allgemein | 1 | 14.02.2007 19:27 |
| Excel - Bedingte Berechnung / =wenn(und... | Urs der Bär | Office-Anwendungen | 2 | 09.01.2007 11:24 |
| Excel / Formel zur Berechnung der Geschwindigkeit | Goebi | Office-Anwendungen | 1 | 04.08.2005 23:54 |