=LAMBDA(text,char,IF(RIGHT(text)=char,RTrimChar(LEFT(text,LEN(text)-1),char),text))
=RTrimChar(A2,"0")
=MAP(A2:A4,LAMBDA(v,RTrimChar(v,"0")))
=LAMBDA(text,[char],LET(char,IF(ISOMITTED(char),"0",char),IF(RIGHT(text)=char,RTrimChar(LEFT(text,LEN(text)-1),char),text)))
=MAP(A2:A4,RTrimChar)
=LAMBDA(text,[char],LET(char,IF(ISOMITTED(char),"0",char),test,RIGHT(text)=char,IF(OR(test),RTrimChar(IF(test,TEXTBEFORE(text,char,-1),text),char),text)))
=RTrimChar(A2:A4)
Function RTrimChar(text As String, char As String) As String
Dim str As String: str = text
Do Until Right(str, 1) <> char
str = Left(str, Len(str) - 1)
Loop
RTrimChar = str
End Function
Function RTrimChar(text As String, char As String) As String
RTrimChar = Replace(RTrim(Replace(text, char, " ")), " ", char)
End Function
FryGirl.xlsm | |||||
---|---|---|---|---|---|
A | B | C | |||
1 | Data | Result 1 | Result 2 | ||
2 | D000000000 | D | D | ||
3 | D0SA000000 | D0SA | D0SA | ||
4 | D1A0000000 | D1A | D1A | ||
5 | |||||
6 | XYZ | XYZ | XYZ | ||
7 | A0B0 | A0B | A0B | ||
8 | D00SA000000 | D00SA | D00SA | ||
Sheet1 |
Cell Formulas | ||
---|---|---|
Range | Formula | |
C2:C8 | C2 | =MAP(A2:A8,LAMBDA(r,LET(n,LEN(r)+1,s,SEQUENCE(n),LEFT(r,n-AGGREGATE(14,6,IF(-RIGHT(r&0,s)=0,s),1))))) |
B2:B8 | B2 | =LET(n,LEN(A2)+1,s,SEQUENCE(n),LEFT(A2,n-AGGREGATE(14,6,IF(-RIGHT(A2&0,s)=0,s),1))) |
Dynamic array formulas. |
FryGirl.xlsm | |||||||
---|---|---|---|---|---|---|---|
A | B | C | D | E | |||
1 | Data | Result 1 | Result 2 | Result 3 | Result 4 | ||
2 | D000000000 | D | D | D | D | ||
3 | D0SA000000 | D0SA | D0SA | D0SA | D0SA | ||
4 | D1A0000000 | D1A | D1A | D1A | D1A | ||
5 | |||||||
6 | XYZ | XYZ | XYZ | XYZ | XYZ | ||
7 | A0B0 | A0B | A0B | A0B | A0B | ||
8 | D00SA000000 | D00SA | D00SA | D00SA | D00SA | ||
9 | D0E000000 | D | D | D0E | D0E | ||
Sheet1 |
Cell Formulas | ||
---|---|---|
Range | Formula | |
C2:C9 | C2 | =MAP(A2:A9,LAMBDA(r,LET(n,LEN(r)+1,s,SEQUENCE(n),LEFT(r,n-AGGREGATE(14,6,IF(-RIGHT(r&0,s)=0,s),1))))) |
E2:E9 | E2 | =MAP(A2:A9,LAMBDA(r,LET(n,LEN(r)+1,s,SEQUENCE(n),LEFT(r,n-AGGREGATE(14,6,IF(RIGHT(r&0,s)=REPT(0,s),s),1))))) |
B2:B9 | B2 | =LET(n,LEN(A2)+1,s,SEQUENCE(n),LEFT(A2,n-AGGREGATE(14,6,IF(-RIGHT(A2&0,s)=0,s),1))) |
D2:D9 | D2 | =LET(n,LEN(A2)+1,s,SEQUENCE(n),LEFT(A2,n-AGGREGATE(14,6,IF(RIGHT(A2&0,s)=REPT(0,s),s),1))) |
Dynamic array formulas. |