星期六, 9月 13, 2025

[GAS] Sheets 呼叫自訂函式

在 YT 課程上發現,原來 Sheets 也能呼叫 Google Apps Script 寫的 function,原以為只有網頁可以呼叫而已,該筆記是要把 Sheets 上的使用者名字去識別化

.gs Code
/**
 * 將中文姓名去識別化。
 * @param  {string} originalName 原始姓名,例如:"陳志明"。
 * @return {string} 去識別化後的姓名。
 */
function anonymizeName(originalName) {

  // 檢查傳入的參數是否為字串
  if (typeof originalName !== "string")
    return "";

  const nameLength = originalName.length;
  if (nameLength <= 0)
    return "";

  const mask = "O";
  let firstLetter = originalName[0];
  let lastLetter = originalName[nameLength - 1];

  if (nameLength === 3) {
    // 如果是 3 個字,保留第一個和最後一個字,中間以 "O" 取代
    return firstLetter + mask + lastLetter;
  } else if (nameLength === 4) {
    // 如果是 4 個字,保留第一個和最後一個字,中間以 "OO" 取代
    return firstLetter + mask.repeat(2) + lastLetter;
  }

  // 如果姓名長度超過 4 個字,就只顯示第一個字就好
  return firstLetter + mask.repeat(nameLength - 1);
}

Sheet 內使用自訂函式

在公式欄位內設定呼叫自訂函式並指定傳入欄位,以下圖來說明,就是輸入 = anonymizeName(A2),完成設定後再下拉複製公式

公式設定完成後的去識別化效果

沒有留言:

張貼留言