Link columns so data updates are properly reflected - google-sheets

I have a column with data values and I want to link it to other columns in the same and different sheets but in the same spreadsheet. This is, having the same data in different columns in a spreadsheet while keeping all linked so updates on the source one would affect all of them.
I've tried with:
=SheetName!ColumnIndex:ColumnIndex
(e.g. =Sheet1!A:A) but, although it works, it is a cell reference not a column reference.
What is the best way to achieve it?

Maybe what you want is just the array version of what you have already tried:
=arrayformula(Sheet1!A:A)
(If not, please clarify!)

Related

Align imported Data with manually added data

Example File: https://docs.google.com/spreadsheets/d/1Ht_2QMGMbHmlxSPoOiLX2vw78IL1wp3VhpOOc66eMqY/edit#gid=0
We are filling Point 1 - 4 manually. The data in A,B,C is sorted through C and will change every now and then. The problem I am noticing now is that A,B,C is moving. But D:G will stay in the same column.
We want to use this file to fill in the data since its our main file. So using the initial =query to also take into account D:G is not an option.
Would there be any other way to "link" D:G to the corresponding values in A:C?
Looking at your sheet I noticed you try a VLOOKUP formula.
Please try the following formula
=INDEX(IFERROR(VLOOKUP(A1:A;Blad1!A2:I;{6\7\8\9};0)))
Of course your approach would cause problems. You're trying to map manual data to some data that is bound to change. You can't expect the manual data to move or change in sync when the imported data changes.
You could probably make it work at least if the imported data does not change in order, and instead gets any new data appended. Even then, it doesn't help you if any of the imported rows gets deleted.
There are only two ways I could see to make this work:
Map your manual data as part of the original sheet where your other data is imported from. In other words, make D:G part of the source of A:C, if possible. This is the best approach. Works even when some imported rows get deleted or changed.
Don't sort A:C at source. Simply append new rows, and import as is. Keep your Blad1 sheet as the local source sheet, and add your manual data to D:G here. Then create a new sheet for sorting or do any other thing you'd like, and use this new sheet to feed your Blad2 sheet. This doesn't work if some of the imported rows get deleted or changed.

Conditional formatting based on multiple criteria

I don't know if what I wrote in the title is specific enough to what I'm looking for, anyway, I'll try and explain as much as possible here.
I have two sheets, one is the layout, the other is the database.
The layout is a layout of computers in an office, and in the database I have various information about those computers (e.g. manufacturer, processor, etc).
What I'm looking for is a way to change the colors of the cells in the layout sheet based on the data in the 'db' sheet.
This is the first sheet, where numbers are the ID's of the computers.
On the second sheet, I have more information about each number.
This is from the second sheet, the 'db' sheet.
What I'm trying to do here is change the colors of the cells in the first sheet based on information on the second sheet and based on the dropdown selected.
For example, in the pictures above, I have chosen 'computer' which needs to change the color of the cells based on the manufacturer given in the second sheet.
I would've posted a formula that I'm currently working on, but the problem is I'm very new to conditional formatting and currently am completely stumped on this problem.
Thanks in advance.
This might not be exactly what you're looking for but it's on the right path. I'm not sure if "Dell" and "HP" are supposed to be dynamic results of the data validation or? Either way...
=AND(VLOOKUP(C2:C,INDIRECT("Sheet2!A2:B"),1)=C2:C,VLOOKUP(C2:C,INDIRECT("Sheet2!A2:B"),2)="Dell",$D$3="computer")
and
=AND(VLOOKUP(C2:C,INDIRECT("Sheet2!A2:B"),1)=C2:C,VLOOKUP(C2:C,INDIRECT("Sheet2!A2:B"),2)="HP",$D$3="computer")
Be sure to reference C:K in the Conditional Formatting Rules. That way you can avoid having to repeat the process for each column.

How to add an identifier in a row if any cell for that row is changed in excel?

Is there a way in excel to mark the rows with an identifier if any cell in that row is changed without using vb scripts and using a formula ?
Such that while parsing the excel, i can get only those rows which are changed and then i can easily compare those changed rows with the values in the database.
The reason i need to do that is because:
It is a bulk import and each sheet can have 50,000 to million rows.
Data in each row needs to compare with 3-4 database tables
I cannot add vb scripts to those excel sheets because the excel sheets are exported through the same application.
Or is there any other way to efficiently do the bulk import? I'm using the Roo gem and already using the each_row_streaming method.
Afaik there exists no such functionality. Even in the case you would use VBA to mark changed rows, you would run into a validation issues. Let me explain a bit:
Let A be the one changing the data, if she is not such a nice lady she will make her necessary changes but fiddle around with the change indications to break you logic. Why? Because she can. Or because it gives her a business advantage, or ... Even if she is nice, how do you now - for certain - that no change went unnoticed?
I would say your safe option is to always do a full compare on each workbook/row against the database to be sure no change goes unnoticed.
It might be sensible to calculate a hash for each row and store it somewhere in the database. That way you would only need to recompute and compare the hashes. But this depends a lot on your data.

How to automatically copy and paste cells Google Sheets

My goal is to write information in one column, and have it duplicated to another column. Lets say I have my data in cell =A3. I would like this data to automatically be copied into cell =Z50. The only way I know to do this without manually and writing the data or copy and pasting the cells is to go to cell =Z50 and in the function bar set it equal to =A3. I was hoping someone might know of a way to automate this process. By setting the column Z equal to the A column with the same row.
I was looking for the same thing, and even though I haven't tried the ArrayFormula solution, this could be another way to get this automatically copying done:
=QUERY(MySheet!B1:B100,"SELECT *")
Use this formula where you have planned to get the information copied.
"MySheet!B1:B100" = This will be the sheet you want to get data copied from.
"SELECT *" = This will get everything in this interval copied, in case you want any specific data into the interval, you have the option of choosing as well.
I found this tip at: https://productforums.google.com/forum/#!topic/docs/31xTcOHNRJM
This formula might work in cell Z50 (or anywhere else on the sheet that you want the data copied to):
=ArrayFormula(IF(A3:A="",,A3:A))

Is it possible to have an automatic datestamp in Google Spreadsheet for cells that have *previously been filled out*?

That is, I have information in column B, and I'd like a datestamp in column C noting when column B was filled out. I see a bunch of onEdit scripts, but I'd like it to be retroactive--those cells have already been filled out. Is that possible? Does Google Spreadsheets store that information and is it accessible?
Unfortunately, I don't believe it is. As you mention, there are ways to get the timestamp going forward, but the information as to when a cell was filled out is not retroactively available.
The API doucmentation provides an updated field on List and Cells feeds, but that is a sheet-level property. The returned cell data does not contain any other information regarding the date, so the (unfortunate) answer is that you will likely only be able to get that level of information going forward.

Resources