I wonder if it is possible to use Google Forms to gather Sociometry responses.
See this picture as an example:
Clarification:
I want to create many rows per a single responder (see in my picture, there are 5 rows for responder 1, which represent each of the 5 Peers the responder needs to rank) . The second issue, is that the population always changes (responder 1 needs to rank 5 people, while responder 2 needs only 4)
Just create a form and link it to your sheet.
I think you have already done this, but just in case:
create a new form.
link the responses to a spreadsheet.
How to identify the responder
Unless you are in a workspace account and all the responders are also in a workspace account there is no way to identify the responder. The only way that you can do this is to ask the responder in the form for their "Responder ID". The only field that will be populated automatically will be the timestamp.
How to get multiple rows per response
The simple way is to simply get the participants to fill out the response multiple times. The more complex way is to look into Apps Script to construct forms based on a certain criteria, though this sounds like it will probably be complex to do in this way. Maybe you would be interested in building an Apps Script web app with which you could build an html form. That will probably give you more flexibility, though it will be a bit more work to set up.
How to organize your sheet so that all Responder IDs are sorted.
You can do this manually by filtering or sorting the data. Alternatively you can look into Apps Script to do this process automatically every few minutes or hours, depending on what you need it for.
Related
I am implementing a Zapier Integration's polling trigger. I have built a trigger and an API which serves the data correctly. However my concern is about: how to make sure that I provide the new data only, when zapier polls.
I know about the deduplication mechanism. I provide ids in all the items and Zapier makes sure that one item is used only once. However in my application the items can go into hundreds very quickly and in months they will be in thousands and beyond. I want an optimised solution where I serve only the items which will eventually be used by Zapier, thus reducing the memory usage in my application.
Some timestamp can be save for every call, which I can store inside my application but that will not be a foolproof solution. Same API can be used by user in multiple zaps, plus there are sample calls etc.
Great question! The simplest way to do this is to add a date parameter to your API that lets you filter for items created after that date.
Then, in your Zapier code, provide that param for all trigger calls. I'd set the time to 24 hours ago. So, when a trigger fires, it'll only get items created in the last 24 hours. That could be a big list, but items will cycle out after a day.
I am trying to work on a google sheet where one Tab will be an entry form and another will be a database. I need the form to be used by multiple users. Currently the Form tab displays all changes to other users so multiple users cannot use it at the same time.
Is there a way to allow 1 user to see their own entries and a 2nd user to see different entries. When they press my button it should record their individual entries on the database tab.
I cannot use Google Forms for this project due to the complexity of the form and the need for cascading drop-down lists and dynamically available information on the form.
Thanks
After researching extensively, the answer to my question is that there does not seem to be a good way of doing this.
My final approach was to create a tab for each user with the calculations, cascading dropdowns, and buttons/scripts that affected their specific sheet and recorded data on the database tab based on their specific sheet.
Hopefully, this helps the next guy who is searching for this answer. If anyone has found a way to solve this, let me know so I can test and give you credit for solving what I could not.
I want to select only certain rows and columns and use the same "summary of responses" feature but for limited data rather than all of it. Is this possible?
The report is with ALL DATA from this sheet - I want the exact same output but with only certain email addresses.
Google Form: bit.ly/bilvalchal_results
If I have a google spreadsheet can I make a summary of only selected data?
Yes, but I think your Title may be misleading. I thought at first you wanted any summary but now believe you want the specific format provided by Form > Show summary of responses, and that is quite different.
Is this possible?
In essence, I think not. For example, in Excel it is easy enough to avoid charting data simply by hiding it. That seems not to work here. Even deleting data in the Form responses sheet does not change the Summary of responses.
This presumably because both the Form responses sheet and the Summary of responses are distinct views of server-side data. I doubt there is a means for a user to control the code that drives the Summary of responses, whose data is gathered from the individual form submissions (as is the data shown in the responses sheet). Submissions have spawned both the sheet and the Summary but the two are independent of one another.
On the other hand.
As mentioned by #zeroCoder, equivalent results might be obtained by a user though it would seem with a considerable effort. A script may be required to set the chart type to use for each question by question type (if to avoid an ad-hoc basis, Form by Form). Once the type appropriate to each column has been determined it would be a little tedious but not difficult to create the corresponding chart. Adjusting the formatting, scales etc to match that of Summary of responses would also be tedious but with a script would not need to be purpose-built for each Form individually.
That said, I hope I am crassly mistaken and that actually it is quite easy. I suspect however you would have heard by now were that so.
Another option is to use the Awesome Tables web app. It allows filtering of your data (and more). It is available as a gadget on Google Sites.
So this doesn't use the built in feature exactly but it does the trick.
Take your sheet with all the rows and figure out which columns you want to show.
Create a new sheet called preview or whatever.
in the top cell for each column reference the row from the responses sheet like this ={'Form Responses 1'!A:A}
Then hit File>Publish to web and chose to publish your Preview sheet only.
Get your shared link (shorten it if you must).
Post that url in your form only and presto.
You win!
You need to use pivot tables here are some tutorials on how to use them:
How to create a pivot table report
Summarize your data with pivot tables
Apologies in advance as I'm sure this topic has no doubt been asked before but I couldn't find any post that answers my specific query.
Bearing in mind that I'm new to MVC this is where I have got to. I've got a project developed under VS 2010 using the MVC 3 framework. I've got a search page which consists of 6 fields and a nested model which itself holds around 3 fields.
I can successfully post all this data back to itself and the data is successfully passed as a model and back agian so the fields keep the data which the user has supplied.
Before I move on to actually using this search criteria on another view a thought hit me. I want to keep this search criteria, and possibly even the search results in memory for the duration of the users session.
The reasoning behind this is simply to save my users time by:
a) negating the need to keep re-inputting their search criteria regardless of how they enter or leave the search page
b) speed up the user experience by presenting the search results more quickly
The later isn't as important as the first requirement.
I've done some google searches and indeed had a look through this site on similar topics. From what I've read using sessions (which I would typically use if developing a PHP site) is a no no. From the reasons I've read as to why you shouldn't use sessions seem valid and I'm happy to go along with it.
But now I'm left in a place where I'm scratching my head wondering to myself what exactly is best practice to achieve this simple goal that could be applied to similar situations later down the line in the project.
I also looked at the OutputCache method and that didn't behave as I expected it to. In a test I set the timeout for 30 seconds. After submitting a search I clicked the link to my search page to see if the fields would auto-populate, they didn't. But then clicking the search button the values in the cache were retrieved. I thought I was making progress but when I tried to submit a new value the old value from the cache came back i.e. I couldn't actually change my search criteria with the cache enforced. So I've discounted this as an avenue to explore.
The last option seems to suggest the use of cookies as the most likely candidate, but rightly or wrongly I feel this isn't the best solution. I would have thought the MVC 3 design pattern would have an easier and recommended method of persisting values. I'm sure there is but I've just not discovered it yet.
I have started to use JQuery and again this has been mentioned but I'm not sure this is right direction to take either.
So in summary my question really comes down to what is considered by the wider community as best practice for persisting data in my situation. Effiency, scalability and resiliancy is paramount as I'll have a large global user base that will end up using this web app.
Thanks in advance!
Pete
I'd just use cookies. They're simple to use, you can persist them for as long as you want or have them expire when the users closes their browser, and it doesn't sound like you are storing anything sensitive in them.
I just started to develop an invoice app. I would like to hear your opinions and recommendations about this dilemma.
The invoice has a client section. The client can be selected from a drop-down select menu or it can be entered directly into a text field. Let's say it's just a one time purchase and the client won't ever come back. Should I have these two columns: client_id and client_field so either of those two can be filled out? The negative side is that a lot of client_field will be empty. Or should I not use a client_field and just add a new client even thought that client will only be used once?
Be consistent and use a separate client model and client_id even for clients that only appear once. If you have both client_id and client_model you will have extra complexity:
Your validation will have to check both and ensure that everything is consistent.
You will have to o.client.try(:name) || o.client_field and such all over the place just to display data.
If you change the structure of your client records in the future you will have to reformat your "table within a table" client_field kludge.
Any database based reporting will go from simple SQL to a monstrosity of LEFT JOINs and CASE statements.
And those are just a couple things off the top of my head.
If you're worried about having a dropdown with a lot of entries — and you should be worried about any dropdown with more than ~20 entries — then go with just an autocompleting text input or limit the dropdown to the top ~20 clients and use a autocompleting text input for the rest (or perhaps even a JavaScript based combo-box); there's a good chance that the dropdown won't even get used by your users, accountants and other people that do a lot of data entry and invoicing often hate having to reach for the mouse.
Is there anything wrong with having an auto-complete field where, if submitted without a matching ID, you will just create the client and link them in?
That's what's expected from the stand-point of the user and it's how applications like QuickBooks have worked for years.