Google Sheets - add items to a list - google-sheets

Each of my employees has their own spreadsheet containing job information. Each person's sheet imports data from a larger dataset where their entries are tagged by the tech's name. When an error in the information is detected, they write the new value in a particular column adjacent to the erroneous information. I have a sheet, which I keep open on my desktop, that pulls the corrections into a central location. I make the corrections in the central job information sheet, navigate to the employee's sheet and erase their correction to let them know the correction has been made to the central job info sheet. When I erase their correction, it drops off my notification sheet. I need a way to store that correction either in their individual sheet or in my central corrections notification sheet. I need to track each correction beyond the time it was made and subsequently erased.
When Bob reads "Serial# 123456" and issues a correction it is actually "Serial #234567", I need to retain the information that Bob issued that correction to the main job info data.
Does anybody have a suggestion?

Related

I use =GOOGLEFINANCE in my google sheet. Does it update hourly even when the sheet is closed?

here is my spreadsheet https://docs.google.com/spreadsheets/d/1jU8n0xVcN8M1h9a6rOaN8Cjax7J6znJc2ZXgoioY8oc/edit?usp=sharing
I use it to track my portfolio. I have a script enabled that scours the internet for the current market values of my investment funds (since some are not available as tickers on GOOGLE FINANCE). However, some are available on GOOGLE FINANCE (e.g. VOO and VXUS). The ones I scripted update once daily, then I have a another script to log each daily value on a history log so I can see how it changes over time.
My question is, when the sheet is closed, i.e. not open by me on any device, does the google finance formula (i.e. =iferror(GoogleFinance(B6,"price"),"No Data")) update hourly as well?
I have already gone to File>Settings>Calculations>Enabled Calculation Refreshes every hour.
My question is simply if this hourly-updating only works when the sheet is open, or does it work when the sheet is closed?
Thank you very much.
AFAIK there is no official documentation for that, as GOOGLEFINANCE can't be retrieved programmatically due to Google restrictions, it doesn't make sense that these formulas be recalculated when nobody has the spreadsheet open.

How to turn off data thresholds in Google Analytics for Firebase

I need help I integrate firebase analytics in my flutter projects. Wrote some custom events and want to work with data from this events, that why i create metrics and dimensions but it doesn't work because I got data thresholds, and got this message:
Data in a report or exploration may be withheld when Google signals is enabled and you have a low user count in the specified date range.
So, my question is, how can I turn off this data threshold?
Because my app now, using only 5-10 people and I understand that it not enough for analytics but I read docs and found that possible turn off google signal and all should work. Can some one help me with it?
By default, Google Analytics uses a "User-ID" for tracking users across devices and sessions, that must be provided by the developer. If you are not tracking users by ID however, it appears (based on experience) that events will always have a warning triangle with "thresholding applied", even with a large event count over a long time, say 50k events over a year.
One solution is to switch to device-only reporting, as it is not subject to thresholding. Of course, if you do track users with a persistent ID, this will not apply to you, in which case you may want to check that the user ID is being set properly so that Google Analytics can determine that the thresholds for reporting are being met with enough users.
If device-only reporting is an option for you, you can change this setting like so:
Log in to Google Analytics
Go to Admin in the lower left corner with a gear icon (not the Configure menu!)
Select your "Property" in the top right area, meaning the project for which you want to make this change. You may only have one which is already selected.
Select Reporting Identity
Select Show all, if visible
Select Device-based
Save your change
Google also provides some instructions on how to do this here.
Finally, I have seen this setting change from device-based to something else as Google changes how data is collected, so you may need to revisit this setting and re-confirm device-based.
There is no way to change the thresholds that Google Analytics uses in its reports.
Your only option to get access to this data is to enable the integration between Analytics and BigQuery in your Firebase project, and then perform your own reporting on the BigQuery data.

How to announce to user when a Google Script is completed

On a Google Sheet, I have an extensive OnOpen script (viewable here) to refresh data on several sheets within the workbook. It all takes a while for all script lines to execute, i.e. to import new raw data and to then perform five different Unique Queries against that new data and thus update data on five sheets. When the Google Sheet is opened the user does see two successive pop-up yellow "Working" boxes, then five subsequent progress bars (while each of the queries do their thing). This all takes quite a while. I'd like to make an addition to the script routine to announce to the user that "all data is now refreshed and ready to view." A simple MessageBox ("Data now refreshed') placed at the end of the scripts seems to pop up before all script commands are actually completed. Thus the message box gives misleading info and I think it also interrupts some script lines from executing until "OK" is checked. So, MessageBox doesn't seem to work. So, I'm looking for a way to confirm that all script line (and all unique queries) are, in fact, complete before informing the user that it's OK to start viewing the data. Thanks.
Place a SpreadsheetApp.flush() before the "finished" alert box; the flush() method:
Applies all pending Spreadsheet changes. Spreadsheet operations are sometimes bundled together to improve performance, such as when doing multiple calls to Range.getValue(). However, sometimes you may want to make sure that all pending changes are made right away, for instance to show users data as a script is executing.

Datawarehousing, is it important to track historical data (SQL Server)?

We started designing a process for detecting changes in our ERP database for creating datawarehouse databases. Since they don't like placing triggers on the ERP databases or even enabling CDC (sql server), we are thinking in reading changes from the databases that get replicated to a central repository through transaction replication, then have an extra copy that will merge the changes (we will have CDC on the extra copy)...
I wonder if there is a possibility where data that changes within, let's say 15 minutes, is important enough to consider a change in our design, the way we plan in designing this would not be able to track every single change, it will only get the latest after a period of time, so for example if a value on a row changes from A to B, then 1 minute later, changes from B to C, the replication system will bring that last value to the central repository, then we will merge the table with our extra copy (that extra copy might have had the value of A, then it will be updated with C, and we lost the value of B).
Is there a good scenario in a data warehouse database where you need to track ALL changes a table has gone through ?
Taking care of historical data in a DW is important in some cases such as:
When the dimension value changes. Say, a supplier merged with another and changed their commercial name
When the fact table uses calculations derived based on other information outside the fact table that changes. Say conversion rate changes for example.
When you need to run queries that reflect fact information in previous periods (versions of the fact table).
An example where every change maters may be a bank account's balance or a storage warehouse item count or a stock price, etc.
For your particular case, you should check with your customer how the system will be used and what is its benefits exactly, and design accordingly. How granular the change should be captured (every hour, day, etc.) is primarily your customer's call.
Some techniques in handling dimension data change is in Kimball-Slowly Changing Dimension.
In direct answer to your question: depends on the application.
Examples:
The value is the description field of an item in some inventory, where the items themselves do not change (i.e. item ID X is always a sparkly-thingy). In this case saving short lived descriptions is probably not required.
The value is the last reading of temperature sensor. If it goes over a certain value action is taken to bring the temperature back. In this case you certainly need to save each an every change.
This raises three points:
The second case where every single change is required shows very bad design. Such a system would surely insert new values with a time stamp into a table and not update a single value.
Bad designs do exist. Hence:
The amount data being warehoused depends on the nature of data.
a. Will you be able to derive any intelligence from your warehoused data?
b. Will you be able to know based on changes at the database level what happened at the business level?
c. What happens to your data when the database schema changes because you upgraded the ERP product?
I'm wondering whether saving a log of changes on the table level is usable. You might be able to reverse engineer what a set of changes means and then save that to the warehouse, or actually get the ERP to "tell" you what it has done and save those changes.

Storing app info for next load

I have an app that I want to use to store different people's data. For example, say you add person A, B, C to a table; then when you tap on them you can add more of their data - phone number, address etc.
I want to be able to store the info for every one of those entries in order to be able to display them when the app starts next time (and when I switch between the different table entries). Currently if I add data to a person's details, if I switch to another person, the data for the first one goes away as I'm not storing in any way.
I don't want to use Core Data as it's only for a low number of entries (about a dozen or so). Can anyone please give me an idea of how I could store each entry so as to pull it at run time (or whenever I tap on an entry that I've added details for already)?
Store each entry in an NSArray of NSDictionarys, which, in turn, can be stored in NSUserDefaults.

Resources