ユーザ用ツール

サイト用ツール


gas:example:checkdigit

チェックデジットの計算

一つ上へ

function checkDigit() {
  var spreadsheet = SpreadsheetApp.openById("シートID");
  var sheet = spreadsheet.getSheetByName("checkdigit"); // checkdigitのシートを指定する
  var values = sheet.getRange(2,1,sheet.getLastRow()-1,1).getValues(); // A2から最後の行までのデータを読み込む。
  var writeCell = sheet.getRange("B2"); // 書き込みするセルを指定
  for (num of values) {
      var oddSum = 0;
      var evenSum = 0;
    let maxdigits = num.toString().length; /* 桁数を取得 */
    var digit = num.toString().split("") // 分割
    /* 奇数番目の数字の和を計算 */
    /* 偶数番目の数字の和x33を計算 */
    for (let i=0; i < maxdigits; i++) {
      if ((i+1) % 2 == 0) {
        evenSum += parseInt(digit[i]); // 偶数番目の和を計算
      } else {
        oddSum += parseInt(digit[i]); // 奇数番目の和を計算
      }
    }
    /* 33*evenSum + oddSum の mod 10 を計算 */
    var checkDigit = 10 - (33*evenSum + oddSum) % 10
    if (checkDigit < 10) {
      var janCode = digit.join("") + checkDigit.toString()
    } else {
      var janCode = digit.join("") + "0"
    }
    writeCell.setValue(janCode);
    writeCell = writeCell.offset(1,0)
  }
}
gas/example/checkdigit.txt · 最終更新: 2023/07/20 16:08 by mikoto