今までエクセルを全く勉強してこなかったけど、今の業務の中で得たちょっとしたエクセルテクニック一覧

## 少し前までの自分のエクセルの知識
最近まで「オートフィル」という用語すら知らなかったレベルです。
知ってる関数も3つほどで、エクセルでのIF関数すら書いたことなかった。
言い訳すると、学生時代も業務でもエクセルの細かい機能を使う機会が全くなかった。せいぜい、テストでのエビデンスに必要な文字列入力や画像添付などぐらいだった。

でも、現在の業務では大量のデータから何かを調査したり分析することが多いので、そのときにエクセルを使う機会が増えた。

教えてもらったことはちゃんとメモして色々覚えたので、とりあえず学んだことをアウトプットしていく。

エクセル初心者レベルなので、ただの個人的なアウトプットということで。。。笑

覚えたこと一覧をいろいろ書いていく

## 他のシートのセルの値を参照
他のシートである「hogeシート」という名前のシートがあってそこのA1セルの値が欲しい場合。
ググる前は、プログラミング言語的には、「hogeシート.A1」としたくなったけどうまくいかなかったのでググったらこれだった

```
=hogeシート!A1
```

##データのある一番下まで一気に移動

```
Ctrl + ↓
```

## データのある一番下まで一気に選択状態にする

```
Ctrl + shift + ↓
```

## データのある右下まで移動

```
Ctrl + end
```

## データのある右下まで選択状態(つまりデータ全て選択)

```
Ctrl + shift + end
```

## IF関数使って、条件によって結果出力を変える
●=ifまで書いたら、それぞれの引数に説明が表示されるので、それ通りに書くだけ。
●第一引数に条件、第二引数にtrueのときの出力の値、第二引数にfalseだったときの値を直接指定するだけ。
![スクリーンショット 2021-08-08 21.27.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179803/1827ddfb-26e9-bd61-f5fe-8c7ed6cd87a7.png)


## データを2行ごとに取得
Sheet1のA1から2ごとに取得する例

```
=OFFSET(Sheet1!$A$1,(ROW()-1)*2,0)
```
## 文字列の範囲で抽出(Sheet1のA1から、78文字目から、26文字取得)

```
=MID(Sheet1!A1,78,26)
```

## 絶対参照
オーフィルすると、セルの番号が昇順で勝手に上がってしまう。便利ではあるが、固定したい場合がある。
「=E24」の24を固定にしたかったら、「=E\$24」という感じで、数字の前に「\$」をつける。

※マークダウンでドルマーク使いたかったら、「\」をドルの前につけなきゃいけないの知らんかった。自分の記事見たらドルが消えててビビった

## 特定の文字列以降で抽出(Sheet2のシートで、「[UTF-8]: [」という文字列から取得)
→今回は例としてログによくありそうな「[UTF-8]: [」としたが、ここに任意の文字列を指定する。

```
=RIGHT(Sheet2!A1,LEN(Sheet2!A1)-(FIND("[UTF-8]: [",Sheet2!A1)-1))
```
## セルに関数入れても何も起きないとき
セルが文字列扱いになってるので、「標準」に変更

## 計算結果が、「2.7E-06」みたいになったら、ユーザー定義を作成する。

```
●今回は、分、秒、ミリ秒という感じで表示したい。
●セルを選択して、ホームに標準とか数値を選択できるところがあるので、
「その他の表示形式」からユーザー定義で下のほうに
「mm:ss.0」みたいなのがあるので、それを選択。
●桁数増やしたかったら、0を追加して
「mm:ss.000」みたいにして、OK
```

## 文字列と関数やセルの値を結合
基本的んは最初に「=」から始まるが、何か文字列の後に関数の結果やセルの値を使って文字列連結させたい。
D11のセルの値が「ステータスhoge」とする。

```
=CONCATENATE("【タイムアウトが発生している場合】→",D11)
```
↓

```
【タイムアウトが発生している場合】→ ステータスhoge
```

#データの並び替え
```
→項目となる行を含めて、データのあるセルのみを全て選択する。
→上のメニューから「データ」から「並び替え」を選択
→もしシートにデータだけじゃなくて項目名もあったらそれはもちろん
並び替え対象にならないので、右上にある
「先頭行をデータの見出しとして使用」にチェック
→例えば「端末番号」で並び替えたかったら、それを最優先されるキーに入力。
他にも並び替えしたものがあったら、「レベルの追加」で追加して、OKする。
→その後のラジオボタンの選択しでは上のラジオボタンの「数値も～」を選択

```

●今あるエクセルのシートを、別のエクセルファイルのシートに簡単追記する方法
→手動でやろうとすると、今あるシートを全選択してCtrl+Cして対象シートにペーストみたいな考えだったけど、それだと体裁が崩れるのと少し手間なので、簡単に出来る方法を学んだ。

```
1.コピー元のファイルとコピー先のエクセルファイルを2つ開いて、コピー先ではコピー先となるシートを開いておく。
2.コピー対象のシートの名前のところを右クリックして「名前またはコピー」を選択。
3.「移動先ブック名」というものがあってこれは今開いてるエクセルファイル一覧が表示されるので、コピー先となるエクセルファイル名を選択。
4.「挿入先」というものがあるので、「(末尾に移動)」を選択して、「OK」を選択
```
##vlookupでデータを検索
関数名だけはずっと前から聞いたことはあった。でも使う機会も無かったので実際にやってみることなく今まで生きてきた。なんとなく難しそうなイメージがあったが、やってみたら何も難しくなかった。。。

検索で使う文字列を指定したり、どこから検索したいのかの範囲を指定したらいいだけで、直感的で分かりやすかった。

●検索対象のデータ
![スクリーンショット 2021-08-10 22.32.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179803/2ee27808-7930-e9e9-32f3-f5e068074c18.png)
●検索文字列と関数
第一引数に、検索したい文字列を普通に指定
第二引数に、検索したい場所を範囲としてそのまま指定
第三引数に、どこのデータをもってきたいかを指定
第四引数に、完全一致か部分一致かを指定。falseなので完全一致
![スクリーンショット 2021-08-10 22.33.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179803/5f524118-9130-dda9-4faf-d70ed150aed6.png)
vlookupは、大量のデータからとある状態のデータを絞って一覧にしたいときとかそんな感じの業務で使った。


# 感想
業務をやってると、大量のデータを扱うタスクだとエクセルのちょっとしたテクニックを全く知らないと作業時間が圧倒的に変わってくるんだなと実感しました。。。
何万行とあるデータをちまちまやってたら日が暮れますが、便利なテクニックを教えてもらったら一瞬で終わったりと、いろいろ衝撃を受けました。。。

なんか、今までエクセルに対して難しく考えすぎたなと。。。
とはいえ、まだまだ知らない便利なテクニックは山ほどありそうですが笑