Apply formula to the entire column - google-sheets

I'm changing all the zip codes from Column A into Column B with the formula:
=TEXT(A1,"00000")
Like this:
I want every cell in Column B to be transformed using the formula above. But I have over 40,000 rows, so it is not feasible to drag the formula down to apply it to the entire Column B because it takes so long.
Are there any alternatives to dragging?

It looks like some of the other answers have become outdated, but for me this worked:
Click on the cell with the text/formula to copy
Shift+Click on the last cell to copy to
Ctrl + Enter (Cmd + Enter on Mac.)
(Note that this replaces text if the destination cells aren't empty)

I think it's a more recent feature, but...
Double clicking the square on the bottom right of the highlighted cell copies the formula of the highlighted cell.

I think you are in luck. Please try entering in B1:
=text(A1:A,"00000")
(very similar!) but before hitting Enter hit Ctrl+Shift+Enter.
This is a shortcut for wrapping the formula with ArrayFormula():
=ArrayFormula(text(A1:A,"00000"))

This worked for me:
Input the formula in the first cell.
Press Enter.
Click on the first cell and press Ctrl + Shift + down_arrow. This will select the last cell in the column used on the worksheet.
Ctrl + D. This will fill copy the formula in the remaining cells.

This is for those who want to overwrite the column cells quickly (without cutting and copying). This is the same as double-clicking the cell box but unlike double-clicking, it still works after the first try.
Select the column cell you would like to copy downwards
Press Ctrl+Shift+⇓ to select the cells below
Press Ctrl+Enter to copy the contents of the first cell into the cells below
BONUS:
The shortcut for going to the bottom-most content (to double-check the copy) is Ctrl+⇓. To go back up you can use Ctrl+⇑ but if your top rows are frozen you'll also have to press Enter a few times.

For Mac:
Click on the first cell having the formula and press Ctrl + Shift + down_arrow. This will select the last cell in the column used on the worksheet.
Command + D
(don't use ctrl). This will fill the formula in the remaining cells.

Let's say you want to substitute something in an array of string and you don't want to perform the copy-paste on your entire sheet.
Let's take this as an example:
String array in column "A": {apple, banana, orange, ..., avocado}
You want to substitute the char of "a" to "x" to have: {xpple, bxnxnx,
orxnge, ..., xvocado}
To apply this formula on the entire column (array) in a clean an elegant way, you can do:
=ARRAYFORMULA(SUBSTITUE(A:A, "a", "x"))
It works for 2D-arrays as well, let's say:
=ARRAYFORMULA(SUBSTITUE(A2:D83, "a", "x"))

Found another solution:
Apply the formula to the first 3 or 4 cells of the column
Ctrl + C the formula in one of the last rows (if you copy the first line it won't work)
Click on the column header to select the whole column
Press Ctrl + V to paste it in all cells bellow

Just so I don't lose my answer that works:
Select the cell to copy
Select the final cell in the column
Press CTRL+D

You can use Ctrl+Shift+Down+D to add the formula to every cell in the column as well.
Simply click/highlight the cell with the equation/formula you want to copy and then hold down Ctrl+Shift+Down+D and your formula will be added to each cell.

The exact formula is:
=ArrayFormula(text(A1:A,"00000"))
ArrayFormula works on multiple rows (in the above example, every row), and results are placed in the cell with the formula and the cells below it in the same column. It looks as if the same formula was copied into all those rows.
If any of the cells in that column are not empty, they won't get overwritten. Instead, you will get an error message.
To save yourself typing, you can use the trick from the answer above by pnuts:
Type: =text(A1:A,"00000") and then hit the following key combination:
On windows: Ctrl+Shift+Enter
On a MAC: Command+Shift+Enter
This will convert the formula to ArrayFormula.
After hitting the key combination, you need to hit Enter, to actually apply the converted formula.
If your sheet contains header row(s), and you want to apply formula from (for example) row 5 on, you would use =text(A5:A,"00000") instead.
This answer includes information from pnuts's answer and LOAS's comment.

Lambda Solution
Using the new LAMBDA and MAP functions, this is now doable without an ArrayFormula or having to drag anything.
=MAP(A2:A6, LAMBDA(value, TEXT(value, "00000")))
LAMBDA defines a function. value is the parameter, which we can use in the formula expression.
MAP applies the LAMBDA to each value in the given range. This also works on 2D ranges.

To be clear when you us the drag indicator it will only copy the cell values down the column whilst there is a value in the adjacent cell in a given row.
As soon as the drag operation sees an adjacent cell that is blank it will stop copying the formula down.
.e.g
1,a,b
2,a
3,
4,a
If the above is a spreadsheet then using the double click drag indicator on the 'b' cell will fill row 2 but not row three or four.

Well, Another easiest and simplest way is as in my file rows were above 16000, which is pretty huge number. So steps which helped me are:
1. Select the cell in which formula is written.
2. Then go to NameBox(it is the box which tells about active cell). Here in my case it was the cell where was formula was written(i.e P2).
3. Then in that cell type your active cell number:your last row.For example last row of my column was 16745 and formula was written in P2.
So write P2:P16745,
4. Press Enter in Name Box and bingo your whole area of column till last row is selected.
5. Now press Ctrl+D(Windows)

try:
=INDEX(TEXT(A2:A; "00000"))
advantages: short, works, smells nice
to map out empty cells you can do:
=INDEX(IF(A2:A="";;TEXT(A2:A; "00000")))

Reading the answers here did not quite work for me, but a combination did. Here are my steps (Windows, Chrome):
Select the cell with the formula you want to apply to the column (for the whole column, ensure this is the top cell)
Ctrl + Shift + Down (selects all below cells)
Ctrl + D (apply formula)
Done!
Based on:
https://stackoverflow.com/a/61112723/3200858
https://stackoverflow.com/a/51411774/3200858

You may fill the column by double-clicking on the bottom right hand corner of the cell which you want to copy from (the point on the box that you would otherwise drag) and it will be applied to whole column.
NB: This doesn't work if you have the filter applied, nor if there is already something already in the cells below.

Related

Change cell value based on checkbox in Google sheets

I'm using Google sheet to manage my budget (see sample below) where I add each of my expenses as a single entry (yes, sounds like a lot of work). I sometimes split the expense with my roommate but then I have to add the value and divide by 2 everytime.
I was thinking if I could use a checkbox next to the value that will automatically divide the expense number by 2 when I check it. Is this possible?
I'm open to simple suggestions other than the checkbox to automatically update the value. Thank you.
Using simple IF formula you can just check if the checkbox is true, if it is then it will divide the current value on column C by 2. Otherwise it will remain blank.
Formula:
=IF(D1,C1/2,"")
Drag down to other cells.
Result:
Suggestion, Alternate solution:
If you'd like you can make a table with a column for your roommate, instead of editing the actual column so you can see both values. And use this formula:
=if(NOT(D2=""),E2/2,E2)
You have a column for per head contribution/split. If the cell on roommate is blank then it will stay as the total value, if roommate has an additional then it will be added to total and split it by 2.
Or using arrayformula:
=arrayformula(if(NOT(D2:D=""),E2:E/2,E2:E))
Works the same as above you just have to fill the enter the formula in the first cell no need to drag down and it will automatically expand to rows/cells below just make sure that below cells are empty or it will return an error.
Additional - Using same cell
As you've mentioned in the comments. Here's a way to divide the original value without using another cell to store it. (Not recommended)
Formula:
=VALUE/IF(D1,2,1)
example:
=1000/IF(D1,2,1)
Result:
However, I do not recommend this. It is still best to make use of another cell to store the original value before making calculations to it.
Also, using this formula you have to change the value from the formula and not on the cell otherwise you will replace the actual formula.
You can try array approach-
=ArrayFormula(IF(D1:D,C1:C/2,C1:C))

Automatic calculation of cells

I have a Zap running on Zapier that is adding a new row/value to a Google Sheet every hour. I then want to automatically calculate the increase in value between the new row and the previous row. At the moment I have to keep dragging down the formula as new rows are added. Is there a way I can automate this process?
all you need is an array formula:
=ARRAYFORMULA(IF(LEN(B2:B), B2:B-B1:B, ))
If I've understood your question properly you want the same formula (relative to the cells to its left) but have it where you don't have to add the formula every hour?
Can you not just drag down the formula (using the bottom right of the cell) a couple hundred cells? The formula will stay there and replicate the cells relative).
Edit: You can click on the cell which currently has the formula (in your case cell J3). ctrl + C to copy this.
Click on the letter J (to highlight the whole column)
Ctrl + V to paste - this will then paste the formula to the whole column indefinitely.

Remove line break within cell google spreadsheet

Is there an easy way to remove the line breaks within each cell?
Each cell on column E, has extra line that I am having to manually remove, any easy to remove all.
Easiest method:
Bring up the Find and Replace box (Ctrl+h on Windows)
Tick the box Search with regular expressions
In the Find input field, type \n
Leave the Replace with field empty
Click Replace all
(If there are still spaces left, click Replace all again)
How about following sample? This sample supposes that the line break is \r\n and \n.
FLow :
Retrieve the information of line break.
If the line break is \r\n, when the number of \r\n is more than 2, it is modified to char(10).
Sample :
=IF(REGEXMATCH(E1, "\r\n"),REGEXREPLACE(E1, "(\r\n){2,}", char(10)),REGEXREPLACE(E1, "(\n){2,}", char(10)))
Result :
If you want to remove all of the line break, you can use =CLEAN(A1). In this case, the result of the result sheet becomes sample1sample2sample3sample4sample5.
If this was not helpful for you, I'm sorry.
Here is my preferred method to remove leading and trailing line breaks. Note that this will not remove any line breaks in the "middle" of your cells.
Right click on Column E > Insert 1 Right
In column F in the first row that has an extra space: Type the formula =TRIM( select the E cell directly to the right, and enter a closing ). For example, in F2 the formula should look like =TRIM(E2).
This cell should display the correct value. Select this cell and drag the little blue box in the bottom right corner to the bottom of your sheet. This will copy the formula to all other cells, updating the row E references.
When all the data in row F looks as expected, click on the very top of the row to select it and click copy.
Right click on the top of row F again and select Paste Special > Paste Values Only.
Now that Column F has the data you need, you can right click on the top of Row E > Delete column.
Here is the formula I use:
=TRIM(SUBSTITUTE(E2,CHAR(10)," "))
The value CHAR(10) will identify new lines and replace it with a " ".
And the TRIM will remove multiple white spaces.

Function to add 3 rows together in OpenOffice Calc then drag function down for 195,000 rows

I have a spreadsheet with 195,000 rows, There are 3 columns with different numbers in in the 4th column (D1) I enter =A1+B1+C1 and it comes up with the answer, But I can only drag down the AutoSum feature slowly.
Is there a way to automate it so I can have the Autosum for all columns in D so it'd be D1 : D195000?
Here is a simple trick you can do: Write your type on the first cell (D1) and anything to the last one (D198K - use the Navigator tool (F5) to go there fast). Then, copy the cell from the first cell, and press Ctrl + Shift + End (selection till the last cell that contains data) and then make a Paste.
This should paste the type to the selected shells, applying the type in analogy to each cell - unless you have used $ in the type for a cell row and/or column, in order to preserve a cell.
You could simply follow this logic in order to create your own function in OpenOffice Calc.

Excel: How to auto-populate cell with data using static column with a row dependent on another cell?

I've got an spreadsheet with hundreds of problems listed out that map to a smaller number of solutions. I want to use this data to generate a drop down that selects the problem from a data range, and then next to it, another cell that populates the solution from one row over.
Example:
Column A Column B
Issue 1 Solution 1
Issue 2 Solution 4
Issue 3 Solution 5
Issue 4 Solution 1
Issue 5 Solution 1
Issue 6 Solution 3
Issue 7 Solution 2
If I want to create two cells where the first one is a drop down list (A1:A7), how can I make the second cell populate using a static column (B), but with a dynamic row number based off the first cell. So if someone chooses Issue 6 from the dropdown (A6) the second cell will know to populate Solution 3 (B6)?
Thnaks
To do this, you need two steps:
1) For the first cell where you'll have the dropdown option, click on Data Validation command (under the Data ) In the Settings menu in the dialogue box, click on "list" and set the Source to the Column A cells (without the header). This will make these the options in the drop down menu
2) For the second cell where you'll have the solution automatically change depending on the first cell, you'll need to use the vlookup function. The syntax looks like this: VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
In this case, the lookup_value will be the first cell, the table array will be your original table (without the headers), the col_index_num will be 2 (which means it will take the answer from the second column), and range_lookup will be FALSE (which means it will look for an exact match)
If you want more information about either one of these steps, here's the official help sections for Excel 2010: Create a drop down link , Vlookup

Resources