How to split a single row into multiple columns in Excel - excel

In Excel, I want to split up the data in row 1 into four single columns. A1:D1 should remain in place. E1:H1 should become A2:D2 and so on.
I am currently using this formula in A2:
INDEX($1:$1;(ROW()-1)*4+COLUMN()-1)
... But I am getting a #REF! error.
How do I solve this problem?

Try using this formula in Cell A2 (you may need to use semicolon instead of commas in non-English version of Excel)
=OFFSET(A$1,0,(ROW()-1)*4)
Then, copy & paste or drag the formula across columns B thru D, as many rows as you need.
Alternatively, your formula (=INDEX($1:$1,(ROW()-1)*4+COLUMN()-1)), is not returning an error for me, however it is not returning the correct column. If you prefer the Index function you can use:
=INDEX($1:$1,(ROW()-1)*4+COLUMN())
Substitute semicolons for commas if needed.

Related

Excel:Sum of numbers in a column with data in each cell having two numbers separated by slash (Eg:12/24)

Currently having data like this for a specific column where it needs both numbers to be shown in a single cell separated by a slash
Is it possible to sum on such a column in Excel
to get the total at the bottom as 94/76
I tried using
=SUM(LEFT(I3,FIND("/",I3)-1):LEFT(I7,FIND("/",I7)-1))
Just to see if the part to the left of the slash would get added but it didn't work.
You could try IMSUM():
Formula in A6:
=SUBSTITUTE(SUBSTITUTE(IMSUM(SUBSTITUTE(A1:A4,"/","+")&"i"),"+","/"),"i","")
I guess this needs to be CSE-entered if one use an Excel version other than Microsoft365.
You can use this formula to sum the values to the left of the /,
=SUM(LEFT(A2:A5,FIND("/",A2:A5)-1)+0)
and this to sum the values to the right.
=SUM(MID(A2:A5,FIND("/",A2:A5)+1,255)+0)
You might need to enter these as array formulas using CTRL+SHIFT+ENTER and you'll probably need to alter the cell references.
So, based on my comment:
=Left(I3,2)*1
in one column and dragged down,
and
=RIGHT(I3,LEN(I3)-FIND("/",I3,1))*1
also dragged down, then in the following row two sums and finally
=J9&"/"&K9
Assuming the helper columns are J & K. The *1 is to turn text into a value.
You may try FILTERXML().
=SUM(FILTERXML("<t><s>"&SUBSTITUTE(A1:A4,"/","</s><s>")&"</s></t>","//s[1]")) & "/" & SUM(FILTERXML("<t><s>"&SUBSTITUTE(A1:A4,"/","</s><s>")&"</s></t>","//s[last()]"))

Advance search to find duplicate records in Excel

I want to find similar data in Excel cell based on characters for example in one column I have ABCDEF and another column I have DEAFBC, so in this case both cell contains characters abcdef, any solution to match?
I tried like, similar, partial match options in Excel which didn't meet my results.
Separate each letter into it's own cell (text to columns, fixed width). Copy to a new column first if you want to keep the original data.
Sort each row (this is a little tricky, but it is possible - see my example.)
Combine the cells again by just stitching them together using &.
You can now sort to easily see duplicates or remove them etc.
The formula to paste into cell I2 in my example is:
=INDEX($B2:$G2, MIN(IF(SMALL(COUNTIF($B2:$G2, "<"&$B2:$G2), COLUMNS($H2:H2))=COUNTIF($B2:$G2, "<"&$B2:$G2), ROW($B2:$G2)-MIN(ROW($B2:$G2))+1)), MATCH(SMALL(COUNTIF($B2:$G2, "<"&$B2:$G2), COLUMNS($H2:H2)), COUNTIF($B2:$G2, "<"&INDEX($B2:$G2, MIN(IF(SMALL(COUNTIF($B2:$G2,"<"&$B2:$G2),COLUMNS($H2:H2))=COUNTIF($B2:$G2,"<"&$B2:$G2), ROW($B2:$G2)-MIN(ROW($B2:$G2))+1)), , 1)), 0), 1)
Make sure you hit Ctrl+Enter when exiting the cell, since this is an array formula.

Excel formula to split and assighn value to each cell in Excel

I have a column in excel with the below values
Now I want to split that column into 4 columns with the values as below.
Am trying with Excel formulas using nested if with AND, OR and substitute, but not able to achieve it. Any suggestions/help on how can I get this ?
Thanks in Advance
One solution to Your problem, if not this might move you to the correct answer, could be
=IF(ISNUMBER(SEARCH(C$1,$A2)),IFERROR(MID($A2,FIND(C$1&" $ ",$A2)+6,LEN(C$1)),MID($A2,FIND(C$1&" $",$A2)+5,LEN(C$1))),0)
Im assuming that your Column 1 starts in A1 and your first input is in A2 further more im assuming headers ABC, DEF... are put in from C1. So putting this formula in C2 you can drag this across and down.
The IFERROR handles the possibility that there is a space behind the $

search multiple columns for a value and concatenate the address of the cells

I have been breaking my head over this formula for sometime now. I have found a solution which is too big and not so convenient to use every time. So can any Excel Expert give me a solution/suggestion?
Column A contains 150 values. Column D to R contains a table in which I need to look up the values in A one by one. I want to return address of all the cells that contains the value.
For example, Value in A2 is present in cells D5, E15, H10, R3 then my result should be D5,E15,H10,R13.
Please Note that some columns may not contain the value of A2, I do not want them displayed.
Here is the formula I have written:
=CONCATENATE(
IF(A2=IF(COUNTIF(D:D,A2),VLOOKUP(A2,D:D,1,FALSE),""),ADDRESS(MATCH(A2,D:D,0),4,4),0),",",
IF(A2=IF(COUNTIF(E:E,A2),VLOOKUP(A2,E:E,1,FALSE),""),ADDRESS(MATCH(A2,E:E,0),5,4),0),",",
IF(A2=IF(COUNTIF(F:F,A2),VLOOKUP(A2,F:F,1,FALSE),""),ADDRESS(MATCH(A2,F:F,0),6,4),0),",",
IF(A2=IF(COUNTIF(G:G,A2),VLOOKUP(A2,G:G,1,FALSE),""),ADDRESS(MATCH(A2,G:G,0),7,4),0),",",
IF(A2=IF(COUNTIF(H:H,A2),VLOOKUP(A2,H:H,1,FALSE),""),ADDRESS(MATCH(A2,H:H,0),8,4),0),",",
IF(A2=IF(COUNTIF(I:I,A2),VLOOKUP(A2,I:I,1,FALSE),""),ADDRESS(MATCH(A2,I:I,0),9,4),0),",",
IF(A2=IF(COUNTIF(J:J,A2),VLOOKUP(A2,J:J,1,FALSE),""),ADDRESS(MATCH(A2,J:J,0),10,4),0),",",
IF(A2=IF(COUNTIF(K:K,A2),VLOOKUP(A2,K:K,1,FALSE),""),ADDRESS(MATCH(A2,K:K,0),11,4),0),",",
IF(A2=IF(COUNTIF(L:L,A2),VLOOKUP(A2,L:L,1,FALSE),""),ADDRESS(MATCH(A2,L:L,0),12,4),0),",",
IF(A2=IF(COUNTIF(M:M,A2),VLOOKUP(A2,M:M,1,FALSE),""),ADDRESS(MATCH(A2,M:M,0),13,4),0),",",
IF(A2=IF(COUNTIF(N:N,A2),VLOOKUP(A2,N:N,1,FALSE),""),ADDRESS(MATCH(A2,N:N,0),14,4),0),",",
IF(A2=IF(COUNTIF(O:O,A2),VLOOKUP(A2,O:O,1,FALSE),""),ADDRESS(MATCH(A2,O:O,0),15,4),0),",",
IF(A2=IF(COUNTIF(P:P,A2),VLOOKUP(A2,P:P,1,FALSE),""),ADDRESS(MATCH(A2,P:P,0),16,4),0),",",
IF(A2=IF(COUNTIF(Q:Q,A2),VLOOKUP(A2,Q:Q,1,FALSE),""),ADDRESS(MATCH(A2,Q:Q,0),17,4),0),",",
IF(A2=IF(COUNTIF(R:R,A2),VLOOKUP(A2,R:R,1,FALSE),""),ADDRESS(MATCH(A2,R:R,0),18,4),0))
As I said, this works but I am looking for a simpler and smaller formula.
Hint: Maybe using array can help?
Thanks in advance :)
What you are trying to accomplish is not a great fit for Excel formulas, but it can be done with a smaller, simpler formula dragged across 15 columns instead of 1 giant complicated formula that tries to do everything at once.
Assuming column A has 150 values (from A1 to A150), and there is a table going from D1 to R50...
Enter =S1&IFERROR(","&ADDRESS(MATCH($A1,D$1:D$50,0),COLUMN(D1)),"") into T1.
Drag the formula across to AH1.
Enter =RIGHT(AH1,LEN(AH1)-1) into AI1.
Select T1 to AI150 and press Ctrl-D.
Column AI1 will contain the results you are looking for.
How does this work?
The formula in T1 begins by taking the result of one cell to the left (which is blank). Then it concatenates this with the address of the first match in column D (prefixed by a comma). If there is no match, it just concatenates blank (""). As you drag this formula to the right, it keeps concatenating addresses as matches come up (or blank if there are none). When you get to the end, you will have looked for matches in all 15 column of your table.
The formula in AI1 just strips off the initial comma if there is one.

Split multiple names separated by semicolon into separate cells - Excel

I have a series which goes something like this
John Blogs;John Bloggs;Jean Bloke;Jordon Bean, etc etc up to 10 names in a cell.
I need a formula to split each full name into a separate cell...I've been working with MID, FIND, etc but can't seem to get past the 3 name before coming unstuck!!!
Wonder if anyone can help!
Thanks
Ben
I would suggest using "text-to-column" function with semi-colon as a delimiter.
If you insist on using formula, this will work for you:
Let's assume you text is in cell A1. Then in B1 type =";"&A1&";".
Input 1 to 9 from cell A2 to I2.
In A3, type in the formula =MID($B$1,FIND(CHAR(1),SUBSTITUTE($B$1,";",CHAR(1),A2))+1,FIND(CHAR(2),SUBSTITUTE($B$1,";",CHAR(2),A2+1))-FIND(CHAR(1),SUBSTITUTE($B$1,";",CHAR(1),A2))-1).
Copy this formula to B3, C3, .. , I3.
Split your work over many columns rather than a single formula.
You are correct to use FIND() to get the offset of the ";".
And to use LEFT() to extract a name, with MID() to extract the remaining string.
Then you either have an empty cell, or you have a cell with up to 9 names in it.
Repeat the process across the sheet to get all your names, plus perhaps some cells containing #VALUE errors.
To display the output without the errors, use something like =IF(ISERR( A1 ), "", A1).
Of course hide all your working once done.

Resources