[初心者向け] 実務開始の前に知っておきたいSpreadSheetのこと


この投稿は、実務に入る前のエンジニア・マーケターなど数字を扱うメンバーに知っておいて欲しいことをまとめています。

社内メンバー宛なので偏りがあるかもしれないですが、みなさまの役にも経てば幸いです。

## 知っておきたい関数
### arrayformula

「この列に同じ関数適用したい！」という時に使えます。
[公式ドキュメント](https://support.google.com/docs/answer/3093275)

#### 用例1: 他のシートの列をまるっとコピー（同期）したい
コピーして終わりではなく、その後編集したときも変更を反映したい場合

```
=ARRAYFORMULA('シート1'!A1:A)
```

#### 用例2: 他のシートのデータと結合したい
いままで、vlookupをつくって、それをドラッグ&ドロップでその列に適用するというのをやっていたのを簡単にかけます

```
=ARRAYFORMULA(VLOOKUP(A1:A, 'シート1'!$A$1:$B, 2, false))

# 空の時の処理を追加して、綺麗にしたversion
=ARRAYFORMULA(iferror(vlookup(A1:A,'シート1'!$A$1:$A, 1,false), ""))
```

#### 用例3: 番号をふる
チェックシートなどで番号をふりたい場合、簡単にかけます

```
=ARRAYFORMULA(row(A1:A))
```

### query
web系で数字を扱う人ならSQLは常識かと思いますが、query関数はスプレッドシートのある範囲をデータベースに見立てて、selectができる関数です

```
# B列が済のものだけ抽出する
=QUERY(A1:B, "select A, B where B = '済'")

# A列に'あああ'が含まれる行を抽出する
=QUERY(A1:B, "select A, B where A like '%あああ%'")

# A列にC1にかかれてる文字が含まれる行を抽出する
=QUERY(A1:B, "select A, B where A like '%"&C1&"%'")
```

スプレッドシートのフィルター関数を使っても同じことができますが、条件が固定されている場合＆データの参照だけしたい場合や、「A列にC1にかかれてる文字が含まれる行を抽出する」みたいな検索機能をつける場合は便利です

### importrange
いろんなデータを引っ付けるときに、別ファイルで管理しているデータを引っ張ってきたいことが多々あります。
その時点のデータであればコピペでいいですが、その後も変更を同期したい場合はimportrangeを使えば、他のファイルのデータを引っ張ってくることができます

```
# スプレッドシート1のシート1のA2:Bのデータを持ってくる
=importrange("スプレッドシート1のid", "シート1!A2:B")

※ スプレッドシートのidはurlから取得できる
https://docs.google.com/.../spreadsheets/d/スプレッドシートのid/edit
```

[importrangeとqueryの組み合わせ例](https://qiita.com/vankobe/items/2af21d4b1c3afed5fa82)


## 条件付き書式カスタム数式
スプレッドシートは大体誰かと共有するために使うと思います
タスクの管理表として使うときなどは、完了したタスクが灰色で塗りつぶされていると他の人からみてもわかりやすいですね
そんな時に使えるのが条件付き書式です

バグシートを例にみていきます

まず対象範囲を選択して右クリックし「条件付き書式」を選択します
![条件付き書式開始.png](https://qiita-image-store.s3.amazonaws.com/0/68146/a9a53e65-0b06-acf2-4a14-889a5bc0ea80.png "条件付き書式.png")

次にセル書式設定の条件から「カスタム数式」を選択し、式を入力する

```
# F列が対象で、範囲がA2:Hで、2行目から始まっているので$F2を指定している
=($F2="done")
```


![条件付き書式の入力.png](https://qiita-image-store.s3.amazonaws.com/0/68146/f72d9959-70e8-1642-2ca7-79e5fd0d6c1b.png "条件付き書式の例.png")

すると、F列に"done"と記載するとその行が灰色になります

![条件付き書式完了.png](https://qiita-image-store.s3.amazonaws.com/0/68146/3b84b7d8-c96c-c54e-4caa-b9cef0814950.png "こんな感じdone.png")

## データ入力規則
複数人にデータの入力を依頼する場合、自由入力より選択の方がいい場合や、条件付き書式で、特定の単語しか受け付けたくない場合に有効です

まず、対象の範囲を選択して「データ＞データの入力規則...」を選択します
![データ入力規則開始.png](https://qiita-image-store.s3.amazonaws.com/0/68146/f86653bf-24c5-d3a9-b21c-3dc8067cfdae.png "データ入力規則開始.png")

選択肢として表示したいものを指定します。
カンマ区切りで直接指定もできますが、範囲で指定しておくと、順次追加も可能なので便利です。
![ステータス.png](https://qiita-image-store.s3.amazonaws.com/0/68146/2398b826-28df-9bc1-b431-96a1716696d6.png "ステータス.png")

「保存」を押すとデータ入力規則が反映され、該当のセルをクリックすると選択肢が表示されます
![データ入力規則完成図.png](https://qiita-image-store.s3.amazonaws.com/0/68146/1d3ddabf-39c5-4b9a-7ced-498120c9aece.png "データ入力規則完成図.png")

## 最後に
スプレッドシートは共同で使うことが多いと思うので、他の人への気遣いを忘れずに
やりすぎると本末転倒ですが、行の固定や色わけなどはすぐにできることなので、配慮できるといいですね

## [初心者向け] 実務開始の前に知っておきたいシリーズ
[[初心者向け] 実務開始の前に知っておきたいAnsibleのこと](
https://qiita.com/vankobe/items/5dc71bc0ab52114b34d6)
[[初心者向け] 実務開始の前に知っておきたいGoogleAnalyticsのこと](https://qiita.com/vankobe/items/2ef45365c190d154103b)
[[初心者向け] 実務開始の前に知っておきたいWordPressのこと](https://qiita.com/vankobe/items/bc16ec597cf7cf37c348)
[[初心者向け] 実務開始の前に知っておきたいRailsのこと](https://qiita.com/vankobe/items/f7e7b2592fcb3c51988f)