|
Autor
|
Thema: Text rausschneiden (1034 / mal gelesen)
|
Tom2005 Mitglied Elektrotechniker
   
 Beiträge: 1366 Registriert: 12.05.2005 EPLAN 5.70 prof. EPLAN Electric P8
|
erstellt am: 13. Sep. 2022 15:16 <-- editieren / zitieren --> Unities abgeben:         
Ich habe folgende Ausgangssituation in einer Zelle (immer vierzeilig): 123456 Hersteller Artikelbeschreibung Artikelnr. des Herstellers Kann ich ähnlich der Funktionen LINKS oder RECHTS diese Zeilenumbrüche erfassen? Konkret will ich nur die letzte Zeile in eine neue Zelle übertragen bzw. auch die Zeile 3 in eine separate andere Zelle. Diese Zellumbrüche sind per Texteingabe mit Alt+Enter eingegeben worden. Version Excel 365
------------------
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KlaK Ehrenmitglied V.I.P. h.c. Dipl. Ing. Vermessung, CAD- und Netz-Admin

 Beiträge: 2894 Registriert: 02.05.2006 Office 2010; Office365 Visual Basic
|
erstellt am: 13. Sep. 2022 17:39 <-- editieren / zitieren --> Unities abgeben:          Nur für Tom2005
Hallo Tom, Leider gibt es die Rückwärtssuche bei den Standard-Excelfunktionen nicht. Ich habe mir hier in einer Allgemeinen Toolsmappe eine Funktion gelegt, die genau das macht:
Code: Function RevFind(SuchText As String, Text As String) As Long ' Sucht den Suchtext beginnend vom Ende des Textes ' Rückgabe: Stelle innerhalb des Textes RevFind = VBA.InStrRev(Text, SuchText) End Function
In der Exceltabelle brauchst dann nur die Formel: =RECHTS(D6;LÄNGE(D6) - revfind(ZEICHEN(10);D6)) diese gibt die letzte Zeile aus Der vierzeilige Text wäre in diesem Beispiel in Zelle D6 Für die vorletzte Zeile ergäbe es danach: =TEIL(LINKS(D6;revfind(ZEICHEN(10);D6)-1);revfind(ZEICHEN(10);LINKS(D6;revfind(ZEICHEN(10);D6)-1))+1;LÄNGE(LINKS(D6;revfind(ZEICHEN(10);D6)-1))) Natürlich könnte man in VBA auch den ganzen Text in einzelne Zeilen zerlegen und die entsprechende, wenn vorhanden, ausgeben Aber das wäre eine andere Funktion  Grüße Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HenryV Mitglied Konstrukteur, Engineering, Projektassistent
  
 Beiträge: 824 Registriert: 18.05.2005
|
erstellt am: 13. Sep. 2022 18:23 <-- editieren / zitieren --> Unities abgeben:          Nur für Tom2005
Hallo Tom Aufteilen von Text auf verschiedene Spalten mit Funktionen Als Formeln: 1.Zeile =LINKS(A1;SUCHEN(ZEICHEN(10);A1;1)) 2.Zeile =TEIL(A1;SUCHEN(ZEICHEN(10);A1;1)+1;SUCHEN(ZEICHEN(10);A1;SUCHEN(ZEICHEN(10);A1;1)+1)-(SUCHEN(ZEICHEN(10);A1;1)+1)) 3.Zeile =TEIL(A1;SUCHEN(ZEICHEN(10);A1;SUCHEN(ZEICHEN(10);A1;1)+1)+1;SUCHEN(ZEICHEN(10);A1;SUCHEN(ZEICHEN(10);A1;SUCHEN(ZEICHEN(10);A1;1)+1)+1)-(SUCHEN(ZEICHEN(10);A1;SUCHEN(ZEICHEN(10);A1;1)+1))) 4.Zeile =RECHTS(A1;LÄNGE(A1)-SUCHEN(ZEICHEN(10);A1;SUCHEN(ZEICHEN(10);A1;SUCHEN(ZEICHEN(10);A1;1)+1)+1)) Mit eigener Splitt-Funktion (VBA)
Code: Function Splitten(expression As String, delimiter As String, index As Long) As String Splitten = VBA.Split(expression, delimiter)(index-1) End Function
Aufruf für 3. Zeile =Splitten(A1;ZEICHEN(10);3) Gruss Andreas ------------------ 21 ist nur die halbe Antwort. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tom2005 Mitglied Elektrotechniker
   
 Beiträge: 1366 Registriert: 12.05.2005 EPLAN 5.70 prof. EPLAN Electric P8
|
erstellt am: 15. Sep. 2022 06:32 <-- editieren / zitieren --> Unities abgeben:         
Danke für die Antworten, das kommt meiner Idee sehr sehr nahe. Natürlich sind die Rohdaten auch nicht stringend gefüllt, so dass ich nacharbeiten muss, aber das erspart mir viele manuelle Tätigkeiten. ------------------
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Beverly Mitglied Dipl.-Geologe (Rentner)
 
 Beiträge: 401 Registriert: 11.08.2007
|
erstellt am: 21. Sep. 2022 10:50 <-- editieren / zitieren --> Unities abgeben:          Nur für Tom2005
Hi Tom, es geht auch ohne VBA-Function: für Zeile 3 diese Formel: =XMLFILTERN("<x><g>"&WECHSELN(A1;ZEICHEN(10);"</g><g>")&"</g></x>";"//g[3]") für Zeile 4 diese Formel =XMLFILTERN("<x><g>"&WECHSELN(A1;ZEICHEN(10);"</g><g>")&"</g></x>";"//g[4]") Bis später, Karin [Diese Nachricht wurde von Beverly am 21. Sep. 2022 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |