Inhalt Zelle kopieren wenn Nachbarzelle "X"
#11
(16.11.2015, 21:12)WillWissen schrieb: Das wäre eine tolle Sache. Im Forum "Komplettlösungen" wäre für einen Namensgenerator prima Platz. *freu* Es fällt ja immer wieder Usern schwer, eine Tabelle zu anonymisieren.

Also Günter,

ich habe mal einige Namensgeneratoren heraus gesucht, welche schon recht gute Arbeit leisten Angel :
http://de.fakenamegenerator.com/
http://realnamecreator.alexjonas.de/?l=de
http://www.vorname.com/babynamen_generator.html
http://www.schreibwerkstatt.de/namensgen...t6660.html
https://www.schreiblabor.com/generator/realnames/

Für meine eigenen Projekte verwende ich vielfach die offizielle Liste der Bundestags-Abgeordneten, die können sich ja nicht wehren :05:
Beste Grüße
  Günther

Excel-ist-sexy.de
  …schau doch mal rein!
Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
Top
#12
Moin Günther!
Der letzte sieht nicht schlecht aus!
Alle haben aber den Nachteil, dass man erst kopieren muss und Text in Spalten durchführen muss.
Wenn das so einfach wäre, hätten wir als Helfer in den Foren ja nichts mehr zu tun ...  :21:

Mein Ansatz war es eine Excel-Funktion zu erstellen und somit Zufalls-Vor- und Nachnamen direkt in der Tabelle bereitzustellen.
Hier wurde ich tatsächlich im WWW nicht fündig!
Im Anhang mal ein Archiv mit einer Beispieldatei sowie den beiden .txt-Namenslisten.
Bitte in ein Verzeichnis extrahieren, ist bisher ja nur ein Zwischenstand, die UDFs greifen auf ThisWorkbook.Path zu.

Ziel ist natürlich, die Namen als Texte in die Tabelle zu schreiben, das Ganze benutzerfreundlich über ein AddIn mit grafischer Oberfläche.

Die UDFs bedienen sich der zwei prinzipiellen Möglichkeiten des Zugriffs auf eine Textdatei:

Function NachnameZufall() As String
Dim Zufall As Long, Counter As Long
Zufall = WorksheetFunction.RandBetween(1, 630)
'Pfad anpassen!!!
Open ThisWorkbook.Path & "\Nachnamen.txt" For Input As #1
Do While Not EOF(1)
  Counter = Counter + 1
  Line Input #1, NachnameZufall
  If Counter = Zufall Then
     Close #1
     Exit Function
  End If
Loop
End Function

Function VornameZufall(Optional Geschlecht As String = "a") As String
Dim FSO As Object
Dim arr As Variant
Dim txtDatei As Object
Dim stext As String
Dim Zufall As Long
With WorksheetFunction
  Select Case CStr(Geschlecht)
     Case "a": Zufall = .RandBetween(0, 619)
     Case "m": Zufall = .RandBetween(0, 309)
     Case "w": Zufall = .RandBetween(310, 619)
  End Select
End With
Set FSO = CreateObject("Scripting.FilesystemObject")
Set txtDatei = FSO.opentextfile(ThisWorkbook.Path & "\Vornamen.txt") 'Öffnen
stext = txtDatei.readall 'Lesen
txtDatei.Close 'Schließen
arr = Split(stext, vbCrLf) 'In Zeilen aufteilen
VornameZufall = arr(Zufall)
End Function

Gruß Ralf


Angehängte Dateien
.zip   Zufallsnamen.zip (Größe: 20,97 KB / Downloads: 7)
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)
Top
#13
Hi Daniel,


Zitat:Beide würden passen aber ich kann bei beiden keine zusätzliche Zeile einfügen sonst passt das komplette System nicht mehr

da ich dein "komplettes System" nicht kenne, solltest du es uns mal vorstellen. Lies mal bitte hier.

Ich gehe jetzt von meiner eigenen Beispieldatei aus und zeige dir anhand eines "Vorher - Nachher"-Tabellenausschnitts, wie du nach einfügen einer Überschriftenzeile die ersten Formeln anpasst und per Doppelklick auf das Ausfüllkästchen kopierst.

Vier Zeilen ohne Überschrift (vorher):

Tabelle2 (2)

ABCD
1Böhm  Jacobs  
2Jacobs  x2Paulus  
3Paulus  x3
4Wichmann  
Formeln der Tabelle
ZelleFormel
C1=WENN(B1="x";ZEILE();"")
D1=WENNFEHLER(INDEX(A:A;KKLEINSTE(C:C;ZEILE(A1)));"")
C2=WENN(B2="x";ZEILE();"")
D2=WENNFEHLER(INDEX(A:A;KKLEINSTE(C:C;ZEILE(A2)));"")
C3=WENN(B3="x";ZEILE();"")
D3=WENNFEHLER(INDEX(A:A;KKLEINSTE(C:C;ZEILE(A3)));"")
C4=WENN(B4="x";ZEILE();"")
D4=WENNFEHLER(INDEX(A:A;KKLEINSTE(C:C;ZEILE(A4)));"")

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8

Überschriftszeile eingefügt (nachher) - ausgelesene Namen stimmen nicht mehr (Formeln beachten!!) 

Tabelle2 (2)

ABCD
1NameAuswahlHS
2Böhm  Paulus  
3Jacobs  x3
4Paulus  x4
5Wichmann  
Formeln der Tabelle
ZelleFormel
C2=WENN(B2="x";ZEILE();"")
D2=WENNFEHLER(INDEX(A:A;KKLEINSTE(C:C;ZEILE(A2)));"")
C3=WENN(B3="x";ZEILE();"")
D3=WENNFEHLER(INDEX(A:A;KKLEINSTE(C:C;ZEILE(A3)));"")
C4=WENN(B4="x";ZEILE();"")
D4=WENNFEHLER(INDEX(A:A;KKLEINSTE(C:C;ZEILE(A4)));"")
C5=WENN(B5="x";ZEILE();"")
D5=WENNFEHLER(INDEX(A:A;KKLEINSTE(C:C;ZEILE(A5)));"")

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8

Formel korrigiert in D1 und nach unten gezogen (bzw. Doppelklick auf das Ausfüllkästchen)

Tabelle2 (2)

ABCD
1NameAuswahlHS
2Böhm  Jacobs  
3Jacobs  x3Paulus  
4Paulus  x4
5Wichmann  
Formeln der Tabelle
ZelleFormel
C2=WENN(B2="x";ZEILE();"")
D2=WENNFEHLER(INDEX(A:A;KKLEINSTE(C:C;ZEILE(A1)));"")
C3=WENN(B3="x";ZEILE();"")
D3=WENNFEHLER(INDEX(A:A;KKLEINSTE(C:C;ZEILE(A2)));"")
C4=WENN(B4="x";ZEILE();"")
D4=WENNFEHLER(INDEX(A:A;KKLEINSTE(C:C;ZEILE(A3)));"")
C5=WENN(B5="x";ZEILE();"")
D5=WENNFEHLER(INDEX(A:A;KKLEINSTE(C:C;ZEILE(A4)));"")

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#14
Hi Günther,

die Generatoren sind ja wirklich nicht schlecht - danke für die Links. Da ich selbst in der Regel ja nur wenige Zeilen in einer Beispielmappe schreibe, habe ich mir nie schwer getan, Namen "zu erfinden". Genügend Farben, Berufe bzw. Fantasienamen à la Grünspan-Hintermooser, Liebling-Mayerle usw. gibt es ja.

@Ralf,

deine Beispielmappe schaue ich mir heute Abend an - muss jetzt gleich nochmal weg. Sieht aber vielversprechend aus.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#15
(16.11.2015, 20:17)WillWissen schrieb: Hallo zusammen,

dann hätte ich noch eine matrixfreie Alternative...

Hi, dann habe ich auch noch'n Gedicht..:

Arbeitsblatt mit dem Namen 'Blatt2'
 ABCD
1NameAuswahlHS 
2Böhm    Jacobs  
3Jacobs  x1Richter  
4Paulus    Schott  
5Wichmann    Rau  
6Schmitz    Pfaff  
7Richter  x2Geyer  
8Hammer    Schröder  
9Reichert     
10Schott  x3 
11Rau  x4 
12Brückner     
13Stolz     
14Pfaff  x5 
15Rohde     
16Frank     
17Haag     
18Geyer  x6 
19Neubert     
20Schröder  x7 
21Meister   

ZelleFormel
C2=WENN(B2="x";MAX($C$1:C1)+1;"")
D2=WENN(ZEILE(A1)<=MAX(C:C);VERWEIS(ZEILE(A1);$C$2:$C$21;$A$2:$A$21);"")
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg
Gruß Jörg
stolzes Mitglied im ----Excel-Verein
Freund einer excellenten Power Query-Abfrage
Top
#16
Hi Jörg,

jetzt hat der Fragesteller aber die Qual der Wahl.

Aber so ganz nebenbei fällt mir etwas aus unserer gemeinsamen grauen Vorzeit ein:

Tabelle2 (2)

EF
6meinsL
7=WENN(B2="x";ZEILE();"")24
8=WENNFEHLER(INDEX(A:A;KKLEINSTE(C:C;ZEILE(A1)));"")51
9
10deins
11=WENN(B2="x";MAX($C$1:C1)+1;"")31
12=WENN(ZEILE(A1)<=MAX(C:C);VERWEIS(ZEILE(A1);$C$2:$C$21;$A$2:$A$21);"")70
Formeln der Tabelle
ZelleFormel
F7=LÄNGE(E7)
F8=LÄNGE(E8)
F11=LÄNGE(E11)
F12=LÄNGE(E12)

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8

:89:

Nur umgekehrt  :49:
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#17
(17.11.2015, 20:48)WillWissen schrieb: Hi Jörg,

jetzt hat der Fragesteller aber die Qual der Wahl.

Aber so ganz nebenbei fällt mir etwas aus unserer gemeinsamen grauen Vorzeit ein:

:89:

Nur umgekehrt  :49:

Hi Günter, was denn..? Es kommt nicht immer auf die LÄNGE() an... :87:
Gruß Jörg
stolzes Mitglied im ----Excel-Verein
Freund einer excellenten Power Query-Abfrage
Top
#18
Hallo,

wahnsinn was hier abgeht, finde ich cool wie schnell einen geholfen wird, Danke

Da ich selbst nicht wusste wie das Gebilde was ich aufbauen möchte in Excel funktioniert, entsteht es noch teilweise durch eure Vorschläge. Ziel ist eine Exceltabelle über mehrere Seiten zu erstellen wo quasi alles von selbst befüllt wird und nur ausgedruckt werden muss. Dazu brauche ich natürlich hilfstabellen wie diese.

Ich habe mal dieses Addin ausprobiert mal schauen ob es funktioniert. Also bei der neuen Formel von Jörg erhielt ich eine Fehlermeldung und die von Günther geht zwar die Auswahl mit dem x aber die Sparte wird nur der erst punkt eingetragen. Noch ein anderer Punkt, ich möchte noch mehrere Hilfstabellen auf dieser einbauen. In den Formeln wird aber z.B: die komplette Spalte C:C angesprochen. Kann ich diese auch auf einen Bereich einfach begrenzen oder gibt es dann Probleme ?



Empfehlungen für Gutachten (2)

ABCDEFGHIJK
2SparteGesellschaftAltNeuAuswahlHilfsspalteSparteGesellschaftBeitrag Daniel AlbertBeitrag Denise Albert
3BerufsunfähigkeitNürnberger SBU2800 C - 1500 BU bis 6312,00 €34,00 €x3BerufsunfähigkeitAxa23,00 €56,00 €
4PflegeversicherungAxa23,00 €56,00 €x4VHV34,00 €67,00 €
5UnfallversicherungVHV34,00 €67,00 €x5Europa12,00 €45,00 €
6TodesfallabsicherungEuropa12,00 €45,00 €x6VHV34,00 €23,00 €
7HaftpflichtVHV34,00 €23,00 €x7Allianz12,00 €67,00 €
8KrankenzusatzAllianz12,00 €67,00 €x8Mannheimer56,00 €12,00 €
9KrankentagegeldMannheimer56,00 €12,00 €x9VHV1,00 €2,00 €
10Hausrat / GlasVHV1,00 €2,00 €x10Plussimo1,00 €2,00 €
11WohngebäudePlussimo1,00 €2,00 €x11Auxilia1,00 €2,00 €
12RechtschutzAuxilia1,00 €2,00 €x12Continentale1,00 €2,00 €
13KfzContinentale1,00 €2,00 €x1301,00 €2,00 €
14Kfz01,00 €2,00 €x14
15Anhänger00,00 €0,00 €0
Formeln der Tabelle
ZelleFormel
J2="Beitrag "&(Eingabe!H29)& ""
K2="Beitrag "&(Eingabe!I29)&""
A3=Eingabe!F57
B3=Eingabe!G57
C3=Eingabe!H57
D3=Eingabe!I57
G3=WENN(E3="x";ZEILE();"")
H3=WENNFEHLER(INDEX(A:A;KKLEINSTE(E:E;ZEILE(A1)));"")
I3=WENNFEHLER(INDEX(B:B;KKLEINSTE(G:G;ZEILE(B2)));"")
J3=WENNFEHLER(INDEX(C:C;KKLEINSTE(G:G;ZEILE(C2)));"")
K3=WENNFEHLER(INDEX(D:D;KKLEINSTE(G:G;ZEILE(D2)));"")
A4=Eingabe!F58
B4=Eingabe!G58
C4=Eingabe!H58
D4=Eingabe!I58
G4=WENN(E4="x";ZEILE();"")
H4=WENNFEHLER(INDEX(A:A;KKLEINSTE(E:E;ZEILE(A2)));"")
I4=WENNFEHLER(INDEX(B:B;KKLEINSTE(G:G;ZEILE(B3)));"")
J4=WENNFEHLER(INDEX(C:C;KKLEINSTE(G:G;ZEILE(C3)));"")
K4=WENNFEHLER(INDEX(D:D;KKLEINSTE(G:G;ZEILE(D3)));"")
A5=Eingabe!F59
B5=Eingabe!G59
C5=Eingabe!H59
D5=Eingabe!I59
G5=WENN(E5="x";ZEILE();"")
H5=WENNFEHLER(INDEX(A:A;KKLEINSTE(E:E;ZEILE(A3)));"")
I5=WENNFEHLER(INDEX(B:B;KKLEINSTE(G:G;ZEILE(B4)));"")
J5=WENNFEHLER(INDEX(C:C;KKLEINSTE(G:G;ZEILE(C4)));"")
K5=WENNFEHLER(INDEX(D:D;KKLEINSTE(G:G;ZEILE(D4)));"")
A6=Eingabe!F60
B6=Eingabe!G60
C6=Eingabe!H60
D6=Eingabe!I60
G6=WENN(E6="x";ZEILE();"")
H6=WENNFEHLER(INDEX(A:A;KKLEINSTE(E:E;ZEILE(A4)));"")
I6=WENNFEHLER(INDEX(B:B;KKLEINSTE(G:G;ZEILE(B5)));"")
J6=WENNFEHLER(INDEX(C:C;KKLEINSTE(G:G;ZEILE(C5)));"")
K6=WENNFEHLER(INDEX(D:D;KKLEINSTE(G:G;ZEILE(D5)));"")
A7=Eingabe!F61
B7=Eingabe!G61
C7=Eingabe!H61
D7=Eingabe!I61
E7=Eingabe!K61
G7=WENN(E7="x";ZEILE();"")
H7=WENNFEHLER(INDEX(A:A;KKLEINSTE(E:E;ZEILE(A5)));"")
I7=WENNFEHLER(INDEX(B:B;KKLEINSTE(G:G;ZEILE(B6)));"")
J7=WENNFEHLER(INDEX(C:C;KKLEINSTE(G:G;ZEILE(C6)));"")
K7=WENNFEHLER(INDEX(D:D;KKLEINSTE(G:G;ZEILE(D6)));"")
A8=Eingabe!F62
B8=Eingabe!G62
C8=Eingabe!H62
D8=Eingabe!I62
E8=Eingabe!K62
G8=WENN(E8="x";ZEILE();"")
H8=WENNFEHLER(INDEX(A:A;KKLEINSTE(E:E;ZEILE(A6)));"")
I8=WENNFEHLER(INDEX(B:B;KKLEINSTE(G:G;ZEILE(B7)));"")
J8=WENNFEHLER(INDEX(C:C;KKLEINSTE(G:G;ZEILE(C7)));"")
K8=WENNFEHLER(INDEX(D:D;KKLEINSTE(G:G;ZEILE(D7)));"")
A9=Eingabe!F63
B9=Eingabe!G63
C9=Eingabe!H63
D9=Eingabe!I63
G9=WENN(E9="x";ZEILE();"")
H9=WENNFEHLER(INDEX(A:A;KKLEINSTE(E:E;ZEILE(A7)));"")
I9=WENNFEHLER(INDEX(B:B;KKLEINSTE(G:G;ZEILE(B8)));"")
J9=WENNFEHLER(INDEX(C:C;KKLEINSTE(G:G;ZEILE(C8)));"")
K9=WENNFEHLER(INDEX(D:D;KKLEINSTE(G:G;ZEILE(D8)));"")
A10=Eingabe!F79
B10=Eingabe!G79
C10=Eingabe!H79
D10=Eingabe!I79
E10=Eingabe!K79
G10=WENN(E10="x";ZEILE();"")
H10=WENNFEHLER(INDEX(A:A;KKLEINSTE(E:E;ZEILE(A8)));"")
I10=WENNFEHLER(INDEX(B:B;KKLEINSTE(G:G;ZEILE(B9)));"")
J10=WENNFEHLER(INDEX(C:C;KKLEINSTE(G:G;ZEILE(C9)));"")
K10=WENNFEHLER(INDEX(D:D;KKLEINSTE(G:G;ZEILE(D9)));"")
A11=Eingabe!F80
B11=Eingabe!G80
C11=Eingabe!H80
D11=Eingabe!I80
E11=Eingabe!K80
G11=WENN(E11="x";ZEILE();"")
H11=WENNFEHLER(INDEX(A:A;KKLEINSTE(E:E;ZEILE(A9)));"")
I11=WENNFEHLER(INDEX(B:B;KKLEINSTE(G:G;ZEILE(B10)));"")
J11=WENNFEHLER(INDEX(C:C;KKLEINSTE(G:G;ZEILE(C10)));"")
K11=WENNFEHLER(INDEX(D:D;KKLEINSTE(G:G;ZEILE(D10)));"")
A12=Eingabe!F81
B12=Eingabe!G81
C12=Eingabe!H81
D12=Eingabe!I81
E12=Eingabe!K81
G12=WENN(E12="x";ZEILE();"")
H12=WENNFEHLER(INDEX(A:A;KKLEINSTE(E:E;ZEILE(A10)));"")
I12=WENNFEHLER(INDEX(B:B;KKLEINSTE(G:G;ZEILE(B11)));"")
J12=WENNFEHLER(INDEX(C:C;KKLEINSTE(G:G;ZEILE(C11)));"")
K12=WENNFEHLER(INDEX(D:D;KKLEINSTE(G:G;ZEILE(D11)));"")
A13=Eingabe!F82
B13=Eingabe!G82
C13=Eingabe!H82
D13=Eingabe!I82
E13=Eingabe!K82
G13=WENN(E13="x";ZEILE();"")
H13=WENNFEHLER(INDEX(A:A;KKLEINSTE(E:E;ZEILE(A11)));"")
I13=WENNFEHLER(INDEX(B:B;KKLEINSTE(G:G;ZEILE(B12)));"")
J13=WENNFEHLER(INDEX(C:C;KKLEINSTE(G:G;ZEILE(C12)));"")
K13=WENNFEHLER(INDEX(D:D;KKLEINSTE(G:G;ZEILE(D12)));"")
A14=Eingabe!F83
B14=Eingabe!G83
C14=Eingabe!H83
D14=Eingabe!I83
G14=WENN(E14="x";ZEILE();"")
H14=WENNFEHLER(INDEX(A:A;KKLEINSTE(E:E;ZEILE(A12)));"")
I14=WENNFEHLER(INDEX(B:B;KKLEINSTE(G:G;ZEILE(B13)));"")
J14=WENNFEHLER(INDEX(C:C;KKLEINSTE(G:G;ZEILE(C13)));"")
K14=WENNFEHLER(INDEX(D:D;KKLEINSTE(G:G;ZEILE(D13)));"")
A15=Eingabe!F84
B15=Eingabe!G84
C15=Eingabe!H84
D15=Eingabe!I84
E15=Eingabe!K84
G15=WENN(E15="x";ZEILE();"")
H15=WENNFEHLER(INDEX(A:A;KKLEINSTE(E:E;ZEILE(A13)));"")
I15=WENNFEHLER(INDEX(B:B;KKLEINSTE(G:G;ZEILE(B14)));"")
J15=WENNFEHLER(INDEX(C:C;KKLEINSTE(G:G;ZEILE(C14)));"")
K15=WENNFEHLER(INDEX(D:D;KKLEINSTE(G:G;ZEILE(D14)));"")

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Top
#19
Hi Daniel,

im Anhang habe ich dir mal eine Tabelle "zum Spielen" hochgeladen. Tabelle1 funktioniert mit meinem Vorschlag (auf ganze Spalten ausgerichtet). Zusätzlich habe ich dir die Einträge ab Spalte I mit einem SVERWEIS automatisiert. Suchbegriffe müssen eindeutig sein - schau deshalb, wie ich deine Einträge KFZ geändert habe.

Auf deine Frage nach der Bereichsbegrenzung:


Code:
=WENNFEHLER(INDEX($A$1:$A$18;KKLEINSTE($G$3:$G$18;ZEILE(A1)));"")


Natürlich wieder angepasst auf die tatsächlichen Bereiche.

In Tabelle1 (2) habe ich Jörgs Vorschlag eingearbeitet. Auch hier musste der Bereich an deine Tabelle angepasst werden. Was hast du denn eigentlich für eine Fehlermeldung bekommen? Wenn so etwas auftaucht, solltest du den Helfern den Inhalt der Meldung mitteilen - nur aufgrund der Info, dass eine solche da ist, kann niemand gezielt helfen.


.xlsb   Daniel_Albert-Auslesen von Zellen.xlsb (Größe: 16,99 KB / Downloads: 8)
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
[-] Folgende(r) 1 Nutzer sagt Danke an WillWissen für diesen Beitrag:
  • Daniel Albert
Top
#20
Hallo Günter,

ja du hast recht ich hätte den Fehler beschreiben sollen war mit euren viellen Ideen aber voll überfordert. Jetzt habe ich das auch mit Kfz verstanden, stimmt hast recht muss eindeutig sein.

Habe deine Alternativem mit Sverweis genommen und die Spaltelänge begrenzt.

Danke für eure Hilfe.

Funktioniert. Jetzt muss ich die anderen Bereiche noch einbasteln. Hoffe ich bekomme auch mal was ohne euch hin.

Gruß daniel
Top


Gehe zu:


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