Last active
August 5, 2018 12:54
-
-
Save jakenjarvis/e9824c78cf49c2516194cfc91742bff1 to your computer and use it in GitHub Desktop.
GoogleSpreadSheetのQUERY関数でフィールド名を使う【GAS】 ref: https://qiita.com/jakenjarvis@github/items/0fcc8f4ef88a2d0ee39b
This file contains 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 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