Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1584to1588
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Sortieren

Sortieren
06.10.2017 13:52:30
Hajo
Hallo,
ich brauche Hilfe beim Sortieren.
Userbild
Ich möchte gerne in der linken Tabelle die Anzahl an Kreise, Quadrate und Dreiecke den Kostenstelle aus der Quelle (rechten Tabelle) zuordnen. Bitte um Hilfe.
https://www.herber.de/bbs/user/116776.xls

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Skurril!
06.10.2017 13:57:56
lupo1
C3: =SUMMENPRODUKT(($G$3:$G$15=$B3)*($H$3:$H$15&"e"=C$2))
AW: Sortieren
06.10.2017 13:59:20
Daniel
Hi
mit dieser Formel in C3, die Formel kannst du dann in die restlichen Zellen ziehen.
allerdings muss die Überschrift in Zeile 2 genauso lauten wie die Texte in Spalte H
=ZÄHLENWENNS($G$3:$G$15;$B3;$H$3:$H$15;C$2)
Gruß Daniel
Sortieren..? Zuordnen... zuweisen
06.10.2017 16:10:35
Frank
Hallo, ich weiß zwar nicht, was das mit Sortieren zu tun hat, aber ich würde hier, wenn alles so bleiben soll, so tun..:
=ZÄHLENWENNS($G$3:$G$15;$B3;$H$3:$H$15;LINKS($C$2;LÄNGE($C$2)-1))

"Filtern" ...
06.10.2017 17:11:52
lupo1
... kennt jeder, weil seine Maschine das macht. Die Kaffeemaschine. Und natürlich der Öl- und der Luftfilter in seinem schwarzen AMG.
Bei "Sortieren" treffen wir auf den Mitarbeiter an der Postfach-Anlage. Der sortiert in Fächer. Und die sind genauso angeordnet, wie in dieser Datei.
Anzeige
In Excel ist Sortieren aber...
06.10.2017 17:32:51
Frank
Ach lupo1, wir wollen doch das Gleiche ... Sortiern ist hier relativ genau umrissen. Ein Blick in die online-Hilfe (dort Sortieren) hilft da. Ich geh mir jetzt ein FilterKaffee machen. In der KaffeeMaschine
Zeile, Spalte, Zelle, ...
06.10.2017 17:36:29
lupo1
... werden auch munter verhackstückt.
AW: Sortieren
06.10.2017 14:06:56
UweD
Hallo
die Überschriften stören
kannst du aber über Benutzerdefinierte Formatierung hinbekommen @"e" oder z.B. @"/e"

Tabelle1
 BCDE
2KostenstelleKreis/eQuadrat/eDreieck/e
310111
411110
512011
613001
714101
815111

verwendete Formeln
Zelle Formel Bereich N/A
C3:E8=SUMMENPRODUKT(($G$3:$G$15=$B3)*($H$3:$H$15=C$2))  

Zahlenformate
Zelle Format Wert
C2 '@"/e" Kreis
D2 '@"/e" Quadrat
E2 '@"/e" Dreieck
Zellen mit Format Standard werden nicht dargestellt
http://excel-inn.de/dateien/vba_beispiele/tabellenanzeige_in_html_addin.zip
http://Hajo-Excel.de/tools.htm
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 21.10 einschl. 64 Bit


LG UweD
Anzeige
AW: Sortieren
06.10.2017 18:30:19
Peter
Hallo Hajo,
hier eine VBA Version, mit Scripting-Dictionary, die sich ggfls. noch verbessern lässt.
Es war nur eine Übung meinerseits
Gruß Peter
https://www.herber.de/bbs/user/116783.xlsm
AW: Sortieren
07.10.2017 11:31:17
Peter
Hallo Hajo,
hier die verbesserte Version der VBA Lösung.
Sie unterstützt auch mehrere Einträge gleicher Art in der Tabelle der Kostenstellen.
Gruß Peter
'
'      diese Version bildet auch doppelte Einträge ab
Public Sub Nach_Kostenstelle_I()
Dim Mydict_Kreise    As Object   ' das Dictionary der Kreise
Dim Mydict_Quadrate  As Object   ' das Dictionary der Quadrate
Dim Mydict_Dreiecke  As Object   ' das Dictionary der Dreiecke
Dim vTemp            As Variant  ' das temporäre Array der Eingabewerte
Dim vItems           As Variant  ' das temporäre Array für die Bezeichnung
Dim lZeile           As Long     ' die Zeile im Array der Eingabewerte
Dim Kostst           As Variant  ' die Kostenstelle
Set Mydict_Kreise = CreateObject("Scripting.Dictionary")   ' die Dictionary Variable  _
benennen
Set Mydict_Quadrate = CreateObject("Scripting.Dictionary") ' die Dictionary Variable  _
benennen
Set Mydict_Dreiecke = CreateObject("Scripting.Dictionary") ' die Dictionary Variable  _
benennen
Application.ScreenUpdating = False ' kein Bildschirm Update zulassen
With ThisWorkbook.Worksheets("Tabelle1") ' den Tabellenblattnamen ggf. anpassen!
vTemp = .Range("G3:H" & .Cells(.Rows.Count, 7).End(xlUp).Row)  ' die Eingabe als Array  _
speichern
For lZeile = LBound(vTemp, 1) To UBound(vTemp, 1)              ' den Array abarbeiten
If vTemp(lZeile, 2)  "" Then  ' ist die kostenstelle nicht leer?
Select Case LCase(vTemp(lZeile, 2)) ' die Bezeichnung als Kennzeichen verwenden
Case "kreis"
Mydict_Kreise(vTemp(lZeile, 1) & "##" & vTemp(lZeile, 2)) = _
Mydict_Kreise(vTemp(lZeile, 1) & "##" & vTemp(lZeile, 2)) + 1    '  _
Kostenstelle Werte Kreise ermitteln
Case "quadrat"
Mydict_Quadrate(vTemp(lZeile, 1) & "##" & vTemp(lZeile, 2)) = _
Mydict_Quadrate(vTemp(lZeile, 1) & "##" & vTemp(lZeile, 2)) + 1   '  _
Kostenstelle Werte Quadrate ermitteln
Case "dreieck"
Mydict_Dreiecke(vTemp(lZeile, 1) & "##" & vTemp(lZeile, 2)) = _
Mydict_Dreiecke(vTemp(lZeile, 1) & "##" & vTemp(lZeile, 2)) + 1  '  _
Kostenstelle Werte Dreiecke ermitteln
End Select
End If
Next lZeile ' die nächste Zeile verarbeiten
Range("C3:E8").ClearContents  ' die Ausgabespalten löschen
vTemp = Mydict_Kreise.keys    ' den Dictionary Array an einen allgemeinen Array übergeben
vItems = Mydict_Kreise.items  ' den Dictionary Array an einen allgemeinen Array übergeben
For lZeile = LBound(vTemp) To UBound(vTemp) ' den allgemeinen Array abarbeiten
Kostst = Split(vTemp(lZeile), "##")      ' am Wert "##" aufteilen/splitten
Select Case Kostst(0)                    ' die Kostenstelle abfragen
Case "10": Range("C3").Value = vItems(lZeile) ' den Inhalt des allgemeinen Arrays  _
ausgeben
Case "11": Range("C4").Value = vItems(lZeile)
Case "12": Range("C5").Value = vItems(lZeile)
Case "13": Range("C6").Value = vItems(lZeile)
Case "14": Range("C7").Value = vItems(lZeile)
Case "15": Range("C8").Value = vItems(lZeile)
End Select
Next lZeile
vTemp = Mydict_Quadrate.keys
vItems = Mydict_Quadrate.items
For lZeile = LBound(vTemp) To UBound(vTemp)
Kostst = Split(vTemp(lZeile), "##")
Select Case Kostst(0)
Case "10": Range("D3").Value = vItems(lZeile)
Case "11": Range("D4").Value = vItems(lZeile)
Case "12": Range("D5").Value = vItems(lZeile)
Case "13": Range("D6").Value = vItems(lZeile)
Case "14": Range("D7").Value = vItems(lZeile)
Case "15": Range("D8").Value = vItems(lZeile)
End Select
Next lZeile
vTemp = Mydict_Dreiecke.keys
vItems = Mydict_Dreiecke.items
For lZeile = LBound(vTemp) To UBound(vTemp)
Kostst = Split(vTemp(lZeile), "##")
Select Case Kostst(0)
Case "10": Range("E3").Value = vItems(lZeile)
Case "11": Range("E4").Value = vItems(lZeile)
Case "12": Range("E5").Value = vItems(lZeile)
Case "13": Range("E6").Value = vItems(lZeile)
Case "14": Range("E7").Value = vItems(lZeile)
Case "15": Range("E8").Value = vItems(lZeile)
End Select
Next lZeile
End With
Set Mydict_Kreise = Nothing ' die Ressourcen freigeben
Set Mydict_Quadrate = Nothing
Set Mydict_Dreiecke = Nothing
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige