シートに入力されている全ての数式を、別シートに出力するGoogle Apps Scriptです。数式のセル参照が連鎖していて、確認が大変だったので作ってみました。
特にありません。今お使いのスプレッドシートに組み込めます。
サンプルとして適当な成績表を用意しました。
合計得点と平均得点が計算されている、よく見かけるやつですね。
上のメニューにある「スクリプト実行」から「すべての数式を別シートに出力する」を実行します。
あたらしいシートが作成され、入力されていた数式が見えるようになりました。
Aさんの点数だけ手入力で、他の人の点数はrand()とfloor()で作られていたようです。
これは極端な例ですが、数式を可視化することで同僚が仕掛けたワナに気づけるかもしれませんね!
/**
* このスクリプトの説明、使い方はこちら。
* https://myfunc.jp/items/00080/index.html
*/
function onOpen() {
// スプレッドシートを開いたときに実行される関数
// UIの取得
const ui = SpreadsheetApp.getUi()
// メニューの表示名
const menu = ui.createMenu('スクリプト実行');
// メニューに追加するボタン
menu.addItem('すべての数式を別シートに出力する', 'export_formulas_to_new_sheet');
// メニューを画面に追加する
menu.addToUi();
}
function export_formulas_to_new_sheet() {
// 開いているスプレッドシートオブジェクトを取得
const ss = SpreadsheetApp.getActiveSpreadsheet();
// 開いているアクティブシートのオブジェクトを取得
const sheet = ss.getActiveSheet();
// アクティブシートのデータが存在する範囲を取得
let range = sheet.getRange(1, 1, sheet.getLastRow(), sheet.getLastColumn());
// 範囲内の数式を取得
const formulas = range.getFormulas();
// 取り出した数式を格納する配列
const formulas_text = [];
// 数式を取り出していく
for (let i = 0; i < formulas.length; i++) { // 行のループ
// 各行も配列にする
formulas_text[i] = [];
for (let j = 0; j < formulas[i].length; j++) { // 列のループ
if (formulas[i][j] != '') {
// 数式がカラでなければ、「=」(イコール)を除去して配列に格納する
formulas_text[i][j] = formulas[i][j].match(/^=(.*)/)[1];
} else {
// カラの場合は何も格納しない
formulas_text[i][j] = '';
}
}
}
// 数式を書き込むシートを作成する
const new_sheet = ss.insertSheet();
// 新しく作ったシートの名前を変更する
new_sheet.setName(sheet.getName() + '_数式');
// 数式の書き込み範囲を指定する
range = new_sheet.getRange(1, 1, formulas_text.length, formulas_text[0].length);
// 数式の書き込みを実行
range.setValues(formulas_text);
}
数式でエラーが出ているセルを探してくれるGoogle Apps Scriptです。巨大なシートだとエラーに気づかないこともある・・・?ということで作ってみました。
シート内の数式が入っているセルを探して、色を付けてくれるGoogle Apps Scriptです。他の人から引き継いだシートだと、数式がどこにあるのかわかりにくいので作ってみました。
セルに入力されている数式をすべて消し去るGoogle Apps Scriptです。数式を多用してデータを作ったが、再計算することはないので数値が直接入力されている状態にしたい時・・・などに。
2つのシートを比較して、値や数式に差分があるかどうか教えてくれるGoogle Apps Scriptです。スプレッドシートでもdiffがしたい!という時にどうぞ。
選択したセルと同じ背景色のセルを選択状態にするGoogle Apps Scriptです。細かく色分けされたセルの色を変えたくなったときにどうぞ。
文字色が同じセルを選択状態にしてくれるGoogle Apps Scriptです。特定の文字色をまとめて変えたくなったときにどうぞ。
同じフォントサイズのセルを選択状態にしてくれるGoogle Apps Scriptです。一部のフォントサイズをまとめて変えたくなったときなどにどうぞ。
スプレッドシートで選択している範囲の「選択中のセルの数」「値が入っているセル」「数式が入っているセル」をカウントするGoogle Apps Scriptです。
シートに対する変更内容(値の変更)を、同じファイルのすべてのシートに反映(同期)させるGoogle Apps Scriptです。