Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Zahlen mischen

Frage Microsoft Microsoft Office

Mitglied: thorium

thorium (Level 1) - Jetzt verbinden

02.05.2005, aktualisiert 09.05.2005, 8520 Aufrufe, 19 Kommentare

Hallo!

Habe folgendes Problem: Ich habe ein Wort z.B. "Herbstzeit" als String in einzelne Buchstaben zerlegt und jeden Buchstaben eine
Zahl zugeordnet.
Also H=1,E=2 usw. Jetzt möchte ich die Buchstaben bzw. die Zahlen mischen od. anders in der Reihenfolge anordnen.
Mit dem Zufallsgenerator in Excel geht es nicht da doppelte Zahlen generiert werden und =wenn() Abfragen sind zu aufwendig, voralllem wenn die Wörter länger sind.
Mitglied: 8644
02.05.2005 um 08:32 Uhr
Moin,

beschreib mal etwas näher den Sinn der Sache,
da kann man mit Sicherheit was über ein Macro machen.

Psycho
Bitte warten ..
Mitglied: thorium
02.05.2005 um 08:48 Uhr
Der Sinn der Sache ist: Laut "Pisastudie" kann man ein Wort lesen bzw. einen Text
wenn bei jeden Wort der Erste und der letzte Buchstabe an der richtigen Stelle steht und die Buchstaben zwischen ersten und letzten können in der Reihenfolge vertauscht sein ,aber es müssen alle vorhanden sein und trotzdem kann man den text lesen.

z.B. : Herbstzeit vertauscht: Hresbtezit alerldngis bei eniem Wrot shcelhct man baruhct 2 Zielen txet um scih enziuelsen ich hfofe du Hßat vretsadnen.

Gurß Thuirom!
Bitte warten ..
Mitglied: 6907
02.05.2005 um 09:50 Uhr
Hallo, also ich kann dir nur ein Beispiel geben, wie ich es in einer anderen Programmiersprache machen würde:

Als erstes würde ich die Länge des Wortes über die entsprechende Funktion (z. b. length()? ) auslesen lassen und den Wert einer Hilfsvariable (I= length(wort)) zuweisen
Das Wort würde ich nicht in einzelne Strings teilen. Wenn dann würde ich sie in deinem Fall in Felder schreiben, da du dann auch über die indizes diese einfach auslesen kannst.
danach nur noch von 1 (damit der erste buchstabe gleich bleibt) bis I-1 eine for-schleife durchlaufen lassen, in dieser musste dann per random(word[I]) dem word einen neuen wert zuweisen. Dann würde ich nur mit einer weiteren schleife schauen, ob dieser neue wert schon einmal in einem der Felder vorher vergeben wurde, wenn ja, dann neu random ausführen, ansonsten die zählvariable I erhöhen. -> fertig

in anderen Programmiersprachen müssten die begriffe nur anders heißen, aber vom prinzip müsste es so gehen

MfG DeRe666
Bitte warten ..
Mitglied: 8644
02.05.2005 um 11:04 Uhr
Hi,

ich habe hier mal einen Lösungsansatz ohne Macro, allerdings kommt man mit einer Formel nicht hin:

- In die A1 wird der Begriff eingetragen
- In die A3 kommt folgende Formel:
=WENN(LÄNGE($A$1)-2>=1;ZUFALLSZAHL();"")
Diese habe ich bis zur A32 runtergezogen (max. 30 Zeichen pro Begriff)
Der Wert für die Länge wird jeweils um 1 erhöht (>=1,>=2,>=3 ... )
- In die B3 folgende Formel:
=WENN(ISTZAHL(A3);RANG(A3;A$3:A$32);"")
Bis B32 runterziehen
Jetzt haben wir Zufallszahlen, die sich nicht wiederholen und auf die Zeichenlänge
des Begriffes - 2 beschränkt sind.
- In C4 steht diese Formel:
=WENN(ISTZAHL(A3);TEIL($A$1;B3+1;1);"")
damit haben wir die entsprechenden Zeichen gemischt.
Und jetzt kommt etwas Fleißarbeit
- In C1 steht:
=VERKETTEN(LINKS(A1;1);C3;C4;C5;C6;C7;C8;C9;C10;C11;C12;
C13;C14;C15;C16;C17;C18;C19;C20;C21;C22;C23;C24;C25;C26;
C27;C28;C29;C30;RECHTS(A1;1))


Damit hast du Anfangs- und Endbuchstaben an der richtigen Stelle und der Rest ist vertauscht.

Ich hoffe das hilft dir weiter

Psycho

Edit: Die Formel in C4 steht natürlich in C3 und wird auch runtergezogen - sorry
Bitte warten ..
Mitglied: thorium
02.05.2005 um 11:56 Uhr
Danke Psycho Dad!
Aber es wird leider immer ein Buchstabe zuviel generiert, komme aber leider nicht dahinter warum.
Bitte warten ..
Mitglied: 8644
02.05.2005 um 12:01 Uhr
Hi,

hast du das Edit in meinem Beitrag beachtet,

mir ist da ein kleiner Fehler unterlaufen, bei mir klappt es so.

Psycho
Bitte warten ..
Mitglied: thorium
02.05.2005 um 14:26 Uhr
Hallo Psycho Dad

Der letzte Buchstabe in jedem Wort ist leider noch immer doppelt.
Bitte warten ..
Mitglied: 8644
03.05.2005 um 07:19 Uhr
Guten Morgen,

musste gestern weg.

Poste doch mal Deine Formeln, speziell die aus C1, vielleicht kommen wir ja so weiter!

Psycho
Bitte warten ..
Mitglied: thorium
03.05.2005 um 07:59 Uhr
Hallo psycho dad!

Formel aus A3
=WENN(ISTZAHL(A3);RANG(A3;A$3:A$32);"")

Formel aus B3
=WENN(ISTZAHL(A3);RANG(A3;A$3:A$32);"")

Formel aus C1 lautet:
=VERKETTEN(LINKS(A1;1);C3;C4;C5;C6;C7;C8;C9;C10;C11;C12;C13;C14;C15;C16;C17;C18;C19;C20;C21;C22;C23;C24;C25;C26;C27;C28;C29;C30;RECHTS(A1;1))
Das Wort "Walter" ergibt: wlatrer

Wie du siehst kommt das "r" doppelt, passiert immer mit dem letzten Buchstaben eines Wortes. Außerdem =verketten nur bis C30 zu verwenden lt. EXCEL, aber es werden auch Buchst. bis C31 gesetzt und dadurch nicht verwendet.

Gruß Thorium
Bitte warten ..
Mitglied: 8644
03.05.2005 um 08:06 Uhr
Hi,

sieht die Formel in C3 so aus:

=WENN(ISTZAHL(A3);TEIL($A$1;B3+1;1);"")

?

Das mit dem Verketten ist mir auch aufgefallen, könnte man aber ander lösen, wenn es nötig sein sollte.

Psycho

Edit : In der A3 sollte aber folgendes stehen:

=WENN(LÄNGE($A$1)-2>=1;ZUFALLSZAHL();"")
Bitte warten ..
Mitglied: thorium
03.05.2005 um 08:42 Uhr
Hi

Die Formel stimmen so, hab es überprüft!
Bitte warten ..
Mitglied: 8644
03.05.2005 um 08:49 Uhr
Hi,

irgendwas muß anders sein, bei mir kommt folgendes raus:

Walter -> Wetalr
Bitte warten ..
Mitglied: 8644
03.05.2005 um 08:57 Uhr
Ich noch mal,

gib mir doch mal Deine Adresse, dann maile ich Dir meine Datei einfach

Psycho
Bitte warten ..
Mitglied: thorium
03.05.2005 um 09:10 Uhr
Hi
herbert.trombitas@arcs.ac.at
Bitte warten ..
Mitglied: 8644
03.05.2005 um 15:43 Uhr
Hi,

für alle, die es noch interessiert, ich habe da mal ein kleines Tool geschrieben,
mit dem man ganze Text gleichzeitig behandeln kann (es hat mir halt keine Ruhe gelassen)

Mit den Satzzeichen kommt es noch nicht klar, aber vielleicht gibt es ja bald ein Update

Wer Interesse hat kann mir mailen:

psycho-dad-shl@arcor.de

Psycho
Bitte warten ..
Mitglied: Guenni
03.05.2005 um 22:47 Uhr
@thorium

Hi,

öffne eine neue Excel-Tabelle, starte den VB-Editor und füge ein neues Modul ein.

Kopiere folg. Programmcode ein:

<font class="code">Dim Kontrollfeld() As Boolean

Dim Wortfeld() As String

Dim NeuesWort

Dim Gefunden



Function Zufallszahl(Bereich) As Integer

Randomize

Zufallszahl = Int((Bereich * Rnd) + 1)

End Function



Function Buchstabensalat(Wort)

If IsEmpty(Wort) Then Exit Function

ReDim Kontrollfeld(Len(Wort))

For i = 1 To UBound(Kontrollfeld)

Kontrollfeld(i) = False

Next

ReDim Wortfeld(Len(Wort))

For i = 1 To Len(Wort)

Wortfeld(i) = Mid(Wort, i, 1)

Next i

Randomize

z = Zufallszahl(Len(Wort))

Kontrollfeld(z) = True

NeuesWort = Wortfeld(z)

Gefunden = 1

For i = 2 To Len(Wort)

While Kontrollfeld(z) And Gefunden < Len(Wort)

z = Zufallszahl(Len(Wort))

Wend

Gefunden = Gefunden + 1

Kontrollfeld(z) = True

NeuesWort = NeuesWort + Wortfeld(z)

Next

Buchstabensalat = NeuesWort

End Function

</font>

Wechsle zur Tabellenansicht, markiere eine Zelle(z.B. C1) und starte den Funktionsassistenten,wähle Benutzerdefiniert, anschließend
die Funktion Buchstabensalat. Im folg. Dialog gibst du die Zelle ein(z.B. A1), die dein zu verdrehendes Wort enthalten soll
und bestätigst mit OK.

Oder gib direkt in eine Zelle(z.B. C1) ein: =Buchstabensalat(A1).

Wenn du nun in A1 ein Wort eingibst, erscheint es in C1 verdreht.

Ich wollte noch ein paar Kommentare schreiben, hatte aber keine Zeit mehr.
Hole ich aber nach, wenn's dich interessiert.

Gruß
Günni

PS.: Hatte übersehen, dass der 1. und der letzte Buchstabe bleiben müssen. Hol ich nach.
Bitte warten ..
Mitglied: Guenni
05.05.2005 um 10:20 Uhr
Programmode, bei dem 1. und letzter Buchstabe im verdrehten Wort stehen bleiben
01.
Dim Kontrollfeld() As Boolean 'Hier werden Zahlen gespeichert, die schon "gezogen" wurden 
02.
 
03.
Dim Wortfeld() As String 'Das Ursprungswort wird hier in Buchstaben zerlegt 
04.
 
05.
Dim NeuesWort 'Das neue, verdrehte Wort 
06.
 
07.
Dim Gefunden 'Kontrollvariable 
08.
 
09.
 
10.
 
11.
'Ermittelt Zufallszahlen aus dem Bereich 1 -n(Wortlänge) 
12.
 
13.
'Wortlänge wird in der Hauptfunktion als Parameter übergeben 
14.
 
15.
Function Zufallszahl(Bereich) As Integer 
16.
 
17.
 Randomize 
18.
 
19.
 Zufallszahl = Int((Bereich * Rnd) + 1) 
20.
 
21.
End Function 
22.
 
23.
 
24.
 
25.
'Hauptfunktion 
26.
 
27.
Function Buchstabensalat(Wort) 'Wort wird im Tabellenblatt durch eine Zelle ersetzt, z.B. A1 
28.
 
29.
 If IsEmpty(Wort) Then Exit Function 'Unterdrückt Fehlermeldung, wenn Zelle leer ist 
30.
 
31.
 ReDim Kontrollfeld(Len(Wort)) 'Kontrollfeld an Wortlänge anpassen 
32.
 
33.
 For i = 1 To UBound(Kontrollfeld) 'Kontrollfeld initialisieren 
34.
 
35.
  Kontrollfeld(i) = False 
36.
 
37.
 Next 
38.
 
39.
 ReDim Wortfeld(Len(Wort)) 'Wortfeld an Wortlänge anpassen 
40.
 
41.
 For i = 1 To Len(Wort) 'Wort in Buchstaben zerlegen, und die Buchstaben in Wortfeld einfügen 
42.
 
43.
  Wortfeld(i) = Mid(Wort, i, 1) 
44.
 
45.
 Next i 
46.
 
47.
 Kontrollfeld(1) = True 'Erster Buchstabe soll nicht per Zufall ermittelt werden 
48.
 
49.
 Kontrollfeld(Len(Wort)) = True 'Letzter Buchstabe soll nicht per Zufall ermittelt werden 
50.
 
51.
 NeuesWort = Wortfeld(1) 'Erster Buchstabe wird eingefügt 
52.
 
53.
 Gefunden = 1 'Erster Buchstabe gefunden 
54.
 
55.
 For i = 2 To Len(Wort) 'In der For-Schleife werden nun die Buchstaben 2 - n per Zufall ermittelt 
56.
 
57.
  'While-Schleife läuft solange, 
58.
 
59.
  'a: ein gefundener Wert bereits vorhanden ist 
60.
 
61.
  'b: oder bereits alle Buchstaben vertauscht wurden 
62.
 
63.
  While Kontrollfeld(z) And Gefunden < Len(Wort) 
64.
 
65.
   z = Zufallszahl(Len(Wort)) 
66.
 
67.
  Wend 
68.
 
69.
  Gefunden = Gefunden + 1 'Kontrollvariable wird solange erhöht, wie Buchstaben vorhanden 
70.
 
71.
  Kontrollfeld(z) = True 'Entsprechendes Feld wird auf TRUE gesetzt 
72.
 
73.
  NeuesWort = NeuesWort + Wortfeld(z) 'Zufällig gef. Buchstabe wird an neues Wort angehangen 
74.
 
75.
 Next 
76.
 
77.
 'Da bereits oben das Finden des letzten Buchstabens ausgeschlossen wurde(Kontrollfeld(Len(Wort)) = True ), 
78.
 
79.
 'muß er nun zum Schluß noch angefügt werden 
80.
 
81.
 NeuesWort = NeuesWort + Wortfeld(Len(Wort)) 
82.
 
83.
 Buchstabensalat = NeuesWort 'Das neue Wort wird an die Funktion übergeben 
84.
 
85.
End Function 
86.
 
87.
 
Bitte warten ..
Mitglied: thorium
09.05.2005 um 08:24 Uhr
Danke für Eure Mühe, aber Psycho Dad hat das Problem bereits mit "normalen Excel Formeln "gelöst.
Bitte warten ..
Mitglied: 8644
09.05.2005 um 12:17 Uhr
Hi,

... trotzdem große Lob an Günni:

riesen Aufwand, toll erklärt!

Psycho
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Spezielles Batch Problem mit Zahlen 20 + 29 (2)

Frage von narthan zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (14)

Frage von liquidbase zum Thema Windows Update ...

DSL, VDSL
Problem mit variernder Internetgeschwindigkeit (12)

Frage von schaurian zum Thema DSL, VDSL ...