P
PapaDos
An array formula (Ctrl-Shift_Enter) solution is possible:
=MID( LEFT( A1, MAX( ISNUMBER( -MID( A1 & "_", ROW($1:$50), 1 ) ) * NOT(
ISNUMBER( -MID( A1 & "_", ROW($2:$51), 1 ) ) ) * ROW($1:$50) ) ), MAX( NOT(
ISNUMBER( -MID( "_" & A1, ROW($1:$50), 1 ) ) ) * ISNUMBER( -MID( "_" & A1,
ROW($2:$51), 1 ) ) * ROW($1:$50) ), 999999 )
But it is not reliable if you insert or delete rows.
This one is safer but slower because it is "volatile":
=MID( LEFT( A1, MAX( ISNUMBER( -MID( A1 & "_", ROW( INDIRECT( "$1:$50" )) ,
1 ) ) * NOT( ISNUMBER( -MID( A1 & "_", ROW( INDIRECT( "$2:$51" ) ), 1 ) ) ) *
ROW( INDIRECT( "$1:$50" ) ) ) ), MAX( NOT( ISNUMBER( -MID( "_" & A1, ROW(
INDIRECT( "$1:$50" ) ), 1 ) ) ) * ISNUMBER( -MID( "_" & A1, ROW( INDIRECT(
"$2:$51" ) ), 1 ) ) * ROW( INDIRECT( "$1:$50" ) ) ), 999999 )
They are good for up to 50 characters strings (it can be adjusted as needed).
They both return a #VALUE! error if the string contains no number...
--
Regards,
Luc.
"Festina Lente"
=MID( LEFT( A1, MAX( ISNUMBER( -MID( A1 & "_", ROW($1:$50), 1 ) ) * NOT(
ISNUMBER( -MID( A1 & "_", ROW($2:$51), 1 ) ) ) * ROW($1:$50) ) ), MAX( NOT(
ISNUMBER( -MID( "_" & A1, ROW($1:$50), 1 ) ) ) * ISNUMBER( -MID( "_" & A1,
ROW($2:$51), 1 ) ) * ROW($1:$50) ), 999999 )
But it is not reliable if you insert or delete rows.
This one is safer but slower because it is "volatile":
=MID( LEFT( A1, MAX( ISNUMBER( -MID( A1 & "_", ROW( INDIRECT( "$1:$50" )) ,
1 ) ) * NOT( ISNUMBER( -MID( A1 & "_", ROW( INDIRECT( "$2:$51" ) ), 1 ) ) ) *
ROW( INDIRECT( "$1:$50" ) ) ) ), MAX( NOT( ISNUMBER( -MID( "_" & A1, ROW(
INDIRECT( "$1:$50" ) ), 1 ) ) ) * ISNUMBER( -MID( "_" & A1, ROW( INDIRECT(
"$2:$51" ) ), 1 ) ) * ROW( INDIRECT( "$1:$50" ) ) ), 999999 )
They are good for up to 50 characters strings (it can be adjusted as needed).
They both return a #VALUE! error if the string contains no number...
--
Regards,
Luc.
"Festina Lente"