Microsoft Excel

Herbers Excel/VBA-Archiv

Pivotabelle: Gruppieren mit ungleichen Intervallen

Betrifft: Pivotabelle: Gruppieren mit ungleichen Intervallen von: Florian
Geschrieben am: 21.11.2012 21:46:35

Hallo liebe Excel-Freunde,

hoffe Ihr könnt mir weiterhelfen. Ist es möglich die Gruppierung in Pivottabellen mit ungleichmässigen Intervallen durchzuführen?

Bsp: Entfernung in km, die von 0km bis 100km reichen nicht in 20 5km Intervalle, sondern Intervalle von 0-2km, 3-5 km, 6-10 km, 11-20 km, 21-50 km, 51-100 km.

Geht das irgendwie? Gerne auch VBA-Lsg, da die Pivot sowieso in VBA erzeugt werden soll.

Vielen Dank schonmal, und viele Gruesse

Florian

  

Betrifft: AW: Pivotabelle: Gruppieren mit ungleichen Intervallen von: silex1
Geschrieben am: 21.11.2012 22:10:36

Hallo,

nein, geht so nicht.
Geht nur, wenn Du dies in der Datentabelle mittels Hilfsspalte trennst!
Da Du aber VBA willst, bin ich eh der falsche Ansprechpartner!

vg, Rene


  

Betrifft: VBA-Lsg? von: Florian
Geschrieben am: 22.11.2012 07:11:21

Hallo Rene,

danke trotzdem :=). VBA-Lsg geht auch, da Tabelle später mit VBA generiert wird. Hat evt. jmd einen Workaround? Könnte z.B. auch die Ausgangsdaten manipulieren.

Danke schonmal an alle!

Florian


  

Betrifft: AW: VBA-Lsg? von: fcs
Geschrieben am: 22.11.2012 08:06:56

Hallo Florian,

ergänze in den Daten eine Zusatzspalte für die Gruppe oder ersetze für die Pivotauswertung die km-Angabe durch die Gruppe.

Statt per Formel kann man das natürlich auch per VBA-machen.

Sub Daten_fuer_Pivot()
  Dim wks As Worksheet, lngZeile As Long
  Dim strErgebnis As String
  Const SpaGrp = 4 'Spalte für Ergebnis _ hier Spalte D
  Const Spa_km = 2 'Spalte mit km-Wert - hier Spalte B
  Set wks = ActiveSheet '= Worksheets("Daten")
  Application.ScreenUpdating = False
  With wks
    .Cells(1, SpaGrp) = "Gruppe" 'Spaltentitel für Gruppierungsspalte
    For lngZeile = 2 To .Cells(.Rows.Count, Spa_km).End(xlUp).Row
      strErgebnis = ""
      If IsNumeric(.Cells(lngZeile, Spa_km)) Then
      Select Case .Cells(lngZeile, Spa_km)
        Case Is <= 2
          strErgebnis = "0-2 km"
        Case Is <= 5
          strErgebnis = "3-5 km"
        Case Is <= 10
          strErgebnis = "6-10 km"
        Case Is <= 20
          strErgebnis = "11-20 km"
        Case Is <= 50
          strErgebnis = "21-50 km"
        Case Is <= 100
          strErgebnis = "51-100 km"
        Case Is > 100
          strErgebnis = "> 100 km"
      End Select
      End If
      .Cells(lngZeile, SpaGrp) = strErgebnis
    Next lngZeile
  End With 'wks
  Application.ScreenUpdating = True
End Sub

Gruß
Franz
Tabellenblattname: Daten

       A       B      C         D       E     F         G       
 1  Wert 1    km   Wert2      Gruppe          km      Gruppe   
 2       A     0       1      0-2 km           0      0-2 km   
 3       B     2       2      0-2 km        2,01      3-5 km   
 4       C     5       3      3-5 km        5,01     6-10 km   
 5       a     7       4     6-10 km       10,01    11-20 km   
 6       b    32       4    21-50 km       20,01    21-50 km   
 7       c    50       3    21-50 km       50,01   51-100 km   
 8       a   100       2   51-100 km                           
 9       b     3       3      3-5 km                           
10       c    10       4     6-10 km                           
11       a    22       5    21-50 km                           
12       b    11       3    11-20 km                           
13       c     1       2      0-2 km                           

Benutzte Formeln:
D2:  =SVERWEIS(B2;$F$2:$G$7;2;WAHR)
D3:  =SVERWEIS(B3;$F$2:$G$7;2;WAHR)



  

Betrifft: AW: VBA-Lsg? von: guentherh
Geschrieben am: 22.11.2012 08:09:36

Hallo Florian,

hier eine Lösung mit bearbeitung der Ausgangsdaten

https://www.herber.de/bbs/user/82723.xlsx

Grüße,
Günther


  

Betrifft: Besten Dank an alle :)) oT von: Florian
Geschrieben am: 22.11.2012 09:01:02

--