Skip to content

Instantly share code, notes, and snippets.

@jakenjarvis
Last active August 5, 2018 12:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jakenjarvis/e9824c78cf49c2516194cfc91742bff1 to your computer and use it in GitHub Desktop.
Save jakenjarvis/e9824c78cf49c2516194cfc91742bff1 to your computer and use it in GitHub Desktop.
GoogleSpreadSheetのQUERY関数でフィールド名を使う【GAS】 ref: https://qiita.com/jakenjarvis@github/items/0fcc8f4ef88a2d0ee39b
function ReplaceQueryFiledName(queryString, srcSheetName, srcFieldRangeString) {
var result = queryString;
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = null;
if (typeof srcSheetName === "undefined") {
sheet = spreadsheet.getActiveSheet();
} else {
sheet = spreadsheet.getSheetByName(srcSheetName);
}
var range = null;
if (typeof srcFieldRangeString === "undefined") {
var lastColumn = sheet.getLastColumn();
range = sheet.getRange(1, 1, 1, lastColumn);
} else {
range = sheet.getRange(srcFieldRangeString);
}
var fields = range.getValues();
var maxRow = fields.length;
var maxColumn = fields[0].length;
for(var row = 0; row < maxRow; row++) {
for(var column = 0; column < maxColumn; column++) {
var target = fields[row][column];
if(target != null && target != "") {
var cell = range.getCell(row + 1, column + 1);
var a1 = cell.getA1Notation();
var field = a1.match(/[a-zA-Z]+/);
result = result.replace(/(`([^`]+)`)/g, function(match, group1, group2) {
var rep = group1;
if(group2 == target) {
rep = field;
}
return rep;
});
}
}
}
return result;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment