見出し画像

スプレッドシート 個人用メモ

(現段階での自分が理解してることの書き置きでもあるので、あんま当てにはしすぎないでください
・まだ理解してない関数も沢山
・計算用ツールとしての使用前提なので、データ集計関係などの情報は拾ってない
・ほぼ感覚で触ってるので情報の正確性に欠けるかも)


LET()関数

式を変数みたいなやつに置き換えてておいて、その変数で式を書けるやつ。
普通に記述したらめっちゃ長くなるから1セル挟んでからそのセル指定して式書くか…って感じの時に特に置き換えが便利なイメージ。
こんな感じで途中でセル咬ませたいって思うやつでも(ほかに利用用途がなければ)1セルにまとめて記述できる。便利。

なお変数のは複数種類指定できる。
ARRAYFORMULA内で引数2個MINMAXみたいなことをしたいときもこんな感じのノリで使えたりもする

配列結合処理

{}で配列をくっつけるやつ

横方向のひっつけはカンマ( , )、縦方向のひっつけはセミコロン( ; )でやる。
式1つの中で、分かれた複数の箇所からひっつけれるのが便利。
「こっちのセルにこれ入力させて、隣のセルには少し変わった別の式を…」って時とかに便利

引数側で使うことも可能で、例えばFILTER()で列を引っ付けるとか。べんり

QUOTIENT()関数

ROUNDDOWNして除算するより1文字縮まる。そんだけ

忘れがちではある。けど、特にROUNDDOWNが複数回出てくるとこだと、「ここのはどういう意図のROUNDDOWNだ…??」ってなることがたまにあるのでそういう時に明確化できて便利。かもしれない
仮定が限定的すぎるのはそれはそう(´・ω・`) 

SEQUENCE()関数

連番を作れるやつ。
だけどそうじゃなくて、「連番が入っている配列」を作ると考えるとめちゃ便利で、
例えばFILTERの条件として(配列の長さを把握した上で)『その行がnの倍数行目か』みたいなを条件にしたいときに
MOD(SEQUENCE(ROWS(範囲)),n)みたいな感じの記述ができるんですよね。増分量も変えれるのが地味に応用が効きやすくて便利

なお、ARRAYFORMULA内(多分FILTER内も行ける?)だと、
ROW(A:A)-ROW() みたいな記述をすると似たような要領で基準セルから何行目かが取得できたり。(前者は計算してる行の行番号、後者は基準セルの行番号が返ってる仕組み。)
A2:Aみたいな記述好む場合は特に、こっちは行数指定が要らないのが便利。
まあ使い分け

BYROW()関数(LAMDAヘルパー関数系統)

くそむずすぎ。めっちゃ理解に時間かかった
BYROWの場合、僕はARRAYFORMULAの「行ごとに」各処理できるやつって感じの理解の仕方した。
例えば5列あるデータで、行ごとに最大値を求めるやつ。
なんか適当にテストの結果っぽいデータ作ったのでそれでやります

G2に
=BYROW(B2:F11,LAMBDA(x,MAX(x))) と入力。
(LAMBDAは感覚はLETの補助全振りverみたいなかんじ)

各最大値が返ってくる。
ARRAYFORMULAでやろうとする場合
=ARRAYFORMULA(MAX(B2:F11)) …じゃ駄目だし、どうしようもなさそうだからG2にMAX(B2:F2)入れてオートフィルかなーってなるので、それがお手軽完結できるのがつよい。って感じの関数
各機能のために生まれ変わったARRAYFORMULAみたいな…?

以下メモ
BYCOL:BYROWとほぼ同じ 列版
MAP:よくわからん。引数各1回ずつ走査して結果毎回ずつ返すだけ?
REDUCE:範囲を走った時に何らかの形で累積してって(それを処理へ利用するのもok)その結果のみ出力するやつ
SCAN:REDUCEの途中経過も出力するバージョン
MAKEARRAY:行数、列数で配列を作り中身をその2つで構成できるやつ
って感じぽそう。

行数の話

自戒メモ
A2:Aみたいな記述の仕方よくやるんだけど、それの罠な点。
間違えて膨大な数入れてしまったときに素直にスピル(ARRAYFORMULA含む)が返してくると、行数が勝手に増えるっていう

便利な仕様ではあるんですが、1回その上限を設定しなかった&任意の数値を入力する形だったので行数が5万行まで膨れ上がったことが…
そしてそれ、自動で戻らないっていう(´・ω・`)

当然IF文なんかでも同じような記述の仕方してるので、毎回毎回5万行のシート末尾までIF文が走ってめっちゃ重くなるってことがありました
A:A1000みたいに指定しておくか、物理的に対策するかしておかないとっていう自戒……

諸々メモ書き終わり!以上!

#スプレッドシート


この記事が気に入ったらサポートをしてみませんか?