将字符串转换为 10 键 Phone 键盘数字

Convert String To 10 Key Phone Keypad Digits

感谢您抽出宝贵时间帮助我

我正在尝试制作一个 google sheet 公式,该公式将字符串转换为 10 键 phone 上的小键盘数字(单个数字和多个数字) 例如输入“AHO”的公式 1 应该 return“246” 输入“AHM”的公式 2 应该 return“244666”

如果使用公式无法做到这一点,也许使用带有 App 脚本的自定义函数可以做到这一点

非常感谢

我创建了一个需要字符串输入的自定义函数。然后将字符串输入转换为大写字母以保持统一并将字母与适当的 phone 键盘数字映射相匹配。请参考以下自定义函数:

/**
 * Translates letters into 10 key phone keypad digits
 *
 * @param {inputString} The input string to be converted.
 * @return The numerical string output.
 * @customfunction
 */

function convertToKeypad(inputString) {
  var outString = "";
  const letterMap = { "A": '2',
    "B": '22',
    "C": '222',
    "D": '3',
    "E": '33',
    "F": '333',
    "G": '4',
    "H": '44',
    "I": '444',
    "J": '5',
    "K": '55',
    "L": '555',
    "M": '6',
    "N": '66',
    "O": '666',
    "P": '7',
    "Q": '77',
    "R": '777',
    "S": '7777',
    "T": '8',
    "U": '88',
    "V": '888',
    "W": '9',
    "X": '99',
    "Y": '999',
    "Z": '9999',
    " ": '0'
  };
  for (let i = 0; i <inputString.length; i++) {
    outString += letterMap[inputString.toUpperCase()[i]];
  }
  return outString;
}