Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Formel: =ZUFALLSBEREICH(...) nur einmal aktualisie

Formel: =ZUFALLSBEREICH(...) nur einmal aktualisie
Nix-Wisser-0815
Hallo!
Ich habe eine Excel Datei in der in Spalte K eine Zahl ausgeworfen wird.
Nun möchte ich gerne das diese Zahl einen Zufallswert bekommt, der min. so groß ist wie die Zahl in K aber max. so groß wie die Zahl in K + 7%!
Das habe ich über eine Hilfsspalte gelöst!
Spalte K | Spalte L | Spalte M
1000 | =K1*1,07 | =ZUFALLSBEREICH(K1;L1)
Das klappt super!
Nur wird die Zahl in M bei jedem ENTER aktualisiert!
Das möchte ich nicht!
Des weiteren habe ich aber andere Formeln die aktualisiert werden müssen. (es geht also nicht über Berechnungsoptionen MANUELL)
Weiß jemand Rat?
Danke!
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Entweder WERTE kopieren oder Iteration
08.07.2010 15:24:26
NoNet
Hallo 0916,
Du kannst entweder den Wert der Spalte M kopierne und dann per "Bearbeiten - Inhalte einfügen - Werte - OK" durch den fixen Wert ersetzen, dann wäre das allerdings nur eine einmalige Zufallszahlermittlung, oder aber Du kannst das iterativ lösen :
- Aktiviere zuerst per "Extras - Optionen - Berechnung" die Iteration und setze die Iterationszahl auf 1 :
Userbild
Damit erreicht man, dass sich Zellen wechselseitig aufeinander beziehen können, ohne eine Zirkelbezugsfehler auszulösen.
- Gib dann in Zelle N1 folgende Funktion ein : =M1=0 (M1 ist die Zelle mit der ZUFALLSZAHL()-Funktion !)
- Gib dann in M1 folgende Funktion ein : =WENN(N1=0;ZUFALLSBEREICH(K1;L1);M1)
Der Wert in M1 wird nun EINMALIG berechnet und verändert sich nicht, solange in N1 nichts verändert wird.
Um das Szenario gezielt neu zu starten, musst Du einfach Zelle N1 per Taste F2 editieren und per ENTER bestätigen !
ACHTUNG : Die Iteration ist sehr tückisch und hat einen RIESEN-Nachteil :
Die jeweils zuerst geöffnete Mappe einer EXCEL-Instanz bestimmt, ob in den folgenden Mappen die Iteration aktiviert ist oder nicht !
D.h. : Wenn bereits eine andere Mappe OHNE Iteration geöffnet ist, dann funktioniert diese auch in dieser Mappe nicht und die Funktion führt zum Zirkelbezugs-Fehler !
Diese Mappe muss daher die ERSTE bzgw. EINZIGE Mappe sein, die per Excel geöffnet wurde !
Wenn Du mehrere Mappen geöffnet hast, bestimmt die erste geöffnete Mappe der Instanz auch für alle anderen gerade geöffneten Mappen, ob die Berechnung auf "manuell" oder "automatisch" steht und ob in der Mappe "Iterationen" aktiviert oder deaktiviert sind - unabhängig in welchem Status diese zuvor gespeichert waren !
Gruß, NoNet
gegen 0:1  
Anzeige
AW: Entweder WERTE kopieren oder Iteration
09.07.2010 10:19:22
Nix-Wisser-0815
VIELEN DANK!
Das hat mich zwar weiter gebracht und erfüllt die Anforderung, allerdings muss ich dann immer jede Zeile NEU aktualisieren (F2).
Ich wünsche mir halt, das ich die Daten eingebe der Zufallswert geschrieben wird (alles autom.) und sich halt nicht mehr ändert!
Bei deiner Lösung ändert er sich zwar nicht mehr, aber ich muss jede Zeile aktualisieren und das möchte ich nicht!
Bin für weitere Ideen offen!
Danke!
Anzeige
AW: Entweder WERTE kopieren oder Iteration
15.07.2010 03:43:24
fcs
Hallo 4711,
dann könntest du die Zufallszahlen in Spalte M per Makro erzeugen.
Das folgende Makro kopierst du in ein allgemeines Modul in deiner persönlichen Makroarbeitsmappe.
Dann die Datei öffnen und das Blatt aktivieren/selektieren in dem die Spalte M ausgefüllt werden soll.
Dann Makro starten.
Wenn Makros in deiner Datei nicht stören, dann kannst du das Makro natürlich auch in eine allgemeines Modul deiner Datei einfügen.
Gruß
Franz
Sub Zufallszahlen()
Dim wks As Worksheet
If MsgBox("Spate M ab Zeile 2 mit Zufallszahlen füllen?", _
vbQuestion + vbYesNo, "Zufallszahlen erzeugen") = vbYes Then
Set wks = ActiveSheet
With wks
'Werte in Spalte M löschen
.Range(.Cells(2, 13), .Cells(2, 13).End(xlDown)).ClearContents
'Für Werte in Spalte K in Spalte M Zufallszahlen per Formel berechen
With .Range(.Cells(2, 11), .Cells(2, 11).End(xlDown)).Offset(0, 2)
'Formeln einfügen
.FormulaR1C1 = "=RANDBETWEEN(RC[-2],RC[-1])"
'Formeln durch Werte ersetzen
.Value = .Value
End With
End With
End If
End Sub

Anzeige
AW: Formel: =ZUFALLSBEREICH(...) nur einmal aktualisie
12.07.2010 09:27:23
Nix-Wisser-0815
*noch mal an schups*
Weiß keiner Rat?

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zufallszahlen in Excel einmalig generieren und fixieren


Schritt-für-Schritt-Anleitung

Um eine Zufallszahl in Excel zu generieren, die sich nicht bei jeder Neuberechnung ändert, kannst du die folgende Schritt-für-Schritt-Anleitung nutzen:

  1. Berechne den Maximalwert: Angenommen, in Spalte K steht der Basiswert. Berechne in Spalte L den Maximalwert, der 7 % über dem Wert in K liegt:

    =K1 * 1,07
  2. Füge die Zufallsformel ein: In Spalte M fügst du die Zufallsformel ein, um einen Wert zwischen K und L zu generieren:

    =ZUFALLSBEREICH(K1;L1)
  3. Fixiere den Wert: Um die generierte Zufallszahl einmalig zu speichern, kopiere die Zellen in Spalte M, gehe zu "Start" > "Inhalte einfügen" > "Werte". Dadurch wird die Zufallszahl fixiert und nicht mehr aktualisiert.

Alternativ kannst du auch die Iterationsmethode verwenden, um die Zufallszahl nur einmal zu berechnen, ohne die Werte manuell zu kopieren.


Häufige Fehler und Lösungen

  • Zufallszahl wird bei jeder Änderung aktualisiert: Wenn du die Zufallszahl nicht manuell fixieren möchtest, kann die Iterationsmethode helfen. Aktiviere die Iteration unter "Extras" > "Optionen" > "Berechnung" und setze die Iterationszahl auf 1.

  • Zirkelbezüge: Wenn du die Iteration aktivierst, achte darauf, dass du keine Zirkelbezüge erzeugst. Stelle sicher, dass die Formeln wechselseitig aufeinander verweisen, ohne einen Fehler zu verursachen.


Alternative Methoden

  1. Makro zur Zufallszahlenerstellung: Verwende ein VBA-Makro, um die Zufallszahlen in Spalte M automatisch zu generieren und zu fixieren. Hier ist ein Beispiel für ein einfaches Makro:

    Sub Zufallszahlen()
        Dim wks As Worksheet
        Set wks = ActiveSheet
        With wks
            .Range(.Cells(2, 13), .Cells(2, 13).End(xlDown)).ClearContents
            With .Range(.Cells(2, 11), .Cells(2, 11).End(xlDown)).Offset(0, 2
                .FormulaR1C1 = "=ZUFALLSBEREICH(RC[-2],RC[-1])"
                .Value = .Value
            End With
        End With
    End Sub
  2. Eingabe über Datenformulare: Wenn du bereits eine Liste von Werten hast, aus denen du Zufallszahlen generieren möchtest, kannst du diese in ein Datenformular einfügen und die Zufallszahlen aus dieser Liste ziehen.


Praktische Beispiele

  • Zufallszahl zwischen 1000 und 9999 generieren:

    =ZUFALLSBEREICH(1000;9999)
  • Zufallszahl aus einer vorgegebenen Liste: Wenn du spezifische Werte hast, die als Zufallszahlen dienen sollen, kannst du die Funktion ZUFALLSBEREICH in Kombination mit INDEX nutzen, um aus der Liste einen Wert zu ziehen.


Tipps für Profis

  • Du kannst die Funktion ZUFALLSBEREICH auch mit anderen Funktionen kombinieren, um komplexere Zufallswerte zu generieren. Experimentiere mit WENN und VERGLEICH, um Zufallszahlen unter bestimmten Bedingungen zu erzeugen.

  • Denke daran, dass bei der Nutzung von Iterationen in Excel die zuerst geöffnete Mappe den Berechnungsmodus aller weiteren Mappen beeinflussen kann. Achte darauf, dass deine erste Mappe die richtige Berechnungseinstellung hat.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass die Zufallszahlen nicht neu berechnet werden? Um sicherzustellen, dass die Zufallszahlen nicht aktualisiert werden, kannst du die Werte nach der Berechnung kopieren und sie als feste Zahlen einfügen.

2. Was mache ich, wenn ich eine Zufallszahl nur einmal generieren möchte? Verwende die Iterationsmethode oder ein Makro, um die Zufallszahlen einmalig zu generieren und anschließend zu fixieren.

3. Kann ich Zufallszahlen aus einer bestimmten Liste generieren? Ja, du kannst die Funktion INDEX verwenden, um Zufallszahlen aus einer vordefinierten Liste zu ziehen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige