Google Sheets: Copying Sheet Loses a Few Named Ranges - google-sheets

I have a spreadsheet with 2 sheets, one is for "Analysis", and the 2nd ("Data") is for lists (dropdowns etc). This my "Master Copy" that only I can update.
When I've added new features etc to my Master, I copy both the Analysis and Data sheets to an existing copy, which allows anyone to view and use, create their own copy, etc. Then I delete the original sheets in this public spreadsheet, and rename the updated sheets so they don't have "Copy..." in the sheet name.
It seems that after I have copied the updated sheets to the "public" spreadsheet, a few of the Named Ranges disappear. This is quite a problem.
As a newbie, I'm unsure if I'm doing something wrong?

Related

Using Spreadsheet Sort with Relative References and Multiple Sheets

Here is the background: I have multiple sheets with multiple columns of different data in each sheet.
What I'd like to do: I have used one sheet as a "base" sheet, linking "other sheets" to its data to retrieve it using relative references. Okay, fine, it works.
The Issue: When I sort the data on the base sheet, it also sorts it automatically on the other sheets. Great, that's expected. However, all the other various columns on the other sheets stay static, but the columns that are linked with the base sheet are the only ones that shift. This is a problem, because the data is now mismatching across rows.
Question: How can I make the columns on the other sheet "persistent" even if I sort the data on the base sheet?
the only way is to bind your "static column" via a common link (be it ID or row position or something else that fits your needs)

Using text from a cell in a formula in Google Sheets

I would like to use the text from a cell in a formula in Google Sheets.
I have a document with multiple sheets that a variety of people can edit with a H,M,L (high, medium, low) value from a drop-down list. Each person has their own tab in the Google Sheet.
I then have a dashboard that populates based on their choices of H,M,L. I know that I can use the formula =('Jay Delacruz'!C6) for example to populate a cell in another sheet by manually selecting the cells on the other sheet.
However, I am looking to make quite a few of these documents automatically with another Google Script that I am running that creates the individual sheets from a roster of names on the first tab.
My question is, is it possible to have a =('Jay Delacruz'!C6) type formula that instead of the sheet reference it can pull the name of the person from the roster, as this will match exactly the sheets that are automatically generated by the script I have running.
So I would essentially have a pre-populated dashboard of formulae that would become valid once the sheets are created with the names, as created by the other script.
If it makes it a little clearer, there is a link below to make a copy of the Sheet I am working with. All names were randomly generated, so don't reference any real people or data.
https://docs.google.com/spreadsheets/d/1NiXqko8SibD6VsfrnFcj7e7c99Hg-RoSlHVAYWb0E94/copy
Thank you in advance!
Liam
Try
=INDIRECT(C1&"!C6")
Also see here for more info on INDIRECT() function.

Google Sheets - linking two separate sheets and importing values

I have two spreadsheets:
A budget sheet, with estimated costs and actual costs. Replicated here: https://docs.google.com/spreadsheets/d/1J8wPicVyfs98QXRXRCHZoq-Y6Uoi75Iv8WitGja4Pic/edit#gid=0
A cost tracking sheet, with the actual costs and reference to receipts. Replicated here: https://docs.google.com/spreadsheets/d/1YclB3V3817Q-RGwuzrOXoZkarwFszaTqwUFurtYtLVo/edit#gid=0
Currently I am importing the 'actual costs' in the budget sheet, by referencing rows from the 'actual costs' in the tracking sheet
So my budget sheet references the cost tracking sheet this way:
=(importrange("spreadsheet_key","sheet_name!I76"))
This works fine, however, if I insert a new row into my cost tracking sheet above some of the values I am already referencing, it will not dynamically update.
So if I insert a new row above:
=(importrange("spreadsheet_key","sheet_name!I76"))
I then have to manually change it in the other sheet too for each item:
=(importrange("spreadsheet_key","sheet_name!I77"))
Is anyone aware of a way I can link two sheets and still be able to insert rows without this breaking?
Thanks
Sounds like you want a sheet that updates when new values are entered into a separate sheet? I think a short script similar to the one proposed in this question should work for you.
Detect user inserting row or column in a google spreadsheet and reacting in a script

Copy the last populated row in a Google Sheet to a different spreadsheet

I'm new to programming and would really appreciate some help.
I have two different spreadsheets, one named Database (this is where we put all the details) and the other is named Checklist, both have 1 worksheet each named Sheet1.
Now, what I wanted to do is to get the last populated row from the Database spreadsheet into the Checklist spreadsheet.
I know a formula like:
=FILTER('Sheet 2'!A:A , ROW('Sheet 2'!A:A) =MAX( FILTER( ROW('Sheet 2'!A:A) , NOT(ISBLANK('Sheet 2'!A:A)))))
This gets the last populated row, but this only works within one spreadsheet and doesn't work when I'm working on two different spreadsheets.
How can I get this formula to work with 2 different spreadsheets?
Thank you so much
To access data from another spreadsheet, you can use IMPORTRANGE() (documentation). I suggest you create a new sheet in your Checklist spreadsheet and import the sheet you need from Database into it. Then you'll be able to use your formula.
In Checklist, create a new sheet called "[IMPORTED] Database" (or something like that)
In cell A1 of "[IMPORTED] Database", enter =IMPORTRANGE("database_spreadsheet_url", "Sheet1!A:Z") (modify the range to be what you actually need)
Now adjust your formula for getting the last value to be =FILTER('[IMPORTED] Database'!A:A, ROW('[IMPORTED] Database'!A:A)=MAX(FILTER(ROW('[IMPORTED] Database'!A:A), NOT(ISBLANK('[IMPORTED] Database'!A:A)))))

Is there a way to list all sheets on a google spreadsheet using native functions?

I create many dashboards on Google Spreadsheet, which are basically a spreadsheet containing a bunch of sheets with all sort of different data. Some of these spreadsheets can have up to 30 sheets or more.
I want a way to list the name of all sheets in a spreadsheet on a column using native functions.
I know this could be easily done with a custom function. However this would bring some complications regarding the workflow in my company.
Is there a way to accomplish that without using custom functions?
Thank You very much!
This works in Excel, so if you are able to export your workbook and save it as an Excel file rather than Google Doc this will work.
Go to your "Name Manager"
Create a 'New' name and call it "Sheets"
Insert this formula into the 'Refers to' box =TRANSPOSE(GET.WORKBOOK(1))&T(NOW())
Now insert this formula where you want the list of Sheet names =IFERROR(INDEX(MID(Sheets,FIND("]",Sheets)+1,255),ROW(A1),1),"")
Drag the formula down so A1 progresses (A1 represents the sheet number that you are getting the name of).
Source of solution

Resources