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