Prozentuale Verteilung von Zelleninhalten
#1
Hallo liebe Experten,

ich habe eine besondere Herausforderung und hoffe, dass jemand mir helfen kann.

Ich habe eine Spalte (A) in der steht in der Überschrift (A1) "Position". Nun kann man darunter in diese Spalte mehrere verschiedene "Positionsarten" eintragen wie Geschäftsführer, Vorstand, Manager.

Nun möchte ich aber diese Positionsarten aber prozentual verteilen. Z. B. Geschäftsführer sollen von A2 bis A100 zu 40% vorkommen, während Vorstand nur zu 10% vorkommen soll und Manager zu 50% vorkommen soll. Klar kann ich das per Hand machen, aber diese Art von Systematik benötige ich für sehr viele Spalten.

Wer kann mir dabei helfen. Freue mich schon jetzt auf coole Tipps und Hinweise.

Viele Grüße 
Ferries
Antworten Top
#2
(30.07.2025, 14:02)ferries schrieb: Hallo liebe Experten,

ich habe eine besondere Herausforderung und hoffe, dass jemand mir helfen kann.

Ich habe eine Spalte (A) in der steht in der Überschrift (A1) "Position". Nun kann man darunter in diese Spalte mehrere verschiedene "Positionsarten" eintragen wie Geschäftsführer, Vorstand, Manager.

Nun möchte ich aber diese Positionsarten aber prozentual verteilen. Z. B. Geschäftsführer sollen von A2 bis A100 zu 40% vorkommen, während Vorstand nur zu 10% vorkommen soll und Manager zu 50% vorkommen soll. Klar kann ich das per Hand machen, aber diese Art von Systematik benötige ich für sehr viele Spalten.

Wer kann mir dabei helfen. Freue mich schon jetzt auf coole Tipps und Hinweise.

Viele Grüße 
Ferries

Bitte Beispieltabelle und dort auch händisch das gewünschte Ergebnis mal eintragen

LG UweD
Antworten Top
#3
Hallo Uwe,

habe ein Beispiel erstellt. Aber die Angaben sollen ja rein zufällig passieren aber eben nur bis zur angegebenen Prozentzahl.
Hoffe ich habe es verstädnlich formuliert. 

Position (rein züfällig, aber der Proports soll eingehalten werden, 50% Manager, 10% Vorstand und 40% Geschäftsführer)

Geschäftsführer
Manager
Geschäftsführer
Vorstand
Manager 
Manager 
Manager 
Geschäftsführer  
Manager 
Manager 
Vorstand


Hoffe, es ist verständlich.

Gruß, ferries


Angehängte Dateien
.xlsx   Forum.xlsx (Größe: 11,56 KB / Downloads: 9)
Antworten Top
#4
Hi

einen gewichteten Zufall für beliebige Mengen kannst du so erzeugen

=SVerweis(ZufallsBereich(1;100);{1."Vorstand";11."Geschäftsführer";51."Manager"};2;1)

hierbei kann es natürlich varianzen geben.
solange die Formel besteht, kannst du F9 drücken, um neue Werte zu bekommen.
Wenn es passt, kopieren und als Wert einfügen
Statt der Konstantmatrix kannst du auch auf einen zellbereich verweisen, in der ersten Spalte die Zahlen und in der zweiten Spalte die Begriffe.

Gruß Daniel

wenn du eine exakte Verteilung haben willst, musst du

10x "Vorstand"
40x "Gechäftsführer"
50x "Manager" untereinander schreiben

in die Spalte daneben dann die Formel: =Zufallszahl()

dann sortierst du beide Spalten nach der Zufallszahl und kopierst die erste Spalte in deine Liste.

Gruß Daniel
Antworten Top
#5
Moin!
Nur als Übung für mich.
Funktioniert in Excel ab 2021 sowie Excel Online.
Google Sheets und Libre Office Calc haben ähnliches im Köcher.
Das Antik-Excel 2016 nicht.
Code:
=LET(
VS;WEGLASSEN(TEXTTEILEN(WIEDERHOLEN("Vorstand|";10);;"|");-1);
GF;WEGLASSEN(TEXTTEILEN(WIEDERHOLEN("Geschäftsführer|";40);;"|");-1);
M;WEGLASSEN(TEXTTEILEN(WIEDERHOLEN("Manager|";50);;"|");-1);
alle;VSTAPELN(VS;GF;M);
SORTIERENNACH(alle;ZUFALLSMATRIX(ZEILEN(alle))))

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#6
(30.07.2025, 14:21)ferries schrieb: Position (rein züfällig, aber der Proports soll eingehalten werden, 50% Manager, 10% Vorstand und 40% Geschäftsführer)
Geschäftsführer
Manager
Geschäftsführer
Vorstand
Manager 
Manager 
Manager 
Geschäftsführer  
Manager 
Manager 
Vorstand

Sehr schönes Beispiel, daran kann man gut aufzeigen das Du mit der so gestellten Aufgabe zum Scheitern verurteilt bist.

Kopiere mal genau dieses Beispiel in ein Blatt und dann zähl mal aus wie viele das jeweils sind und berechne die Prozente:
 
  Manager = 6 = 54,5%
  Vorstand = 2 = 18,2%
  Geschäftsführer = 3 = 27,3%

Das Problem was Du nicht siehst ist das hier 11 Positionen vergeben werden (sollen) Deine Prozentwerte bei ganzer Person 5+4+1=10 erlauben das aber nicht.

Da eine Person nicht teilbar ist wirst Du niemals das Limit (Personen nur max. bis zu der Prozentzahl) oder die Proportionalität untereinander einhalten können.  21

Bitte darüber nachdenken und dann erzähl mal wozu das gut sein soll.

Andreas.
Antworten Top
#7
Hallo


mit VBA?

in ein Modul
Code:
Sub Verteilen()
    Dim LC As Integer, RNG As Range, ArrBez(), ArrVert(), StrResult As String, i As Integer
   
    'anpassen
    ArrBez = Array("Geschäftsführer", "Vorstand", "Manager")
    ArrVert = Array(40, 10, 50)
    Set RNG = Range("A3:A102")
   
   
    LC = Cells.SpecialCells(xlCellTypeLastCell).Column 'Letzte Spalte des gesamten Blattes
    RNG.ClearContents 'reset
   
    For i = LBound(ArrBez) To UBound(ArrBez)
        StrResult = StrResult & Application.WorksheetFunction.Rept("," & ArrBez(i), ArrVert(i))
    Next
    StrResult = Mid(StrResult, 2) 'erste Komma weg
   
    RNG = WorksheetFunction.Transpose(Split(StrResult, ",")) 'Texte schreiben
   
    With RNG.Offset(0, LC) 'Zufallsbereich
        .Formula = "=RandBetween(1, " & RNG.Count * 100 & ")" '*100 um gleiche Zahlen zu minimieren
        .Value = .Value 'in Werte umwandeln
    End With
   
    With ActiveSheet.Sort 'sortieren nach Zufallszahl
        .SortFields.Clear
        .SortFields.Add2 Key:=Cells(3, LC + 1), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
            xlSortNormal
        .SetRange Range(Cells(3, 1), Cells(RNG.Rows.Count + 2, LC + 1))
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    RNG.Offset(0, LC).Delete 'Zufallsbereich löschen

End Sub


LG UweD
Antworten Top
#8
Hallo,

als Alternative zum Vorschlag von Ralf mit gleichen Rahmenbedingungen (modernes Excel), eine Version ohne TEXTTEILEN.
Mit der Annahme, dass die Prozente eine Ganzzahl sind, sowie ohne Prüfung, ob deren Summe 100 ergibt.

PHP-Code:
A1:A3 Prozente
B1
:B3 Bezeichnungen

=LET(vnProzente;A1:A3;
     vnBezeichnungen;B1:B3;
     vnListe;WEGLASSEN(REDUCE(0;SEQUENZ(ZEILEN(vnProzente));LAMBDA(A;V;VSTAPELN(A;INDEX(vnBezeichnungen;SEQUENZ(INDEX(vnProzente;V;1);1;V;0);1))));1);
     SORTIERENNACH(vnListe;ZUFALLSMATRIX(ZEILEN(vnListe)))) 

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) :: 2011-2019 & 2020-2022 :: 10 Awards
https://de.excel-translator.de/translator :: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner
Antworten Top
#9
(30.07.2025, 15:39)RPP63 schrieb: Moin!
Nur als Übung für mich.
Funktioniert in Excel ab 2021 sowie Excel Online.
Google Sheets und Libre Office Calc haben ähnliches im Köcher.
Das Antik-Excel 2016 nicht.
Code:
=LET(
VS;WEGLASSEN(TEXTTEILEN(WIEDERHOLEN("Vorstand|";10);;"|");-1);
GF;WEGLASSEN(TEXTTEILEN(WIEDERHOLEN("Geschäftsführer|";40);;"|");-1);
M;WEGLASSEN(TEXTTEILEN(WIEDERHOLEN("Manager|";50);;"|");-1);
alle;VSTAPELN(VS;GF;M);
SORTIERENNACH(alle;ZUFALLSMATRIX(ZEILEN(alle))))

Gruß Ralf

ja, schaut gut aus.
die Sequenzen kann man etwas einfacher erzeugen:

...
VS;WENN(SEQUENZ(10);"Vorstand");
GF;WENN(SEQUENZ(40);"Geschäftsführer");
M;WENN(SEQUENZ(50);"Manager")
...


Gruß Daniel
Antworten Top
#10
Hallo,

mit der Funktion ERWEITERN(..) geht es noch einfacher und kürzer:
Code:
=LET(
    f; LAMBDA(w; a; ERWEITERN(w; a;; w));
    a; VSTAPELN(f("Vorstand"; 10); f("Geschäftsführer"; 40); f("Manager"; 50));
    SORTIERENNACH(a; ZUFALLSMATRIX(100))
)


Nichts für Excel2016.
Gruß Anton.

Windows 10 64bit
Office365 32bit
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste