please consider that I am a total newbie with these things.
At work, I have an everyday plan of two numbers - money and people.
I know these numbers for a month ahead.
I have my own (another) spreadsheet with data, where I enter numbers during the day.
What I want to achieve is that the data with plans in one spreadsheet will appear the next day at a specific time, let's say 8 AM in another spreadsheet with my data in specific cells.
I know I will have to use scripts, but I don't know how they should look and how to achieve this result.
Thank you kindly in for any possible solutions.
I have taken the tabular approach to build timers that I use for cooking different items. I make a sheet/tab for each cooking process for example rice is shown below.
When the app runs it opens up like this:
This screen allows the user to enable the audio.
This screen allows the operator to choose a timing process.
This screen runs the timer process automatically and allows to me to add additional timers if I wish. The browswer client has to remain active during this time since this app is running on the clientside.
But your script will be running on the server and will probably have no user interace at all. It will just create the spreadsheets and sheets and make the data transfer total autonomously when it receives the timebased trigger. So you won't need to create any html dialogs for your script. It will just run on the server performing the operations that you specify. Of course, it's easier to build something like this if you already know how to program them. So if you have no programming you may find it necessary to hire someone to assist you in the development.
Related
Is there a way to make a single table appear on multiple different google sheet tabs, while also syncing changes across all of them.
I have a task table and I'm wondering if it's possible to have a different sheet for each Timeline view (Today, Tomorrow, Next, etc) while also replicating edits simultaneously. I know I can use a filter function, however that just displays the data.
For example I have my Task Manager tab that has all tasks listed. In addition, I want a Today sheet that shows only the tasks with the Timeline of today. However, I would also like the ability to edit anything on a task row, like change the Timeline to Tomorrow, and this change would reflect back on the main task table.
I could add this function but it just pulls the data. I also was thinking I could use apps script for this - but I don't know if even with using apps script I could achieve the desired results.
=FILTER('TASK MANAGER'!A25:K41,'TASK MANAGER'!F25:F41="Today")
Does anyone have any thoughts if this would be possible?
You could try with Filter Views. You can apply them to filter according to each day, even have one view for today, one for yesterday and so on
I suggest you consider this possibility. Other ways are via scripts, which could be a headache by implementing it, always syncing and checking every kind of modification, sorting issue and more. Hope it's useful! There are many tutorials and documentation online; here you have just one as example
I mean You use it everything in one tab with many filter views. Let me know how you find it
I am planning to build an advanced data reporting/analytics functionality in a health-tracking app. The app currently is already automatically tracking the user's sleeping time and heartbeat. Now imagine the app has a section where the user can save their preferences such as ideal sleeping time and weekly exercise schedule, and from these information the app is able to measure certain metrics based on the automatically collected low-level data.
As for the main technical challenge I am facing at the moment, I think it will be easier if I explain it in the form of an example.
Let's say a user sets his weekly exercise schedule on Mon, Wed & Sat. The app will start to produce insights and calculate percentages based on this information. All is good.
Then jump to 3 months later, the user updates his exercise schedule to Fri & Sun. So by design, the app will now use the new user preference to process the user's analytics and reporting data. This will retroactively tamper past data as well which as a result will skew them.
So obviously my intention is to avoid something like this from happening by keeping a snapshot of previous reporting/analytics data or the user preferences.
However I have never worked on something like this before therefore I am unsure how I should go about designing a database model or a high-level app architecture for this use case. Not to mention I am also having trouble trying to Google the right keywords.
So I would be very happy to receive any guidance, reading materials, links etc about this subject to get me started in the right direction.
Thank you in advance!
I'm an artist and have implemented an art show application for our local art group using Google Forms. The application allows for an artist to submit a variable number of painting entries (up to a maximum amount which varies from show to show). This presents a classic master (single instance of artist information such as name, phone, email, etc.) detail (multiple instances of painting information such as title, media, image, etc.) relationship. It's a classic problem that a relational database solves. However, the ease of creating a Google Form and ease in which folks can work with spreadsheet data makes a compelling case to solve this problem using sheets. As each painting detail is entered into the form (using conditional questions up to max entries) Google adds those detail cells horizontally extending the row. To date, I've managed to address the problem with a hodge-podge of very specific macros and other brute force methods to get this data lined up in columns so that it is workable (i.e., sort, slice/dice). I was about to attempt a crude generic script to try and solve this general problem but as I look at similar questions I see solutions that are 10 times more compact and efficient than anything I could cook up. This is by no means my specific problem but rather a general need by Google forms users who process master/detail information and end up with unmanageable data strung out in rows of endless variable lengths. If Google was smart they would build this master/detail feature in and gain a raft of new form users. Anyway, here is a view of the simulated captured form data: and the desired result.
https://docs.google.com/spreadsheets/d/1Lxuc6uCIkLXyx5evuWIEHULTAOwFwmjT627igC0JbfQ/edit?usp=sharing
Master - Details from Google Forms
The data in columnar format can now be processed with ease. My thinking was to make this generic so I could apply it to any number of form applications that ask for fixed and variable information. To do that I was going to set up variables for the starting cell of the detail data (in this case D or 4) ) the maximum number of detail clusters (in this case it was 5) and the number of cells in each
detail cluster (in this case 3). The master information (name info) gets repeated as rows are inserted for each cell cluster. Ideally, the last cell cluster on a row could be determined on the fly rather than specifying a max. The first cell in a detail cluster would be a required form field so it's absence would indicate the end of the detail clusters on a row.
I get weak in the knees when I think about using arrays and was leaning toward doing this with lots of copying and pasting by way of macros when I thought I might seek some help from those who do this with seeming ease.
I had similar situation: form with the start block, followed by repeated blocks of same questions. I successfully unwrapped it and pushed everything to BigQuery database by using Apps Script.
My guess is that you don't have tons of data, so you can keep everything in Google Sheets. You posted no code, but the strategy should be like this:
Use another sheet in the same spreadsheet for writing your data with the desired structure.
Keep the sheet that form writes into intact, you don't want to mess up GF->GS automation.
Use onFormSubmit event to process new rows that form writes into GS sheet.
Yes, you'll have to play with the arrays and use something like DetailsStartColumn(4) and DetailsWidth(3) to process horizontals blocks, detect filled/empty blocks and write them into your database on another sheet.
Arrays in Apps Script are fine, they are a great tool once you learn them, they are one of the reasons why I like JavaScript ;-)
I’d like to push some data from MySQL into Google Sheets. Once I’ve edited my data in Google Sheets, I’d like to push my edited data back into MySQL. Ideally, I’d even like to schedule it to update it every hour, so my data is always live and matches what's in my MySQL.
I’ve looked into Google Sheets Script and it seems that it enables you to type in a SQL query into a cell in Google Sheets and retrieve your queried data. However, the main issue, even though I find a proper way to export my data to sql, is that I have hundreds of tabs across multiple spreadsheets and I’d like to find a way to avoid to manually repeat this job for every tab.
Please have in mind that it is for someone on my team who can’t figure out querying with SQL, has a hard time navigating MySQL, and that I don’t want to train in SQL. I would just like this person to edit Google Sheets and these edits to be reflected back in MySQL, without this person ever having to go into my SQL database.
I think you can also use Google Apps Script to push back the data in mySQL. However, I don't know how scalable this solution would be.
Some tools exist to export data from SQL to Google sheets, like Zapier and add-ons such as Kloud and Blockspring. The thing with Blockspring is that it's targeted to people that are familiar with SQL queries. And none of those solutions allow you to push the edit data back to your database (at least, that I know of... would be very interested if it is otherwise).
So an option would be to use Actiondesk to sync your SQL database with your Google Sheets. You can schedule the synchronisation every hour (even every ten minutes actually), and it would be easy to add new sheets/tab anytime you need to (it's just a matter of few clicks).
Hope this helps!
Disclaimer: I am a back-end engineer at Actiondesk and personally implemented the Googlesheets integration, so I might be kind of biased (but at the same time, I might be the best person to answer your wildest questions on that regard so feel free to shoot them)!
It's possible to connect to MySQL with Apps Script, but you need to disable your firewall or whitelist all of Google's IP addresses (which are subject to change). As you mentioned you'll also need to set up the script for every Sheet or release the script as an add-on. You are also likely to run into difficulty writing back to the database (e.g. handling date formats).
SeekWell lets you automatically send data from SQL to Sheets and can also sync data from Sheets back to a database. It's built specifically to handle this use case, so it will get you up and running faster, but it's a commercial / paid product.
Disclaimer: I built this.
I have a series of order numbers, and I want to add their status into an Excel spreadsheet, which will update as that status changes.
I have set up the spreadsheet, and I have created a formula that adds hyperlinks to the orders on my site in a separate column, so I have a correct URL for every instance. These hyperlinks lead to an overview page for the particular order, on which page there is an order status. Unfortunately the status isn't a separate HTML table, so I can't just use the web query tool. I know where that status can be found within the source code, and that location remains constant across all orders. I'm looking for a way to pull in this data that would allow it to refresh hourly, and allow me to easily repeat the process for several hundred orders.
Can anyone shed some light?
Try using Selenium-vba which is the VBA implementation of Selenium.
Selenium allows you perfom automated tests in various languages (mainly Java) and has a developing tool for Firefox.
There are currently some problems with selenium-vba and Firefox (just to aviod that you spend to much time with this current issue) but you can run the test/routines also with Chrome.