Last active
January 14, 2021 16:38
-
-
Save rheajt/d48a54be3aad01a1931a1a433dc99e5c to your computer and use it in GitHub Desktop.
google apps script convert column number to letter
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 columnToLetter(column, row) { | |
var temp, letter = ''; | |
while (column > 0) { | |
temp = (column - 1) % 26; | |
letter = String.fromCharCode(temp + 65) + letter; | |
column = (column - temp - 1) / 26; | |
} | |
return letter + row; | |
} | |
function getCategories() { | |
var namedRanges = SpreadsheetApp.getActiveSpreadsheet().getNamedRanges(); | |
var categories = {}; | |
for(var i = 0; i < namedRanges.length; i++) { | |
var category = namedRanges[i].getRange().getValues(); | |
categories[category.shift()] = category.map(function(each) {return each.toString();}); | |
} | |
return categories; | |
} | |
function getCategoryList() { | |
var categories = getCategories(); | |
var keyArr = []; | |
for(var key in categories) { | |
keyArr.push(key); | |
} | |
Logger.log(keyArr.join(',')); | |
} | |
function onEdit(e) { | |
var categories = getCategories(); | |
var subCategoryCell = columnToLetter(e.range.getColumn() + 1, e.range.getRow()); | |
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet2'); | |
var vals = categories[e.value]; | |
var rule = SpreadsheetApp.newDataValidation().requireValueInList(vals, true).build(); | |
sheet.getRange(subCategoryCell).clear().setDataValidation(rule); | |
} |
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
/** | |
* Column to Letter | |
* from StackOverflow: http://stackoverflow.com/questions/21229180/convert-column-index-into-corresponding-column-letter | |
*/ | |
function columnToLetter(column) { | |
var temp, letter = ''; | |
while (column > 0) { | |
temp = (column - 1) % 26; | |
letter = String.fromCharCode(temp + 65) + letter; | |
column = (column - temp - 1) / 26; | |
} | |
return letter; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment