Using a formula to specify sheet in Google Spreadsheets - google-sheets

What I did is pseudocode basically and I just want to specify the sheet using a cell as shown in the picture. What is the proper notation (if there is any)?
(Trying to solve E3 in this example. It should show a number from another sheet, and I just want to make it easy to copy/paste down column E by referencing to the sheets using the strings in column A)

You can use INDIRECT() function to do that, for example :
=INDIRECT(A3 & "!B4")
You may need to wrap sheet name with quotes if it contains special character(s) :
=INDIRECT("'" & A3 & "'!B4")

Related

How do I add a 0 in front of a string of numbers for all cells?

I need to add a 0 before all cells in the A column on Google Sheets. Is there a code or formatting function I can add in? I need them to look like A2. A3 is what I have right now. There are a total of 783 that were extracted like this and I don't wanna do this manually
I tried formatting a few ways but I'm still a beginner in Sheets & Excel
You can try with ARRAYFORMULA in another column:
=ARRAYFORMULA(0&A1:A)
=INDEX(0&A1:A)
(PS: you may change A1:A with A1:A783)
If you want to just change the values in that column, you may use FIND AND REPLACE --> (Edit -> Find and Replace), be sure you tick "Search using regular expressions". Put to find ^ and to replace 0
NOTE: thanks to #rockinfreakshow, prior this second option, first format to plain text:
And then do the replacement:
You can use this formula in the adjacent cell:
Then you apply it across all your rows.
Do not forget to copy and paste as values.

Google sheets: Arrayformula with importrange

I'm trying to work with combined arrangeformula and importrange formulas. I want that from spreadsheet1:Table1 P4 value would be taken to spreadsheet2 C3 cell: Table2 and only when i add new link to column "L" it will put automatic value at C4. So i want to use arrangeformula so it will work on whole column, but i want to fix that from all the links i add it would take same "P4" value. Possible?
There is no solution. See link1 and link2
All you can is
={IFERROR(IMPORTRANGE($L3;"Lapas1!A2");"");
IFERROR(IMPORTRANGE($L4;"Lapas1!A2");"");
IFERROR(IMPORTRANGE($L5;"Lapas1!A2");"");
IFERROR(IMPORTRANGE($L6;"Lapas1!A2");"")}
as many times as you wish

Can you copy down an IMPORTXML function using an ArrayFormula?

I'm trying to get the below formula to copy down column D (in red) and have the same results as column E (in green)
={"Query in H1";ARRAYFORMULA(IF(B2:B<>"",(IF(ISNUMBER(SEARCH(B3:B,IMPORTXML(A2:A,"//h1"))),"Yes","No"))))}
This formula collects the H1 (xpath) via the IMPORTXML function of the URL (column A) and checks to see if the keyword (column B) is included. If it is "Yes" if not "No"
See Google Sheet for reference:
https://docs.google.com/spreadsheets/d/1iHkU-rNtNhoOKvW_CWY7WU5OLsMFVqEFNRZlx_R-7RY/edit#gid=1497887942
Your formula just needs a few modifications:
Remove the header text and modify the SEARCH parameters to B2:B such that the formula looks like this:
=ARRAYFORMULA(IF(B2:B<>"",(IF(ISNUMBER(SEARCH(B2:B,IMPORTXML(A2:A,"//h1"))),"Yes","No"))))
Place the formula in the D2 cell.
After all the changes, this is how your sheet will look like:
I have also taken the opportunity to create a copy of the sheet named Answer with all the modifications.
As far as I know, we can not use ImportXML with ArrayFormula, the result after run formular will not correct. Even you see the result run down from the top to the last column, but the result will be wrong.
You can see an example in the screenshot below, with the same URL, the results in Column F and I are different from each other.

Google Sheets Copying Conditional Formatting while adjusting formulas

I have a Google Sheets spreadsheet that uses Conditional Formatting using a formula.
So, for the cell range B2:C2, I have the following formula assigned: =if(B2<100,if(C2<80, true,false),false)
This highlights B2 & C2 if B2 is less than 100 AND C2 is less than 80.
This works.
Now, I want to do this for a bunch of rows. However, if I use either copy/paste special or format painter, it does not translate the formula in the conditional formatting to indicate the new row. They all reference row 2.
Is there a way to do this, or do I have to manually add Conditional Formatting to every row?
Or, is there a better way to do this?
Change range to B2:C and forumula to:
=($B2<100)*($C2<80)

Indirect formula referencing of formula in Google sheets

I have a a Google sheet which have multiple tabs in them
I use formula to get the consolidated info from the known names of the tabs as shown below
=UNIQUE({Appliances!A2:B;'Base, Trim & Crown'!A2:B;'Bathroom Accessories'!A2:B;'Bathroom plumbing'!A2:B;Cabinetry!A2:B;Carpet!A2:B;Closets!A2:B;'Entry Door'!A2:B;'Exterior and Interior Stone'!A2:B;'Exterior Lighting and Fans'!A2:B;'Exterior Siding'!A2:B;Fireplaces!A2:B;'Garage Doors'!A2:B;Gutter!A2:B;'Interior Door'!A2:B;'Kitchen Plumbing'!A2:B;'Paint Color'!A2:B;'Patio Stone'!A2:B;Roofing!A2:B;Slab!A2:B;Staircase!A2:B;Tile!A2:B;'Timbers, Beams & Ceilings'!A2:B;'Windows & Multislides'!A2:B;'Wood Flooring'!A2:B})
Suppose if I add a new sheet tab, this formula need to be updated again, which is cumbersome for me. So I am thinking is it possible to have a range in MASTER sheet that lists all sheetnames one below the other A2:A6 and synamically generate the sheet formula using indirect referencing?
So if I just add the new tab sheet name in MASTER the formula results are auto updated.
A2:A32 contains the list of sheetnames
=INDIRECT(CONCATENATE("{",TEXTJOIN(";",true,ARRAYFORMULA("'" &A2:A32 &"'!" & "A2:B")),"}"))
Well, first of all, INDIRECT doesn't work with ArrayFormula, sadly (I wish). But secondly, what's so cumbersome about updating the formula you have? Just format it like this:
=UNIQUE({
Appliances!A2:B;
'Base, Trim & Crown'!A2:B;
'Bathroom Accessories'!A2:B;
'Bathroom plumbing'!A2:B;
Cabinetry!A2:B;
Carpet!A2:B;
Closets!A2:B;
'Entry Door'!A2:B;
'Exterior and Interior Stone'!A2:B;
'Exterior Lighting and Fans'!A2:B;
'Exterior Siding'!A2:B;Fireplaces!A2:B;
'Garage Doors'!A2:B;
Gutter!A2:B;'Interior Door'!A2:B;
'Kitchen Plumbing'!A2:B;
'Paint Color'!A2:B;
'Patio Stone'!A2:B;
Roofing!A2:B;
Slab!A2:B;
Staircase!A2:B;
Tile!A2:B;
'Timbers, Beams & Ceilings'!A2:B;
'Windows & Multislides'!A2:B;
'Wood Flooring'!A2:B
})
Just add it where you want on the above list, leaving out the semicolon on the last item. (I'm not sure if you meant double quotes or not, so I left it as is.)
Or, if you really want to generate the sheet names from a list, you can use this, based on your above formula:
=ArrayFormula(TEXTJOIN(
";"&CHAR(10),
1,
"'"&SORT(FILTER(A:A,LEN(A:A)))&"'!A2:B"
))
which sorts in alphabetical order too. This outputs something you can copy+paste into your first formula.

Resources