如何使用 google 应用程序脚本根据我在另一列上设置的条件从一列中获取值?
How can I use the google app script to get values from one column based on a condition I set on another column?
举例来说,我的 table 看起来像这样 sheet
MED TIMING
PHONE
Breakfast
1
Lunch
2
Lunch
3
Breakfast
4
Dinner
5
现在如何在应用程序脚本的变量中存储与值为“Breakfast”的行对应的 phone 列的值,即我想设置一个条件,如果 'MED TIMING' =“早餐”,我想将值 [1,4] 存储在一个变量中。
在上图中,有一个 sheet 的屏幕截图,以便有人可以解释如何使用列号设置条件
有人能帮帮我吗?希望我的问题是可以理解的
使用 an array filter 获取仅包含所需条件的新数组。
function getFiltered(){
const ss = SpreadsheetApp.getActiveSpreadsheet();
const ws = ss.getActiveSheet();
var theValues = ss.getRange("a:B").getValues();
var breakfastValues = theValues.filter(x => x[0]=="Breakfast");
}
这是@pgSystemTester 使用 for 循环的答案的替代方法。
function getFiltered() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const ws = ss.getActiveSheet();
var theValues = ws.getRange("a:b").getValues();
//Removes the header row
theValues = theValues.slice(1)
var breakfastValues = []
for (let i = 0; i < theValues.length; i++) {
if (theValues[i][0] === "Breakfast") {
breakfastValues.push(theValues[i][1]);
}
}
return breakfastValues
}
举例来说,我的 table 看起来像这样 sheet
MED TIMING | PHONE |
---|---|
Breakfast | 1 |
Lunch | 2 |
Lunch | 3 |
Breakfast | 4 |
Dinner | 5 |
现在如何在应用程序脚本的变量中存储与值为“Breakfast”的行对应的 phone 列的值,即我想设置一个条件,如果 'MED TIMING' =“早餐”,我想将值 [1,4] 存储在一个变量中。
在上图中,有一个 sheet 的屏幕截图,以便有人可以解释如何使用列号设置条件
有人能帮帮我吗?希望我的问题是可以理解的
使用 an array filter 获取仅包含所需条件的新数组。
function getFiltered(){
const ss = SpreadsheetApp.getActiveSpreadsheet();
const ws = ss.getActiveSheet();
var theValues = ss.getRange("a:B").getValues();
var breakfastValues = theValues.filter(x => x[0]=="Breakfast");
}
这是@pgSystemTester 使用 for 循环的答案的替代方法。
function getFiltered() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const ws = ss.getActiveSheet();
var theValues = ws.getRange("a:b").getValues();
//Removes the header row
theValues = theValues.slice(1)
var breakfastValues = []
for (let i = 0; i < theValues.length; i++) {
if (theValues[i][0] === "Breakfast") {
breakfastValues.push(theValues[i][1]);
}
}
return breakfastValues
}