Created
January 29, 2023 18:42
-
-
Save sachith-gunasekara/c752edac48cc5727f3c0984626c4f1fb to your computer and use it in GitHub Desktop.
A Google Script function that can be used to populate dependent dropdowns
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function onEdit(e) { | |
var ss = SpreadsheetApp.getActive(); | |
var sampleDataSheet = ss.getSheetByName("sample_data"); | |
var mohPhiDataSheet = ss.getSheetByName("moh_phi_data"); | |
// Check if the active sheet is "sample_data" and the active cell is in the first column (MOH area) | |
if (ss.getActiveSheet().getName() == "sample_data" && e.range.getColumn() == 1) { | |
// Notify user of populating process | |
SpreadsheetApp.getActiveSpreadsheet().toast("Populating PHI Values") | |
var currRow = e.range.getRow(); | |
var mohArea = e.range.getValue(); | |
// Get the range of MOH areas and PHI areas in the "moh_phi_data" sheet | |
var mohRange = mohPhiDataSheet.getRange("B:B"); | |
var phiRange = mohPhiDataSheet.getRange("C:C"); | |
var mohValues = mohRange.getValues(); | |
var phiValues = phiRange.getValues(); | |
var phiAreaValues = []; | |
// Get the PHI area values that correspond to the selected MOH area | |
for (var i = 0; i < mohValues.length; i++) { | |
if (mohValues[i][0] == mohArea) { | |
phiAreaValues.push(phiValues[i][0]); | |
} | |
} | |
// Create data validation rule for PHI area dropdown | |
var phiAreaRule = SpreadsheetApp.newDataValidation().requireValueInList(phiAreaValues).build(); | |
// Set the data validation rule for the PHI area cell in the current row | |
sampleDataSheet.getRange(currRow, 2).setDataValidation(phiAreaRule); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment