采購訂單串列表包含一個PO#的串列,我們只想在A2單元格中看到前3個字符(我有這個作業)。 在另一個電子表格 "Active1 "中,我們在A列中也有許多PO#,不包括標題,但我們也只想要前3個字符。
當PO#'s匹配時,我怎樣才能得到資料表上匹配的單元格的電子郵件? 我知道電子郵件地址在 "Active1 "的G列中,一旦兩個電子表格中的PO#的前3個字符匹配,我怎樣才能讓電子郵件地址回傳?
這里是一個更新的版本,現在這并不在Console.Log中顯示電子郵件。它的Emaildata.every()沒有顯示電子郵件地址。
function main(){
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(
"采購訂單串列"。
);
var po_numID = ss.getRange("A2").getDisplayValue()。 substr(0, 3); //獲取PO#的前三個字符。
Logger.log(po_numID)
var emailDataSheet = SpreadsheetApp.openByUrl(
"https://docs.google.com/spreadsheets/d/1xIA3xcXrpjCPO8r3rzXuVWhu-ycUkN1iQzfYbpFFlFM/edit#gid=1768035929"。
)
.getSheetByName("TestA") 。
var emailData = emailDataSheet
.getRange("A2:A"/span>)
.getDisplayValues()
.flat()
.map(po => po. substr(0,3))。)
emailData.every((po, index) =>/span> {
if (po == po_numID){
var email = emailDataSheet.getRange(index 2,7).getValue()。
Logger.log(email)。
return false。
}
})
}
uj5u.com熱心網友回復:
every()檢查陣列中的每一個專案是否通過測驗,并回傳true || false,見[docs][1]。由于你想找到一個匹配并根據其索引或列獲得一個值, ,你需要使用另一種方法,我認為你的工具是forEach(見[docs][2])。基本上你的最后一個函式會是這樣的:
const testColumnNumber = 1 // column A
emailData.forEach( (record, index) => {
if( record[testColumnNumber-1] == po_numID ) {
var email = emailDataSheet.getRange(index 2, 7).getValue()
}
})
[1]。https:/developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every
[2]。https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/330548.html
標籤:
上一篇:轉移的內容問題
