I want combine the row and column names where they intersect. I tried to use concatenate with reference cells, but filling down and across requires changing the references of multiple cells. I am dealing with a large grid (2000 rows x 200 columns). Is there a formula that will help me fill down and across?
Before & Desired Results Picture
The formula you need to use is
=CONCATENATE($A2, " > ", B$1)
$ sign 'locks' the cell, whereas cell without it is copied across.
Related
I'm trying to find a way to know how many non-empty cells are in column B, for all rows in which there is one same value in Column A.
e.g. Column A Row 1-5 is value "1", I want know how many nonempty cells are next to the value "1".
I want to do the same thing, but instead of counta, I want to do it for countif as well for columns C, and D for various values (countif(C2:C, "Banana"
The ultimate goal is being able to delete and add rows without breaking the formula and copy paste the formula to easily make new batches.
Here is my example sheet I'm working on. I can't figure out how to make vlookup or array work for me here, I'm not very good at this.
https://docs.google.com/spreadsheets/d/1PxP2pOyV916HWVGHjOsLUDwZN2lcGQ6PrBuzDqigwO8/edit?usp=sharing
Complete column A with
=ArrayFormula(lookup(row(A2:A),row(A2:A)/if(A2:A<>"",1,0),A2:A))
and then perform Pivot Table as you wish
I have an excel formula that is looking for some courses in an array from a cell. In the picture below the column A2 is populated automatically from Wix with an array of courses that can contain 1 to 10 courses. And in regard to this array, the A:K columns are populated with 1 if the course exist in the array and 0 if not.
The formula is: =--ISNUMBER(FIND(""""&B2:K2&"""",A2))
The problem is when I fill a row and drag and drop to populate the formula to a great number of rows, the formula is changing. I need to keep B2:K2 the same, and only the A2 should change . If the row is A3, in the formula I should have =--ISNUMBER(FIND(""""&B2:K2&"""",A3)).
How can I automatically do this, because I have a large numbers if rows, and cannot right the formula to all rows?
If you want to keep B2:K2 constant then lock them by $ means absolute position like-
=--ISNUMBER(FIND(""""&$B$2:$K$2&"""",A2))
You can try below formula at once for whole range of data.
=IF(ISERROR(FILTERXML("<t><s>"&SUBSTITUTE(A2:A4,",","</s><s>")&"</s></t>","//s[contains(., '" & $B$1:$K$1 & "')]")),0,1)
I have a table (Table 1) with range D1:F20. In this table I have a series of data. Several rows in Table 1 have #N/A in cells of column D.
D1:F1 are headers.
I would like to create another table (Table 2) that collects all data in Table 1 except those rows that have #N/A. As I am thinking about it, I presume this will have to be an array formula that will loop through the rows in Table 1 and post to table 2 those without #N/A.
I have built the following formula:
{=INDEX($D$1:$F$20,MATCH(FALSE,ISERROR(D2),0))}
I have made it to be an array formula but it's not working. At the moment, it just returns Table 1 as it is, i.e., with all rows including those with #N/A.
How can I achieve the desired result?
Use this formula and copy down to get just the non-error cells from your column D:
=IFERROR(INDEX(D:D,SMALL(INDEX(NOT(ISERROR($D$2:$D$11))*ROW($D$2:$D$11),),SUMPRODUCT(--ISERROR($D$2:$D$11))+ROW(H1))),"")
Then you can do a VLOOKUP formula to get the contents from your columns D and E (assuming the contents of column D are unique).
If the contents of column D are not unique, copy this formula over to get the contents of E and F.
To increse formula performance, I recommend putting the Sumproduct portion in its own cell (this cell can be hidden, or even be put on a different worksheet and hide that worksheet), so that it is only calculated once and then referenced, instead of having each formula calculate it all over again. This also lets you avoid the Iferror so that the formula doesn't have to be calculated when it runs out of valid values. We'll say the Sumproduct formula gets put in cell Z1 as just this:
=SUMPRODUCT(--ISERROR($D$2:$D$11))
And then the main formula becomes this:
=IF(ROW(A1)>$Z$1,"",INDEX(D:D,SMALL(INDEX(NOT(ISERROR($D$2:$D$11))*ROW($D$2:$D$11),),$Z$1+ROW(A1))))
I have approx. 100 rows by 60 columns with numbers which I'd need to be arranged in (same) bins categories. (12 bins)
In a new sheet, I used the frequency formula to look at the first row and return in an array in a column the distribution in bins. It worked for the first row of the source data but now I'd like that when I drag the formula to the next column, the data array in the frequency formula to move to the next row of the data source and return the distribution by bins.
Is it possible, can you please help with this one? Or is there any other way I can do such a bin arrangement? Need frequencies for A, B,C etc..and would like to drag the formula to the right, if that is possible.
partial data-distributed horizontally
Use the following formula for Column U:
=FREQUENCY(INDIRECT(ADDRESS(COLUMN()-19,3) & ":" & ADDRESS(COLUMN()-19,18)),$T$3:$T$17)
and drag/copy across as required. For details on INDIRECT function see this.
Note: INDIRECT is a volatile function and hence is recalculated every time anything changes in the worksheet.
See image for results based on data provided by you.
I would prefer to use an excel array formula (but if it can only be done in VBA, so be it) that copies ALL cells from a column array that contains specific text. The picture below shows what I am after and what I have tried. I'm getting close (thanks to similar, but different questions) but can't quite get to where I want. At the moment, I am getting only the first cell instead of all the cells. In my actual application, I am searching through about 20,000 cells and will have a few hundred search terms. I expect most search terms to give me about 8 - 12 cells with that value.
formula I am using:
=INDEX($A$4:$A$10,MATCH(FALSE,ISERROR(SEARCH($C$1,$A$4:$A$10)),0))
Spredsheet Image
To make this work efficiently, I recommend having a separate cell holding the results count (I used cell C2) which has this formula:
=COUNTIF(A:A,"*"&C1&"*")
Then in cell C4 and copied down use this array formula (The -3 is just because the header row is row 3. If the header row was row 1, it would be -1):
=IF(ROW(A1)>$C$2,"",INDEX($A$4:$A$21000,SMALL(IF(ISNUMBER(SEARCH($C$1,$A$4:$A$21000)),ROW($A$4:$A$21000)-3),ROW(C1))))
I tested this with 21000 rows of data in column A with an average of 30 results per search string and the formula is copied down for 60 cells in column C. With that much data, this takes about 1-2 seconds to finish recalculating. Recalculation time can vary widely depending on other factors in your workbook (additional formulas, nested dependencies, use of volatile functions, etc) as well as your hardware.
Alternately, you could just use the built-in Filter functionality, but I hope this helps.
You need to get the ROWS. Put this in C4 and copy down.
=IFERROR(AGGREGATE(15,6, IF(SEARCH($C$1, $A$4:$A$10)>0, ROW($A$4:$A$10)), ROW($C4)-ROW($A$4)+1), "")
Array formula so use ctrl-shift-Enter