I have a custom function provides results based on user input - once of these variables accepts either "Numerical" or "Percentage", which provides the data as standard number, or a percentage of the total.

I've tried looking at conditional formatting to change the number format based on the value of the above variable's cell, but wasn't successful. Is this possible in Google Sheets? Is there some kind of workaround?


Conditional formatting in Google Sheets does not involve setting number formats. To achieve the desired effect, you can use a script running on edit:

function onEdit(e) {
  if (e.range.getA1Notation() == 'A1') {
    switch (e.value) {
      case 'Whole Number':
      case 'Percentage':
        e.range.offset(1,0).setNumberFormat('0%');   // or 0.##% to allow fractional percentages

This script checks whether cell A1 was edited, and if so, formats the cell below it accordingly. e.range.offset(1,0) means: one row down, zero columns to the right of the edited cell.


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.