Join cells with comma and space except when cell is Empty / Blank - excel

Example: =i8&", "&i9&", "&i10 but don't add ", " for any Empty cells.
Result if all (three) cells have data: data, data, data.
Not the result I want, but I am getting: , , data (when the two preceding cells are empty).
TRIM doesn't remove the , ,, nor does Find/Replace.
To join three columns I use:
=i8 & i9 & i10
To break them up with a comma and a space I use:
=i8 & ", " & i9 & ", " & i10
But when one of the cells is empty I don't want ", " before the information from a subsequent column nor ", , " when it is two empty cells.
I have tried to sort on the comma and the space but sometimes that search finds nothing. Besides, I don't want to replace 'comma space' when there IS data. I tried TRIM but that didn't help since it seemed to have no effect, even when it was just an effort to remove one empty space.
Unless someone has a reliable TRIM statement for this?
I would prefer to have a statement that skips empty cells and doesn't include the ", " (comma and space) where there isn't data.
Basically the idea is joining three telephone numbers: "Home Work Cell" into "(515) 555-1234 (H), 515 555-9876 (W), etc."

You can use:
concatenate with a space
then TRIM()
then SUBSTITUTE
=SUBSTITUTE(TRIM(A1 & " " & B1 & " " & C1)," ",", ")

Related

Creating a formula to avoid dragging down without using (=array)

I have three formulas
(1) =(B2:B&"."&substitute(substitute(lower(C2:C),"jalan","jln")," ",""))
(2) =COUNTIF('Payment Configuration'!A:A,A2:A) + COUNTIF('Payment Configuration'!E:E,A2:A)
(3) = =IF(ISBLANK(B:B),,B:B & ", " & UPPER(C:C) & ", BANDAR PUTERI KLANG")
Guys, I want to dragging this formula's until the last row without using Array formula because if I convert this formulas into array somehow it is not working in my web app (which is written in Google App Script). So anyone can help me with this formulas. Thanks in advance
If you want them to only work on a line at a time you need to trim the range to one row only:
=(B2&"."&substitute(substitute(lower(C2),"jalan","jln")," ",""))
=COUNTIF('Payment Configuration'!A:A,A2) + COUNTIF('Payment Configuration'!E:E,A2)
=IF(ISBLANK(B2),,B2 & ", " & UPPER(C2) & ", BANDAR PUTERI KLANG")
With the first two, you could add ISBLANK like your 3rd example.

How to check if a excel cell contains a word

I am looking for an excel formula that either counts or returns true if the cell contains a word pattern (basically wanted to know if any such cell exists), but formula shall recognize a cell as valid only if
Requirement 1 : complete word pattern to be present and as a single word in the cell being checked(Eg: if ab12 is pattern, ab123 is not valid, only ab12 is valid)
Requirement 2 : the matching word can be either in the beginning or end or in middle of the cell being checked
Requirement 3 : The input cell(s) being checked may contain this matching word and can contain prefix/suffix as " "(space) or a line break/feed . Hence, the formula shall identify this cell as valid for both these scenarios
Example word pattern : ab-1_cd_1234
At the moment I have tried both formulas below (also tried with " ","*","~" in the criteria) but didnt work :
Formula 1 : =ISNUMBER(SEARCH(A2,B2))
Here, A2 is the pattern, B2 is the input to verify and will be verified in full B column
Formula 2 : =COUNTIF($B:$B, "* " &A2& " *")
Here, B:B is the input column and A2 is the pattern
Also, I got to know that there is a wildcard in word < and > that defines a word beginning and end, but the same didnt work in excel.
So, it would be great if I can get any formula that works in excel
You can try following formula:
=SUMPRODUCT(--($A$2=FILTERXML("<a><b>" & SUBSTITUTE(SUBSTITUTE(B2,CHAR(10),"</b><b>")," ","</b><b>") & "</b></a>","//b")))>0
Edit
To solve problem with empty strings:
=SUMPRODUCT(--($A$2 & "#"=FILTERXML("<a><b>" & SUBSTITUTE(SUBSTITUTE(B2,CHAR(10),"#</b><b>")," ","#</b><b>") & "#</b></a>","//b")))>0
Edit 2:
To count number of cells which contains pattern you can use array formula:
=SUMPRODUCT(--(IFERROR(SEARCH(" " & A2 & " "," " & SUBSTITUTE($B$2:$B$10,CHAR(10)," ") & " "),0)>0))
Array formula after editing is confirmed by pressing ctrl + shift + enter
Please try this formula, where A3 is a text to be searched and the text to be found is in A1.
=IF(ISERROR(FIND(" "&$A$1&" "," "&SUBSTITUTE(A3,CHAR(10)," ")&" ")),"",TRUE)

Formula to remove leading characters

Is there a function that I can use to remove the first few characters from a cell?
Example
1 some text
23 some more text
I need to remove the numbers so that the cells read
some text
some more text
You can use LEFT, RIGHT and MID functions to slice bits of Text out of a cell, and LEN to find the number of characters in a cell. The FIND function will return the position of a specified bit of text within a cell. And you can use the & operator to join text together
So If A1 holds "some text 23 some more text" then the following formula in B1
=LEFT(A1,10)&RIGHT(A1,14)
would return "some text some more text"
If the numbers are randomly interspersed within the text however, then you will have to resort to VBA to remove them
If you only need to remove numbers (as in all numbers) from a cell you can also repeatedly use SUBSTITUTE
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,0,""),1,""),2,""),3,""),4,""),5,""),6,""),7,""),8,""),9,"")
Though it would leave behind double spaces " " in the end so you might want substitue those double spaces with single spaces. In the following it replaces it 5 times (assuming the text would be something like some text 23 01 52 63 some more text
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,0,""),1,""),2,""),3,""),4,""),5,""),6,""),7,""),8,""),9,"")," "," ")," "," ")," "," ")," "," ")," "," ")

Put in one field, values from other fields in one row with some extra text EXCEL

I have situation like his
Text Number Letter Color
empty 1 A Blue
I want to put vales from Number, Letter and Color in Text field to look like this:
Text Number Letter Color
Number is: 1 1 A Blue
Letter is: A
Color is: Blue
How to put all this value from other fields with some extra text into one field in excel?
use
="Number is: " & B2 & char(10) & "Letter is: " & C2 & Char(10) & "Color is: " & D2
Make sure WrapText is enabled.
If you have TEXTJOIN then you can use this array:
=TEXTJOIN(CHAR(10),,$B$1:$D$1 & " is: " & B2:D2)
Being an array formula it must be confirmed with Ctrl-Shift-Enter instead of Enter when Exiting edit mode.
TEXTJOIN was introduced with Office 365 Excel
To do in separate cells put this in the first cell:
=INDEX($B$1:$D$1,,ROW(1:1)) & " is: " & INDEX($B$2:$D$2,,ROW(1:1))
And copy down.
Excel Method
Use the formula =INDEX($C$1:$E$1,,ROW(1:1)) & " is: " & INDEX($C$2:$E$2,,ROW(1:1)) INSIDE EACH Cell you want it to copy the data from.
GOOGLE SHEET METHOD
You can use the formula: ={{"Number is: ", C2}; {"Letter is: ", D2}; {"Color is: ", E2}} In any 1 cell. Giving you this.

Excel spreadsheet - combine rows in column 1 and 2, 3 and 4 and so on

The only way my client can provide me these addresses is with the location is in one row: Location Name, street address, city.....and then the row below it contains the zip code. This repeats for 1600 lines.
I, of course, need all the info on one line. Is there a genius out there than knows how to make short work of putting the zip code on the line above it?
If you have address in columns A, B and C in the first row and zip code in column A in second row, try the below formula,
=INDEX(A:A,ROW()*2-1,1)&" " &INDEX(B:B,ROW()*2-1,1)& " " & INDEX(C:C,ROW()*2-1,1)& " " &INDEX(A:A,ROW()*2,1)
If you are starting from some other row other than row 1, you may have to modify the formula a little bit. Hope this helps.
Use a formula to combine your columns.
Here we have some test data.
In column D, specify a formula such as =A1 & ", " & B1 & " " & C1
If you're no familiar with formulas, just use "=" to denote the start of one, and then use "&" to concatenate your values.
As for as implementing this on a multi-row basis, you can easily do so. Once you drag your formula down, it'll auto increment the column names unless you specifically specified it not to. I won't get into that right now though.
So what I would do is just add an IF statement in your formula to account for those rows which are not intended to be used. Using a formula such as this: =IF(B1="", "", A1 & ", " & B1 & " " & A2), I can get the following results.

Resources