簡體   English   中英

如何根據同一工作表中列的特定值在 Google 表格的另一列中設置值

[英]How to set value in another column of Google Sheets based on certain value of column in the same sheets

我有這張表,上面列出了 email 地址。 我想根據 B 列中 email 的值自動填充 D 列。

在此處輸入圖像描述

我想在 D 列中自動填充的是 email 地址的名字。

我想要的是看起來像這樣:

在此處輸入圖像描述

假設我知道,或者我可以設置 email 列表的名字。

  • ken@gmail.com =

  • ben02@hotmail.com =

  • kobe.brayant@gmail.com =科比

  • lebronJAMES@gmail.com =勒布朗

問題是如何根據 Email 地址的值自動填充列 D 或 (NAME)。

請注意,數據(A 至 C 列)是根據 Google Forms 自動填充的。

在單元格D1中試試這個數組公式:

=ARRAYFORMULA({"NAME";proper(REGEXEXTRACT(B2:INDEX(B:B,COUNTA(B:B)),"^[a-z]+"))})

輸出


作為Google Apps Script中的完整解決方案,您可以這樣做:

function myFunction() {
  
  const ss = SpreadsheetApp.getActive();
  const sh = ss.getSheetByName("Form Responses 1");
  const emails = sh.getRange("B2:B"+sh.getLastRow()).getValues().flat();
  const names = emails.map(str=>str.match('^[a-z]+')[0])
                .map(name=>name.charAt(0).toUpperCase()+name.slice(1));
  sh.getRange("D2:D"+sh.getLastRow()).setValues(names.map(nm=>[nm]));
}

假設工作表名稱是Form Responses 1


舉例說明:

 const emails = ['ken@gmail.com','kobe.brayant@gmail.com', 'ben02@hotmail.com','lebronJAMES@gmail.com']; const names = emails.map(str=>str.match('^[az]+')[0]).map(name=>name.charAt(0).toUpperCase()+name.slice(1)); console.log(names);


暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM