Ich habe eine Liste mit Zahlen in der Form 000000xx oder 00000yyy. Davon gibt es ein paar Tausend. Ich möchte die xx oder yyy extrahieren, aber dafür müsste ich die Anzahl der zu extrahierenden Zeichen angeben. Gibt es eine bessere Möglichkeit, dies zu tun?
Antwort1
Wenn Ihre Daten die Form haben:
1234432566ABC
oder
765257754322XY
Dann haben die letzten drei Zeichen die Form:
ABC
oder
2XY
Wir können bestimmen, ob wir 2 oder 3 Zeichen extrahieren sollen, indem wir prüfen, ob das erste Zeichen des Trios numerisch ist oder nicht:
=IF(ISERROR(--(LEFT(RIGHT(A1,3),1))),RIGHT(A1,3),RIGHT(A1,2))
NOTIZ:
Der entscheidende Trick ist:
- Isolieren des dritten Zeichensvon rechts
- testen zu können, ob es sich um eineZiffer
Antwort2
=REPLACE(A1,1,SUM(--ISNUMBER(-LEFT(A1,ROW($A$1:INDEX($A:$A,LEN(A1)))))),"")
-ISNUMBER(…
1
Gibt für jedes numerische Zeichen in der Zeichenfolge ein zurück .SUM(…
fügt diese dann hinzu, um eine Anzahl der Ziffern am Anfang der Zeichenfolge zurückzugeben.- Wir ersetzen dann
REPLACE
dieSUM
führenden Zeichen durch einen Nullstring.
Antwort3
Dies sollte diexxoderJJJam rechten Ende, solange das Ganze weniger als 99 Zeichen lang ist.
=RIGHT(A2, LEN(A2)-AGGREGATE(14, 7, ROW($1:$99)/ISNUMBER(--MID(A2, ROW($1:$99), 1)), 1))
'alternate
=REPLACE(A2, 1, AGGREGATE(14, 7, ROW($1:$99)/ISNUMBER(--MID(A2, ROW($1:$99), 1)), 1), "")
Die Berechnungseffizienz könnte verbessert werden, wenn Sie die beiden ändern99auf die maximale Anzahl zu entfernender Ziffern.
Antwort4
A1
: 1234432566ABC
A2
: 765257754322XY
B1
, nach unten kopiert:
=RIGHT(A1,ISERR(-LEFT(RIGHT(A1,3)))+2)
Dann,
B1
zurückkehren :ABC
B2
zurückkehren :XY