スプレッドシート・エクセルの奥深き世界～超入門編～


こちらの記事は[ユアマイスターアドベントカレンダー](https://adventar.org/calendars/5455)2020の15日目の記事です

# はじめに
スプレッドシート・エクセルはお好きですか？
わたしはこの上なく好きです。

わたしとエクセルとの最初の出会いはたしか小学生のころだったと思います。
当時はパソコンの授業が・・・
と書き始めてみて、なんだかとても長くなりそうだったので、割愛します。

好きな理由は、タイトルの通り「奥深さ」です。
スプレッドシート・エクセルに関する知識は、平均以上あるとは思っているのですが、それでも、スプレッドシート・エクセルの本来の能力からすれば、ほんの数％程度なのではないか、まだまだ自分の知らない関数や使い方が存在しているのではないか、と思うと、その世界の広大さに心が躍ります。実際、スプレッドシート・エクセルってこんなことできないのかなあ？と思って調べてみると、ほぼ大抵のことはできるんです。
そうして、1つ1つ自分の中に使える技が増えていく楽しさもありますし、自分の使える技を組み合わせて新しい使い方を思いついたときの感動と興奮は、日常ではなかなか味わえないものがあります。

というわけで、スプレッドシート・エクセル好きをこの世に1人でも多く増やすべく、布教活動をしようと思い、テーマに選びました。

# 数値と文字
セルの中身は「値（あたい）」と呼ばれますが、値には2種類あります。
それが、数値と文字です。

![Group 1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/249947/8f9240f2-7d73-9a4e-ff08-090b8a58cbc2.png)

足し算、引き算、掛け算、割り算ができるのが数値で、できないのが文字です。
半角の1は数値で、全角の１は文字です。
2020/12/15は数値で、2020年12月15日は文字と見せかけ数値です。
右寄せ、左寄せの指定をしていないときに、右寄せになるのが数値で、左寄せになるのが文字です。

![Group 0.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/249947/bf06dfff-f360-f9e6-e405-86a7bbe82ceb.png)

数値と文字の区別は意外と重要で、スプレッドシート・エクセルの醍醐味である「関数」を使うときにエラーの原因になっていることもあります。


# タテとヨコ
データにはタテとヨコがあります。
いわゆる列と行。
タテとヨコ、どっちが列でどっちが行か、結構こんがらがることありますよね。
わたしは今でこそパッとわかるようになりましたが、よく間違えてました。
列の部首「りっとう」を目印にして覚えました。

![Group 5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/249947/70f7aa7d-c9bd-a6c5-e225-f9ad33c97de8.png)

誰かとコミュニケーションを取るときに、共通認識を持てていないと、誤認が生まれてしまうので、正しく覚えたいところですね。

そして、データのタテとヨコでは役割が違います。
お肉やお野菜に繊維の方向があるように、シートにも方向があります。

![Group 00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/249947/be1bdfe5-8e74-c15d-db51-6af3ff20ef1d.png)

データの繊維は水平向きです。
超入門編なので、いろいろ詳しいことは一旦すっとばしますが、この向きの感覚を持てていると、センス良く見えます。

「表にまとめて」と言われて、自分なりに作って出したら「なんか、行と列が気持ち悪い」と言われたことはありませんか？わたしはありました。。言われた当時は意味が分からなかったのですが、多くのデータに触れてきた人たちの中には、先ほどの方向感覚ができていて、普段と違う向きの表を見ると違和感を抱いてしまうのです。
もちろん時と場合によっては、行と列が入れ替わることもあるので、基本の向きくらいに捉えていただけるといいと思います。



# ユニークと重複
データを縦方向に見比べたときに、すべて被りのないユニークな値なのか、重複する値なのかは大事な着眼点の1つです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/249947/466a5dd2-17ed-be4e-f728-1e092708f19d.png)

部分的には重複していても、データ全体としてはユニークになっている、ということもあります。

![Group 000.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/249947/da6ccaa9-fadf-02fc-174b-be2b6981c2c7.png)

「秋田」だけでは、どの行の秋田のことか特定することができませんが、「ID=5」と指定すれば、1つに特定することができます。

データを見るときにも、自分で作るときにも、意識しておきたいところです。

# 使いこなしたい関数
スプレッドシート・エクセルの醍醐味といえば「関数」です。
大事なのは、関数を知っている量ではありません。
どのような使い方ができるのかを理解して使いこなすことです。
そもそも関数は使わないと覚えられないですし、たまにしか使わない関数は、存在だけを覚えておいて、使う機会が来たときに調べればいいので、忘れてしまって問題ありません。

だいたいのことは、こちらの5つの関数の組み合わせでできます。
IF
SUM
SUMIFS
COUNTIFS
FILTER（XLOOKUP)

最後のFILTER関数はスプレッドシートにしかないのですが、出会って世界が広がった関数です。
スプレッドシートが主戦場の方は必修といっても過言ではありません。
XLOOKUP関数というのは、エクセルに最近できた関数で、VLOOKUPやHLOOKUPの上位互換のような関数です。
ちなみに、VLOOKUPがわたしがエクセルにハマるきっかけとなった関数かもしれません。

そして、他に個人的によく使うのは、この3つ。
IFERROR
UNIQUE
INDEX
知っていると美しく作れたり、効率よく必要な情報を取り出せたりします。

関数ではないですが、ピボットテーブルという機能を知っていると、簡易的な集計を関数を使わずに行えるので、おすすめです。
ピボットテーブルも奥が深くて、わたしもまだまだ使いこなせていないところがあるので、今後もっと知り尽くしていきたいです。

# 最後に
本当はまだまだ書きたいことはあるのですが、ここまでに時間がかかり過ぎてしまったので、続きは後日にしたいと思います。
"超入門編"と銘打ったものの、アドベントカレンダーの内容として入門編過ぎないかが、非常に心配です。。

スプレッドシート・エクセルが使える、データを扱える、というのは、
（1）出すデータの枠組みを考えられる
（2）枠組みを埋められる（関数を使いこなせる）
（3）出たデータを読み解ける
の3つの工程があると思っていて、その難易度は、
2 <<<<< 3 <= 1
くらいなのではないかと思います。

他の2つの工程ができなくても、それぞれの工程はできてしまう部分もあるのですが、できる工程が多ければ思考の幅も仕事の幅も広がるので、とても素敵なことだと思います。

（2）に関して、自分の理解の仕方をもう少し段階を整理しながら表現できればと思います。