remove number from a column in excel - excel

I am having a column as below in excel. Consider it as a column of elements.
excel_data:
Animal
Dog12ag
Cat13
Choco1234ttt
I need to remove from number in excel.
Desired output:-
Animal
Dog
Cat
Choco
Is there any formula for doing it?

Try:
Formula in B1:
=#TEXTSPLIT(A1,SEQUENCE(10,,0))
Or, in a single go:
Formula in B1:
=TEXTSPLIT(A1:A4,SEQUENCE(10,,0))
Thanks to #Ike.

The following will spill the results:
=BYROW(A1:A4,LAMBDA(b,LEFT(b,MIN(FIND({1,2,3,4,5,6,7,8,9,0},b&"1234567890")-1))))

You may try this as well,
• Formula used in cell B1,
=LET(x,MIN(IFERROR(SEARCH(ROW($1:$10)-1,A1),"")),
IF(x<>0,REPLACE(A1,x,255,""),
A1))
Edit: Using TEXTBEFORE()
=TEXTBEFORE(A1,SEQUENCE(10,,0),,,1,A1)
Or,
=TEXTBEFORE(A1:A4,SEQUENCE(10,,0),,,1,A1:A4)

Related

How to extract numbers with separation in Excel

Does anyone knows any formula to extract the number with separation (dot, comma) from cell A1 to cell B1?
Example, I want to extract 2,590.00 from cell A1 which has the following value:
[sum: 2,590.00]
I got the formula below that works nice, however is just getting all numbers e.g. 259000
{=TEXTJOIN("",TRUE,IFERROR((MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)*1),""))}
I appreciate every support
Under O365 you can try the following in cell B1 which is a very concise approach:
=TEXTAFTER(TEXTBEFORE(A1,"]"), "sum: ")
Here is the output:
For excel-2019, similar idea but using SUBSTITUTE instead to remove the prefix ([sum: ) and the suffix (]):
=SUBSTITUTE(SUBSTITUTE(A1,"[sum: ",""),"]","")
You can use a formula like as below:
• Formula used in cell B1
=MAX(IFERROR(--MID(SUBSTITUTE(A1,"]",""),ROW($ZZ1:INDEX($ZZ:$ZZ,LEN(A1))),LEN(A1)),0))
• With OFFICE 365, you can try this in cell C1
=--INDEX(TEXTSPLIT(A1,{":","[","]"},,1),,2)
• Formula used in cell D1
=SUBSTITUTE(TEXTAFTER(A1," "),"]","")*1

How to concat 2 cells in excel

I have it in my cells A5:
A:E
and in my cell B6, I have it :
3
I try to say in other cells :
A3:E3
to select all row from A3 to E3
I tried to use Concat with excel but it put me error
thanks for reading me
EDIT
Is this what you are trying to achieve, as BigBen Sir, rightly mentioned you need INDIRECT Function
=INDIRECT(LEFT(A5)&B6&":"&RIGHT(A5)&B6)
If you dont want to use INDIRECT Function as just show as A3:E3, then simply,
=LEFT(A5)&B6&":"&RIGHT(A5)&B6
An INDEX/INDIRECT Combination
This looks like the most 'elegant' solution to me:
INDEX(INDIRECT($A$5),$B$6,) ' short for INDEX(INDIRECT($A$5),$B$6,0)
Credits should also go to P.b, who figured it out earlier in the comments.
It took me a while since I started with the wrong formula INDEX(INDIRECT($A$5),$B$6) ignoring the column argument.
Only when I realized that =COLUMNS(INDIRECT($A$5)) returned 5, I got back to INDEX and figured it out.
Here are a few examples of how you can utilize it:
=COUNT(INDEX(INDIRECT($A$5),$B$6,))
=SUM(INDEX(INDIRECT($A$5),$B$6,))
=AVERAGE(INDEX(INDIRECT($A$5),$B$6,))
Try:
=LEFT(A1;FIND(":";A1)-1)&A2&RIGHT(A1;FIND(":";A1))&A2
A2 contains "3", A1 contains "A:E"

Is there a formula or function to clean away unique identifier in 1 cell?

For example, I have a list of data as per Column A. Is there a formula or way to clean up the data so that it will reflect the end product in Column B? Thank you.
If one has access to TEXTJOIN then formula in B1:
=TEXTJOIN(CHAR(10),1,FILTERXML("<t><s>"&SUBSTITUTE(SUBSTITUTE(A1,CHAR(10),"#"),"#","</s><s>")&"</s></t>","//s[position() mod 2 = 1]"))
Or, if you sure all values after # are numeric:
=TEXTJOIN(CHAR(10),1,FILTERXML("<t><s>"&SUBSTITUTE(SUBSTITUTE(A1,CHAR(10),"#"),"#","</s><s>")&"</s></t>","//s[.*0!=0]"))
Note: Enter through CtrlShiftEnter
For more FILTERXML "tricks", see here

match two columns and concatenate them

I have column A and B, i want to concatenate A with B values into c column using formula but need help. The problem is, if column B has more than two colors, then the formula breaks. I'm not quit sure how to fix the formula to support more than 2 colors which will likely happen on my worksheet. Here's the formula:
=IF(AND(A1="---",B1="---"),"---",IF(A1="",CONCATENATE(OFFSET(A1,-1,0)," - ",B1),CONCATENATE(A1," - ",B1)))
Try:
C1: =CONCATENATE(MAX($A$1:A1),"-",B1)
and fill down.
To account for the "---" entries:
C1: =IF(AND(A1="---",B1="---"),"---",CONCATENATE(MAX($A$1:A1),"-",B1))
Edit: Oh, and if the labels in Column A might not be in a nice numerical sequence, or might be text, you can use:
C1: =IF(AND(A1="---",B1="---"),"---",CONCATENATE(LOOKUP(2,1/(LEN($A$1:A1)>0),$A$1:A1),"-",B1))
Try this:
=INDEX(A:A,MATCH(1E+99,$A$1:A1))&"-"&B1

excel partial match in any of the lookup data

I have data in column A and B have lookup data.
For A2 (FY|F|V|D|Safety|3M). take the B column first value and search whether there is any match if not take second value in B column and repeat the process for all the B column values and if there is match print the B column value in Result. Does that make sense?
I tried with VLOOKUP but no luck. Please help me.
Columns:
A B(Lookup) C(Result)
FY|F|V|D|Safety|3M Toro 3M
FY|F|V|D|POP|ToroDays 3M Toro
FY|F|V|D|Lumber|GroundContact honeywell NA(Not available)
FY|F|V|D|airfilters|honeywell samsung honeywell
Enter the following formula in Cell C2
=IFERROR(INDEX($B$2:$B$5,MATCH(TRUE,IF(FIND($B$2:$B$5,A2)>0,TRUE),0)),"NA")
This is an array formula so commit it by pressing Ctrl+Shift+Enter. Drag/Copy down as required. Change range as needed.
See image for reference.
NOTE : Above formula is case-sensitive. If you want non-case-sensitive result you can use following formula.
=IFERROR(INDEX($B$2:$B$5,MATCH(TRUE,IF(FIND(UPPER($B$2:$B$5),UPPER(A2))>0,TRUE),0)),"NA")
In C2, put this and drag down:
=IF(ISERR(SEARCH($B2,$A2)),"N/A",$B2)
Here you go. A Google docs spreadsheet you can see.. The screenshots are from it.
Formulas
Results
You could have string with Toro3M in it, or all 4 for that matter.
The solution I have solves that. But you'd need to tweak to add commas or some such seperator.. And conditionally do it if cell in column F-I are zero length.

Resources