Is there a way to have a Google Form list-type question pass different values on the backend (e.g., to its linked Google Spreadsheet) than what are displayed?

For example, under Provinces at


It would be great if the HTML <select ...> option of

<option value="Quebec">Quebec</option>

would instead get rendered as:

<option value="QC">Quebec</option>

You can write a script that changes the names in abbreviations after all forms have been submitted. It has been done for the States of USA. See for the code on Github: https://github.com/davegaeddert/google-sheets-us-states/blob/master/Code.gs


No, Google Forms just pass the values that were picked by the user: those that were shown in the form.

As was said in Google Products forum, to have another form of response in the spreadsheet, one needs the conversion to happen in the spreadsheet. A typical scenario is adding a sheet, e.g., named Conversion where column A has the form input and column B has what you want to see. Then do something like

 =arrayformula(vlookup(filter(C1:C, len(C1:C)), Conversion!A1:B, 2, False))

to convert column C of the Form Responses sheet. The performance will be improved if the Conversion sheet is sorted by column A, in which case False parameter should be dropped.

  • Good detailed answer too. Although this may open up another can of worms for me: not sure how transparent these cell formulas will be for my downstream backend processing 1. using a simple URL with only QueryString to export into a CSV that further gets parsed, and 2. behavior via Google Docs API, eg. in Ruby on Rails. Thus it is not the (interim) Google spreadsheet that matters to our system.
    – Marcos
    Jan 4 '16 at 19:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.