Supportnet / Forum / Tabellenkalkulation
Zählen???
Frage
Hallo,
ich hoffe ihr könnt mir ein Makro oder eine Formel empfählen. Ist folgendes Machbar?
habe eine Datenbank mit ca. 10000 Datensätzen.
in Spalte A steht Mitarbeiter nummer(Duplikate sind vorhanden).
Spalte B Stehen Arten der Aufträge und in C sind Aufträge.
z.b. Mitarbeiter 239 hat Auftragsart 100 und Auftrag 8373 und
Mitarbeiter 239 hat Auftragsart 100 und Auftrag 8473 usw.
es ist so dass auftrag immer nur einmal vorkommt und Auftragsart kann genauso wie Mitarbeiter mehrfach vorkommen.
Würde gerne in eine andere Tabelle dann raussuchen lassen wieviele unterschiedliche Auftragsarten und Aufträge es zu dem Mitarbeiter gibt.
ist sowas machbar?? Danke.
Antwort 1 von TeX
Hi Sftefee
Ich weiß jetzt nicht aus dem Kopf wie das geht, aber die Funktion ZÄHLENWENN in Excel hilft Dir da sicher weiter.
Einfach mal in der Hilfe nach ZÄHLENWENN suchen und das dortige Beispiel nachvollziehen.
Ansonsten könnte man sich auch ein Makro schreiben, welches dann in einer Extra-Tabelle oder Extra-Sheet gleich die gewünschten Ausgaben auflistet, aber vielleicht reicht ja der obige Lösungsvorschlag.
Gruß TeX
Ich weiß jetzt nicht aus dem Kopf wie das geht, aber die Funktion ZÄHLENWENN in Excel hilft Dir da sicher weiter.
Einfach mal in der Hilfe nach ZÄHLENWENN suchen und das dortige Beispiel nachvollziehen.
Ansonsten könnte man sich auch ein Makro schreiben, welches dann in einer Extra-Tabelle oder Extra-Sheet gleich die gewünschten Ausgaben auflistet, aber vielleicht reicht ja der obige Lösungsvorschlag.
Gruß TeX
Antwort 2 von Sftefee
Hi Tex,
ich habe shcon mit allem probiert.
Die Formal DBAnzahl macht schon das was ich will, aber zählt auch die dublikate die ich habe mit.. denn es gibt ja mehrerer Aufträge die die gleiche auftragsart haben.
muss nur noch dieses Problem lösen eigentlich. kann man das mit dem makro lösen?
denn ich hab z.b. zu einer Mitarbeiternummer 290 Aufträge aber er zeigt mir dann auch 290 Auftragsarten an. aber ich weis das es weniger sind.
Danke
ich habe shcon mit allem probiert.
Die Formal DBAnzahl macht schon das was ich will, aber zählt auch die dublikate die ich habe mit.. denn es gibt ja mehrerer Aufträge die die gleiche auftragsart haben.
muss nur noch dieses Problem lösen eigentlich. kann man das mit dem makro lösen?
denn ich hab z.b. zu einer Mitarbeiternummer 290 Aufträge aber er zeigt mir dann auch 290 Auftragsarten an. aber ich weis das es weniger sind.
Danke
Antwort 3 von piano
Hallo
Probier eine Pivot-Tabelle:
Mitarbeiter nach Zeile / Spalte (- je nach Bedarf)
Auftragsart nach Spalte / Zeile
Auftragsnummer nach Daten und Formel "Anzahl" wählen.
Gruß piano
Es wäre nett, wenn Du ein Feedback abgeben könntest,
ob der Lösungsvorschlag Dein Problem gelöst hat.
- probieren geht über studieren -
Probier eine Pivot-Tabelle:
Mitarbeiter nach Zeile / Spalte (- je nach Bedarf)
Auftragsart nach Spalte / Zeile
Auftragsnummer nach Daten und Formel "Anzahl" wählen.
Gruß piano
Es wäre nett, wenn Du ein Feedback abgeben könntest,
ob der Lösungsvorschlag Dein Problem gelöst hat.
- probieren geht über studieren -
Antwort 4 von Sftefee
Danke piano,
aber kann es sein, dass der pc probleme damit hat, da es so viele Datensätze sind.
Der bringt mir nur ein leerestabellenblatt.
aber kann es sein, dass der pc probleme damit hat, da es so viele Datensätze sind.
Der bringt mir nur ein leerestabellenblatt.
Antwort 5 von piano
Hallo
An der Anzahl Datensätze kann es nicht liegen, aber die Anzahl der Mitarbeiter / Auftragsarten könnte ein Problem sein. Hast du es mit einer kleinen Menge deiner Daten versucht?
Ausserdem sollte die Tabelle nach Mitarbeiter und Auftragsart sortiert sein.
Gruß piano
PS: VBA-Lösung ist auch möglich, melde dich aber vorher!
An der Anzahl Datensätze kann es nicht liegen, aber die Anzahl der Mitarbeiter / Auftragsarten könnte ein Problem sein. Hast du es mit einer kleinen Menge deiner Daten versucht?
Ausserdem sollte die Tabelle nach Mitarbeiter und Auftragsart sortiert sein.
Gruß piano
PS: VBA-Lösung ist auch möglich, melde dich aber vorher!
Antwort 6 von CaroS
Hallo,
ich hätte hier eine Formel-Lösung, allerdings mit Einschränkungen. Es geht nur für max. 249 Mitarbeiter. 3 Hilfsspalten habe ich verbaut, 2 Formeln müssen bis zur letzten benutzten Zeile runterkopiert werden (ca. 10000) und das Ergebnis ist auch nur eine wahrscheinlich ziemlich große (und in der Praxis wahrscheinlich auch ziemlich leere) Kreuztabelle horz-Mitarbeiter / vert-Auftragsart mit der jeweiligen Anzahl an Aufträgen je Mitarbeiter und Auftragsart. Das meiste werden wohl Null- bzw. Leerwerte sein. Ein Beispiel sagt mehr als 1000 Worte:
Werte:
A1: Spaltenüberschrift MA-Nr
B1: Spaltenüberschrift A-Art
C1: Spaltenüberschrift A-Nr
A2:A9999 MA-Nummern (auch nichtnumerisch möglich)
B2:B9999 Art.-Arten (auch nichtnumerisch möglich)
C2:C9999 Art.-Nummern (auch nichtnumerisch möglich)
Formeln:
von:bis eintragen in Zelle: =Formel
D2:D9999 D2: =WENN(ZÄHLENWENN(A$2:A2;A2)=1;ZEILE(A2);"")
E2:E249 (maximal) E2: =WENN(ZEILE(D2)-1>ANZAHL(D:D);"";INDEX(A$2:A$9999;KKLEINSTE(D$2:D$9999;ZEILE(2:2)-1)))
F2:F9999 F2: =WENN(ZÄHLENWENN(B$2:B2;B2)=1;ZEILE(B2);"")
G2:G1000 G2: =WENN(ZEILE(F2)-1>ANZAHL(F:F);"";INDEX(B$2:B$9999;KKLEINSTE(F$2:F$9999;ZEILE(2:2)-1)-1))
H1:IV1 markieren und als Matrixformel eingeben: {=MTRANS(E$2:E$4)}
H2 markieren und als Matrixformel eingeben: {=SUMMENPRODUKT(($A$2:$A$9999=H$1)*($B$2:$B$19=$G2))}
H2 markieren und kopieren/ziehen nach H2:IV1000
H2:IV1000 benutzerdefiniertes Zahlenormat "0;;;@"
H:IV Spaltenbreite anpassen, Spalten D:F verbergen
Das war´s, Freunde der Formelprogrammierung, 6 kleine Formeln, ist doch gar nicht sooo schlimm! Aber mit VBA geht natürlich noch viel mehr und viel bequemer.
Gruß,
CaroS
ich hätte hier eine Formel-Lösung, allerdings mit Einschränkungen. Es geht nur für max. 249 Mitarbeiter. 3 Hilfsspalten habe ich verbaut, 2 Formeln müssen bis zur letzten benutzten Zeile runterkopiert werden (ca. 10000) und das Ergebnis ist auch nur eine wahrscheinlich ziemlich große (und in der Praxis wahrscheinlich auch ziemlich leere) Kreuztabelle horz-Mitarbeiter / vert-Auftragsart mit der jeweiligen Anzahl an Aufträgen je Mitarbeiter und Auftragsart. Das meiste werden wohl Null- bzw. Leerwerte sein. Ein Beispiel sagt mehr als 1000 Worte:
Ergebnis: | MA4 | MA2 | MA5
----------+-----+-----+-----
AuftrArt1 | _72 | ___ | __6
----------+-----+-----+-----
AuftrArt8 | ___ | 143 | __2
----------+-----+-----+-----
AuftrArt5 | __9 | _18 | 355
----------+-----+-----+-----
AuftrArt2 | ___ | ___ | _64
----------+-----+-----+-----
AuftrArt9 | _12 | ___ | ___Werte:
A1: Spaltenüberschrift MA-Nr
B1: Spaltenüberschrift A-Art
C1: Spaltenüberschrift A-Nr
A2:A9999 MA-Nummern (auch nichtnumerisch möglich)
B2:B9999 Art.-Arten (auch nichtnumerisch möglich)
C2:C9999 Art.-Nummern (auch nichtnumerisch möglich)
Formeln:
von:bis eintragen in Zelle: =Formel
D2:D9999 D2: =WENN(ZÄHLENWENN(A$2:A2;A2)=1;ZEILE(A2);"")
E2:E249 (maximal) E2: =WENN(ZEILE(D2)-1>ANZAHL(D:D);"";INDEX(A$2:A$9999;KKLEINSTE(D$2:D$9999;ZEILE(2:2)-1)))
F2:F9999 F2: =WENN(ZÄHLENWENN(B$2:B2;B2)=1;ZEILE(B2);"")
G2:G1000 G2: =WENN(ZEILE(F2)-1>ANZAHL(F:F);"";INDEX(B$2:B$9999;KKLEINSTE(F$2:F$9999;ZEILE(2:2)-1)-1))
H1:IV1 markieren und als Matrixformel eingeben: {=MTRANS(E$2:E$4)}
H2 markieren und als Matrixformel eingeben: {=SUMMENPRODUKT(($A$2:$A$9999=H$1)*($B$2:$B$19=$G2))}
H2 markieren und kopieren/ziehen nach H2:IV1000
H2:IV1000 benutzerdefiniertes Zahlenormat "0;;;@"
H:IV Spaltenbreite anpassen, Spalten D:F verbergen
Das war´s, Freunde der Formelprogrammierung, 6 kleine Formeln, ist doch gar nicht sooo schlimm! Aber mit VBA geht natürlich noch viel mehr und viel bequemer.
Gruß,
CaroS
Antwort 7 von Sftefee
Danke CaroS,
ich werde mir das mal überlegen ob ich das einbauen oder umsetzen kann.. Aber denke das ist eine gute Lösung.
Vielen Dank.
ich werde mir das mal überlegen ob ich das einbauen oder umsetzen kann.. Aber denke das ist eine gute Lösung.
Vielen Dank.
Antwort 8 von Saarbauer
Hallo,
ein Makro, Aufbau etwa wie @ CaroS.
Sub Auswertung()
Sheets("Tabelle2").Select
Rows("1:" & Range("A65536").End(xlUp).Row + 1).Select
Selection.ClearContents
Sheets("Tabelle1").Select
Zeile1 = Range("A65536").End(xlUp).Row
Rows("1:" & Range("A65536").End(xlUp).Row + 1).Select
Selection.Copy
Sheets("Tabelle2").Select
Range("A2").Select
ActiveSheet.Paste
Columns("C:Z").Select
Application.CutCopyMode = False
Selection.ClearContents
Columns("A:A").Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("A1:A" & Range("A65536").End(xlUp).Row).Select
Selection.Cut Destination:=Range("A2:A" & Range("A65536").End(xlUp).Row + 1)
Columns("B:B").Select
Selection.Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Zeile = Range("A65536").End(xlUp).Row
Spalte = Range("B65536").End(xlUp).Row
For j = 1 To 2
Wert = Cells(3 - j, j).Value
For i = 4 - j To Zeile
Cells(i, j).Select
If ActiveCell.Value = Wert And Not ActiveCell.Value = "" Then
Selection.Delete Shift:=xlUp
i = i - 1
Else
Wert = Cells(i, j).Value
End If
Next i
Next j
Zeile = Range("A65536").End(xlUp).Row
Spalte = Range("B65536").End(xlUp).Row
For i = 2 To Spalte
Cells(1, i + 1).Value = Cells(i, 2).Value
Next i
Range("B2").Select
ActiveCell.FormulaR1C1 = _
"=SUMPRODUCT((Tabelle1!R1C1:R" & Zeile1 & "C1=Tabelle2!RC1)*(Tabelle1!R1C2:R" & Zeile1 & "C2=Tabelle2!R1C))"
Ende$ = "B2:" & Chr(Spalte + 65) & Zeile
Selection.Copy
Range(Ende$).Select
ActiveSheet.Paste
Range("B" & Zeile + 1).Select
ActiveCell.FormulaR1C1 = "=SUM(R[" & -Zeile + 1 & "]C:R[-1]C)"
Selection.Copy
Ende$ = "B" & Zeile + 1 & ":" & Chr(Spalte + 65) & Zeile + 1
Range(Ende$).Select
ActiveSheet.Paste
Range(Chr(Spalte + 66) & "2").Select
ActiveCell.FormulaR1C1 = "=SUM(RC[" & -Spalte & "]:RC[-1])"
Selection.Copy
Ende$ = Chr(Spalte + 66) & "2:" & Chr(Spalte + 66) & Zeile
Range(Ende$).Select
ActiveSheet.Paste
Range("B" & Zeile + 2).Select
ActiveCell.FormulaR1C1 = "=COUNTIF(R[" & -Zeile & "]C:R[-2]C,"">0"")"
Selection.Copy
Ende$ = "B" & Zeile + 2 & ":" & Chr(Spalte + 65) & Zeile + 2
Range(Ende$).Select
ActiveSheet.Paste
Range(Chr(Spalte + 67) & "2").Select
ActiveCell.FormulaR1C1 = "=COUNTIF(RC[" & -Spalte - 1 & "]:RC[-2],"">0"")"
Selection.Copy
Ende$ = Chr(Spalte + 67) & "2:" & Chr(Spalte + 67) & Zeile
Range(Ende$).Select
ActiveSheet.Paste
Cells(Zeile + 1, 1).Value = "Summe"
Cells(Zeile + 2, 1).Value = "Verschiedene"
Cells(1, Spalte + 2).Value = "Summe"
Cells(1, Spalte + 3).Value = "Verschiedene"
End Sub
rüberkopieren und mal Testen
War etwas zu langsam, aber trotzdem
Gruß
Helmut
ein Makro, Aufbau etwa wie @ CaroS.
Sub Auswertung()
Sheets("Tabelle2").Select
Rows("1:" & Range("A65536").End(xlUp).Row + 1).Select
Selection.ClearContents
Sheets("Tabelle1").Select
Zeile1 = Range("A65536").End(xlUp).Row
Rows("1:" & Range("A65536").End(xlUp).Row + 1).Select
Selection.Copy
Sheets("Tabelle2").Select
Range("A2").Select
ActiveSheet.Paste
Columns("C:Z").Select
Application.CutCopyMode = False
Selection.ClearContents
Columns("A:A").Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("A1:A" & Range("A65536").End(xlUp).Row).Select
Selection.Cut Destination:=Range("A2:A" & Range("A65536").End(xlUp).Row + 1)
Columns("B:B").Select
Selection.Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Zeile = Range("A65536").End(xlUp).Row
Spalte = Range("B65536").End(xlUp).Row
For j = 1 To 2
Wert = Cells(3 - j, j).Value
For i = 4 - j To Zeile
Cells(i, j).Select
If ActiveCell.Value = Wert And Not ActiveCell.Value = "" Then
Selection.Delete Shift:=xlUp
i = i - 1
Else
Wert = Cells(i, j).Value
End If
Next i
Next j
Zeile = Range("A65536").End(xlUp).Row
Spalte = Range("B65536").End(xlUp).Row
For i = 2 To Spalte
Cells(1, i + 1).Value = Cells(i, 2).Value
Next i
Range("B2").Select
ActiveCell.FormulaR1C1 = _
"=SUMPRODUCT((Tabelle1!R1C1:R" & Zeile1 & "C1=Tabelle2!RC1)*(Tabelle1!R1C2:R" & Zeile1 & "C2=Tabelle2!R1C))"
Ende$ = "B2:" & Chr(Spalte + 65) & Zeile
Selection.Copy
Range(Ende$).Select
ActiveSheet.Paste
Range("B" & Zeile + 1).Select
ActiveCell.FormulaR1C1 = "=SUM(R[" & -Zeile + 1 & "]C:R[-1]C)"
Selection.Copy
Ende$ = "B" & Zeile + 1 & ":" & Chr(Spalte + 65) & Zeile + 1
Range(Ende$).Select
ActiveSheet.Paste
Range(Chr(Spalte + 66) & "2").Select
ActiveCell.FormulaR1C1 = "=SUM(RC[" & -Spalte & "]:RC[-1])"
Selection.Copy
Ende$ = Chr(Spalte + 66) & "2:" & Chr(Spalte + 66) & Zeile
Range(Ende$).Select
ActiveSheet.Paste
Range("B" & Zeile + 2).Select
ActiveCell.FormulaR1C1 = "=COUNTIF(R[" & -Zeile & "]C:R[-2]C,"">0"")"
Selection.Copy
Ende$ = "B" & Zeile + 2 & ":" & Chr(Spalte + 65) & Zeile + 2
Range(Ende$).Select
ActiveSheet.Paste
Range(Chr(Spalte + 67) & "2").Select
ActiveCell.FormulaR1C1 = "=COUNTIF(RC[" & -Spalte - 1 & "]:RC[-2],"">0"")"
Selection.Copy
Ende$ = Chr(Spalte + 67) & "2:" & Chr(Spalte + 67) & Zeile
Range(Ende$).Select
ActiveSheet.Paste
Cells(Zeile + 1, 1).Value = "Summe"
Cells(Zeile + 2, 1).Value = "Verschiedene"
Cells(1, Spalte + 2).Value = "Summe"
Cells(1, Spalte + 3).Value = "Verschiedene"
End Sub
rüberkopieren und mal Testen
War etwas zu langsam, aber trotzdem
Gruß
Helmut
Antwort 9 von Sftefee
hallo Saarbauer,
wie muss ich da meine Tabelle aufbauen?? muss ich dann meine Mitarbeiter schon ordnen???
Funktioniert auch ein Makro mit meinem Tabellenaufbau??
Also
Mitarbeiter Auftragsart Auftragsnummer Wert
9383 555 222 10
9383 555 223 -125
9383 220 224 586
9585 555 225 99
usw.
also es gibt ziehmlich viele Mitarbeiter und Einige Auftragsarten, die sich wiederholen können und die Auftragsnummer ist eigentlich immer einmal vorhanden..
Es soll dann gezählt werden zu den jeweiligen Mitarbeitern wieviel unterschiedliche Auftragsarten es gibt und Aufttragsnummern.
und am ende soll auch noch der anzahl der werte in 3 spalten aufgezeigt werden 1. bis 100 dann von 101 bis 500 und von 501 bis 1000 euro.
ist das auch möglich???
Danke
wie muss ich da meine Tabelle aufbauen?? muss ich dann meine Mitarbeiter schon ordnen???
Funktioniert auch ein Makro mit meinem Tabellenaufbau??
Also
Mitarbeiter Auftragsart Auftragsnummer Wert
9383 555 222 10
9383 555 223 -125
9383 220 224 586
9585 555 225 99
usw.
also es gibt ziehmlich viele Mitarbeiter und Einige Auftragsarten, die sich wiederholen können und die Auftragsnummer ist eigentlich immer einmal vorhanden..
Es soll dann gezählt werden zu den jeweiligen Mitarbeitern wieviel unterschiedliche Auftragsarten es gibt und Aufttragsnummern.
und am ende soll auch noch der anzahl der werte in 3 spalten aufgezeigt werden 1. bis 100 dann von 101 bis 500 und von 501 bis 1000 euro.
ist das auch möglich???
Danke
Antwort 10 von Saarbauer
Hallo,
die jetz eingestellte Tabelle ist etwas anders als die ursprünglichen Angaben
Mit meiner Tabelle werden die Angaben aus deiner Tabelle in ein 2. Blatt kopiert und automatisch nach Mitarbeiter und Auftragsart sortiert, doppelte gelöscht und dann werden für jeden Mitarbeiter die ausgeführten Aufträge nach Auftragsart ermittelt (da die Auftragsnummern nur einmal vorkommen, sind diese aus meiner Sicht uninteressant). Zum Schluss werden für jenen Mitarbeiter die Anzahl der Aufträge aller Auftragsarten und die Anzahl der unterschiedlichen Auftragsarten ermittelt. Genau so erfolgt die Ermittlung bei den Auftragsarten, Anzahl der ausgeführten Aufträge, Anzahl der verschiedenen Mitarbeiter
Ich würde zu einem Test mit einer Hilfsdatei raten und Vielleicht das Makro schritt für Schritt ("F8") abarbeiten
Die oben genannte Ergänzung ist mir noch nicht ganz klar, sollte aber erst eingearbeitet werden, wenn der rest passt. Dürfte kein größerer Aufwand sein
Gruß
Helmut
die jetz eingestellte Tabelle ist etwas anders als die ursprünglichen Angaben
Mit meiner Tabelle werden die Angaben aus deiner Tabelle in ein 2. Blatt kopiert und automatisch nach Mitarbeiter und Auftragsart sortiert, doppelte gelöscht und dann werden für jeden Mitarbeiter die ausgeführten Aufträge nach Auftragsart ermittelt (da die Auftragsnummern nur einmal vorkommen, sind diese aus meiner Sicht uninteressant). Zum Schluss werden für jenen Mitarbeiter die Anzahl der Aufträge aller Auftragsarten und die Anzahl der unterschiedlichen Auftragsarten ermittelt. Genau so erfolgt die Ermittlung bei den Auftragsarten, Anzahl der ausgeführten Aufträge, Anzahl der verschiedenen Mitarbeiter
Ich würde zu einem Test mit einer Hilfsdatei raten und Vielleicht das Makro schritt für Schritt ("F8") abarbeiten
Die oben genannte Ergänzung ist mir noch nicht ganz klar, sollte aber erst eingearbeitet werden, wenn der rest passt. Dürfte kein größerer Aufwand sein
Gruß
Helmut
Antwort 11 von Sftefee
Hallo Saarbauer,
Super, es funktioniert alles perfekt und es helft mir auch.
Das Problem ist nur, dass ich auch werte habe die sich in der Spalte D befindet. Kann man auch ein Makro umschreiben, dass die Werte in gruppen eingeteilt werden? das z.b. Ein Mitarbeiternummer 8 Auftragnummern hat die einen Wert unter 100 euro haben oder 7 Aufträge zu einer Mitarbeiternummer haben einen wert zwichen 100 und 500 und am besten nicht nur die anzahl der Aufträge sonder auch eine Summe der Aufträge.
Danke
Super, es funktioniert alles perfekt und es helft mir auch.
Das Problem ist nur, dass ich auch werte habe die sich in der Spalte D befindet. Kann man auch ein Makro umschreiben, dass die Werte in gruppen eingeteilt werden? das z.b. Ein Mitarbeiternummer 8 Auftragnummern hat die einen Wert unter 100 euro haben oder 7 Aufträge zu einer Mitarbeiternummer haben einen wert zwichen 100 und 500 und am besten nicht nur die anzahl der Aufträge sonder auch eine Summe der Aufträge.
Danke
Antwort 12 von CaroS
Hallo Sftefee,
ich nehme an, dass die Formellösung längst raus aus dem Rennen ist, deshalb schreibe ich keine Formeln mehr, aber die drei Werte
Anzahl Auftragsarten pro MA
Anzahl Aufträge pro MA insgesamt
Anzahl Aufträge pro MA und Kategorie (bis 100, bis 500, bis 2000, ... ?)
lassen sich sehr einfach mit ANZAHL2, SUMME und SUMMEWENN berechnen. Genau für sowas ist Excel sozusagen mal erfunden worden, könnte man sagen. Allerdings würde ich das dann oberhalb der Kreuztabelle berechnen, sonst sucht man sich ja ... oder benutzt einen Namen.
Vielleicht nutzt es ja noch jemand anders für irgendwas, dann ist jetzt alles halbwegs beisammen und wir fangen nächstes Mal nicht wieder ganz von vorne an.
Gruß,
CaroS
ich nehme an, dass die Formellösung längst raus aus dem Rennen ist, deshalb schreibe ich keine Formeln mehr, aber die drei Werte
lassen sich sehr einfach mit ANZAHL2, SUMME und SUMMEWENN berechnen. Genau für sowas ist Excel sozusagen mal erfunden worden, könnte man sagen. Allerdings würde ich das dann oberhalb der Kreuztabelle berechnen, sonst sucht man sich ja ... oder benutzt einen Namen.
Ergebnis: | MA4 | MA2 | MA5
----------+-----+-----+-----
Auf-Arten | _xx | _yy | _zz
Auft_alle | xxx | yyy | zzz
Auft__100 | _xx | __y | zzz
Auft__500 | xxx | _yy | __z
Auft_2000 | __x | yyy | _zz
----------+-----+-----+-----
AuftrArt1 | _72 | ___ | __6
----------+-----+-----+-----
AuftrArt8 | ___ | 143 | __2
----------+-----+-----+-----
AuftrArt5 | __9 | _18 | 355
----------+-----+-----+-----
AuftrArt2 | ___ | ___ | _64
----------+-----+-----+-----
AuftrArt9 | _12 | ___ | ___ Vielleicht nutzt es ja noch jemand anders für irgendwas, dann ist jetzt alles halbwegs beisammen und wir fangen nächstes Mal nicht wieder ganz von vorne an.
Gruß,
CaroS
Antwort 13 von Saarbauer
Hallo,
vom Grundsatz her kein Problem, es sit sogar möglich die genauen Beträge der Auftragsgruppe zu übernehmen. Ich habe jetz mal die genauen Beträge je Auftrag aus einer Auftragsgruppe übernommen.
Die Daten werden auf den 3 Blatt ausgeworfen
Der nachfolgenden Teil ( zwischen den _____)ist am Schluss vor dem End Sub einzufügen
______________________
Sheets("Tabelle3").Select
Rows("1:" & Range("A65536").End(xlUp).Row + 1).Select
Selection.ClearContents
Sheets("Tabelle2").Select
Rows("1:" & Range("A65536").End(xlUp).Row - 1).Select
Selection.Copy
Sheets("Tabelle3").Select
Range("A1").Select
ActiveSheet.Paste
Columns(Chr(Spalte + 67) & ":Z").Select
Application.CutCopyMode = False
Selection.ClearContents
Range("B2").Select
ActiveCell.FormulaR1C1 = _
"=SUMPRODUCT((Tabelle1!R1C1:R" & Zeile1 & "C1=Tabelle3!RC1)*(Tabelle1!R1C2:R" & Zeile1 & "C2=Tabelle3!R1C)*(Tabelle1!R1C4:R" & Zeile1 & "C4))"
Ende$ = "B2:" & Chr(Spalte + 65) & Zeile
Selection.Copy
Range(Ende$).Select
ActiveSheet.Paste
_________________
Gruß
Helmut
P.S. kann natürlich auch in einem Blatt untergebracht weerden, etwas zusätzlicher Aufwand. Und auch mit Preisgruppen
vom Grundsatz her kein Problem, es sit sogar möglich die genauen Beträge der Auftragsgruppe zu übernehmen. Ich habe jetz mal die genauen Beträge je Auftrag aus einer Auftragsgruppe übernommen.
Die Daten werden auf den 3 Blatt ausgeworfen
Der nachfolgenden Teil ( zwischen den _____)ist am Schluss vor dem End Sub einzufügen
______________________
Sheets("Tabelle3").Select
Rows("1:" & Range("A65536").End(xlUp).Row + 1).Select
Selection.ClearContents
Sheets("Tabelle2").Select
Rows("1:" & Range("A65536").End(xlUp).Row - 1).Select
Selection.Copy
Sheets("Tabelle3").Select
Range("A1").Select
ActiveSheet.Paste
Columns(Chr(Spalte + 67) & ":Z").Select
Application.CutCopyMode = False
Selection.ClearContents
Range("B2").Select
ActiveCell.FormulaR1C1 = _
"=SUMPRODUCT((Tabelle1!R1C1:R" & Zeile1 & "C1=Tabelle3!RC1)*(Tabelle1!R1C2:R" & Zeile1 & "C2=Tabelle3!R1C)*(Tabelle1!R1C4:R" & Zeile1 & "C4))"
Ende$ = "B2:" & Chr(Spalte + 65) & Zeile
Selection.Copy
Range(Ende$).Select
ActiveSheet.Paste
_________________
Gruß
Helmut
P.S. kann natürlich auch in einem Blatt untergebracht weerden, etwas zusätzlicher Aufwand. Und auch mit Preisgruppen
Antwort 14 von Sftefee
Hallo Helmut,
ich weiß nicht was das Makro macht aber es bringt mir im Tabellenblatt3 keine Werte sondern dieses #Wert! usw.
weis nicht woran das liegt.
Gruß
ich weiß nicht was das Makro macht aber es bringt mir im Tabellenblatt3 keine Werte sondern dieses #Wert! usw.
weis nicht woran das liegt.
Gruß
Antwort 15 von Saarbauer
Hallo,
ich habe es nochmal getestet, aber bei mir funktioniert es ohne Probleme.
Leider ist es schwer den genauen Fehler so festzustellen. Ich vermute Ergänzung falsch reinkopiert, ein Name/Wert wird nicht gefunden oder eine Angabe ist keine Zahl.
Stell mal die Zelle mit #Wert hier ein, hielft vielleicht weiter
Kannst du mir mal deine emailadresse mitteileen, erhälst dann meine. (Ausatausch der Dateine, des Makros)
Gruß
Helmut
ich habe es nochmal getestet, aber bei mir funktioniert es ohne Probleme.
Leider ist es schwer den genauen Fehler so festzustellen. Ich vermute Ergänzung falsch reinkopiert, ein Name/Wert wird nicht gefunden oder eine Angabe ist keine Zahl.
Stell mal die Zelle mit #Wert hier ein, hielft vielleicht weiter
Kannst du mir mal deine emailadresse mitteileen, erhälst dann meine. (Ausatausch der Dateine, des Makros)
Gruß
Helmut

