2017-07-07 25 views
0

我想从我的Google表格中检查JSON URL中的值与定义范围内的值。如何在Google表格中检查一个值与另一个值,然后使用匹配的值查询单元格的属性?

如果有一场比赛,我想谷歌Apps脚本内查询包含匹配值的单元格的属性(其行,其列等)

我怎样才能做到这一点?

+0

你尝试过什么了吗?你能提供一些样本数据和期望的结果吗? –

+0

[这是一些示例数据。](http://api.icndb.com/jokes/random)[这是一个包含通过webhook发现的一些短语的电子表格。](https://docs.google.com/spreadsheets/d/1g2U8CQT8ukqp6e5slSfhmVKih8UZ1WiUmzb1c-Gx0ug/edit?usp = sharing)我试过通过Zapier集成完成我的问题,但发现它太有限了,因为它无法逐个单元地进行。所需的结果是将JSON中的短语与表单匹配,然后使用匹配单元格的行和列来帮助定义要写入/追加新数据的单元格。 –

回答

0

没关系。自己得到了我的回答。

var i = 0; 
 

 
// Bringing in the data from the third-party into Google Sheets. 
 
var groupJSON = UrlFetchApp.fetch('<ANY-JSON-URL>'); 
 
var groupObjectRaw = JSON.parse(groupJSON); 
 
// var groupObject = groupObjectRaw[0]; <--optional, for my use only 
 

 
var membersGroupForm = groupObject.data['member']; 
 
var projectsGroupForm = groupObject.data['project']; 
 
var hoursGroupForm = groupObject.data['hours worked']; 
 

 
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Details'); 
 

 
var membersRange = ss.getRange('Details!A:A'); 
 
var membersSheet = membersRange.getValues(); 
 

 
var projectsRange = ss.getRange('Details!1:1'); 
 
var projectsSheet = projectsRange.getValues(); 
 

 
function getRowNumber() { 
 
    for (i; i < membersSheet.length; i++) { 
 
    if (membersSheet[i][0] == membersGroupForm) { 
 
     return i + 1; 
 
    } 
 
    } 
 
} 
 

 
var rowNumber = getRowNumber(i, membersSheet, membersGroupForm); 
 
Logger.log(rowNumber); 
 

 
function getColumnNumber() { 
 
    for (var row in projectsSheet) { 
 
    for (var col in projectsSheet[row]) { 
 
     if (projectsSheet[row][col] == projectsGroupForm) { 
 
     return parseInt(col) + 1; 
 
     } 
 
    } 
 
    } 
 
} 
 

 
var columnNumber = getColumnNumber(projectsSheet, projectsGroupForm); 
 
Logger.log(columnNumber); 
 

 
var cell = ss.getRange(rowNumber, columnNumber); 
 
cell.setValue(hoursGroupForm);

相关问题