PDA

Vollständige Version anzeigen : Mitte dreier Wörter bestimmen


Irrational
22.08.2017, 18:33
Guten Abend zusammen,
ich versuche mal kurz und bündig mein Problem zu schildern.
Es stehen in Zelle A10: Deutschland Stuttgart Equity
Zelle A11: Italien Rom Equity
Zelle A12: Frankreich Paris Equity
Zelle A13: GB London Equity
..... . : .........
Ich will die "Mitte" dieser Zelle(n) in einer Variablen speichern und dann weiter verwenden. Zum Beispiel/Probe können die Variablen dann in den Zellen B10, B11, B12 und B13 ausgeben werden
Als Lösung müssten dort also stehen:
Zelle B10 :Stuttgart
Zelle B11: Rom
Zelle B12: Paris
Zelle B13: London
Das 3 Wort heißt immer "Equity", wobei das 1 und 2 Wort variable Zeichenlängen haben. Zwischen den Wörter ist ein Leerzeichen
Meine Idee: Ich dachte man kann sich das Equity irgendwie zu nutzen machen und darüber die "Mitte" bekommen/filtern.

Bisher habe ich das immer über Text in Spalten mit Leerzeichen gemacht und dann jeweils die erste und letzte Spalte wieder gelöscht. Formeln im Tabellenblatt darf ich leider nicht verwenden.

Bin für jede Hilfe dankbar.
Viele Grüße Irrational

lupo1
22.08.2017, 18:43
http://www.office-hilfe.com/support/showthread.php/22254-String-oder-csv-mit-Trennzeichen-per-Formel-auf-Zellen-aufteilen

In diesem Falle daraus:

=GLÄTTEN(TEIL(WECHSELN($A1;" ";WIEDERHOLEN(" ";99));SPALTE(B1)*99-98;99))

Irrational
22.08.2017, 18:58
Hallo Lupo1,
vielen Dank für deine Formel. Leider fehlt mir hierfür das Verständnis zur Umsetzung in VBA. Hast du den hierfür auch eine fertigen Code für VBA? Zudem darf ich nicht im Tabellenblatt bzw. Zellen eine Formel reinschrieben.

Vielleicht hat noch jemand oder Lupo1 eine Idee?

Viele Dank und viele Grüße Irrational

Fennek11
22.08.2017, 19:14
Hallo,

ungeprüft:

function Mitte(rng as range) as string
Mitte = split(rng.value)(1)
end function


mfg

Silentwolf
22.08.2017, 19:30
Hallo Irrational,
Du darfst keine Formel im Tabellenblatt verwenden?
Darfst Du aber VBA benutzen?
Na ja wie auch immer... in VBA könntest Du das zweite Wort entweder mit einer funktion oder einer Prozedur erstellen....
Sub ZweitesWort()
Dim varZweitesWort As Variant

varZweitesWort = Split("Deutschland Stuttgart Equity", " ")

'Hier wird das Zweite Wort mit einem Array ausgewählt...
'0 für das erste Wort, 1 für das zweite Wort und so weiter

Debug.Print varZweitesWort(1)


End Sub


Wie Du nun in Deinem Beispiel es anwenden darfst das weißt Du besser...
Du könntest auch eine Funktion schreiben die Dir das ZweiteWort ausgibt und dann weiterverwenden.. also wie immer mehrere Wege führen nach Rom .)

Aber es sollte Dir mal einen Start geben.

Mfg

Silentwolf

Frank Furter
22.08.2017, 22:58
http://www.office-hilfe.com/support/showthread.php/22254-String-oder-csv-mit-Trennzeichen-per-Formel-auf-Zellen-aufteilen

In diesem Falle daraus:

=GLÄTTEN(TEIL(WECHSELN($A1;" ";WIEDERHOLEN(" ";99));SPALTE(B1)*99-98;99))

Hallöchen, hier ginge auch ..:

=ERSETZEN(WECHSELN(A1;" Equity";"");1;SUCHEN(" ";A1);"")

lupo1
23.08.2017, 08:19
Das ist mir schon klar, Frank Furter.

Ich nehme aber nur noch meine Formel, weil ich da - baukastenmäßig - nicht mehr spezialisieren muss. Daher ist sie auch robuster. Auch um den Preis, dass ich 4mal verschachtele, statt wie bei Dir nur 2mal.

Ein Baukasten ist bspw. auch =MAX(;MIN()-MAX()) bei Intervallen in Intervallen.

Irrational
31.08.2017, 19:38
Hallo zusammen,

eine spätes Dankeschön an Alle, ist besser als keines.
Ich habe jeden Ansatz/Lösung für meine Zwecke weiter nutzen können.
Ein dickes Danke.

Viele Grüße,
Irrational