例として、A列の2行目から9行目を対象に、重複するデータが無い場合は「1」を、重複するデータがある場合は、順番に「2」「3」...と出てきた回数をB列に入力していきます。
A列が昇順でソートされていないとうまくいかないので、コードの中でソートを行っています。
function word_occurrences() { var get_range = "A2:A9"; //A列の2行目から9行目 var set_col = 2; //入力するセルはB列 var start_cell = 2; //2行目から入力 var ss = SpreadsheetApp.getActiveSpreadsheet(); var sh = ss.getActiveSheet(); var range = sh.getRange(get_range); range.sort([{ column: 1, ascending: true }]); var values = range.getValues(); for (var i = 0; i < values.length; i++) { if (i == 0) { sh.getRange((i + start_cell), set_col).setValue(1); } else { var active_value = values[i].toString(); var prev_value = values[(i - 1)].toString(); if (active_value == prev_value) { var rank = sh.getRange((i + 1), set_col).getValue(); sh.getRange((i + start_cell), set_col).setValue(parseInt(rank) + 1); } else { sh.getRange((i + start_cell), set_col).setValue(1); } } } }
実行前
実行後