かなり作業時間をセーブしてくれたと思うエクセルショートカットキー(Windows)

# 本記事のまとめ
- 社会人二年目が過ぎようとしているこれまでに重宝してきた個人的な推しショートカットを紹介
- これ使ったことなかった！新しい発見！に遭遇できる、かもしれないTips群
- こんなのもおすすめだよ！と一緒に記事をリッチにしたくなる、物足りなさ
が詰まっています

# はじめに
アプリケーションエンジニアとして新社会人がスタートしたものの、プロジェクト参画1ヶ月立たずして感じたのは

> 思いの外アプリそのものより、エクセルでデータまとめたり分析する作業・時間多いな

でした。

エクセルをずーっとカーソル移動とクリックで操作していたある日、上司から

> 以前、エクセルをほとんどキーボードだけで操作する人に出会った

という衝撃の一言を聞き、マウスを動かしてはカチカチクリックする動作を減らしたい！と思ったのがエクセルショートカットを学ぶキッカケでした。

この記事では、そのキッカケ以来愛用してきたショートカットキーをご紹介します。
（記憶を辿ってそうらしい）体得時系列順で紹介していくので、習得の参考になれば嬉しいです

### 注意
Windows OS上で動作するエクセルアプリケーションで使えるショートカットキーです。
ブラウザ版では使用できないものがあったり、Mac OS版などではショートカットキーの組み合わせが異なるものが多いためご注意ください。

## 1. セル内にカーソルを合わせる
```
F2
```
ダブルクリックの方が早いよ！ってツッコミがあるかもしれません。
ですが、目指すはマウス利用の最小化です！
ほんの少し嬉しいF2の推しポイントは空セルに入力を始める前にF2を打鍵して入力を始めることで、セル内カーソル移動ができるようになることですかね！

## 2. セルの値のコピー ＆ ペースト
セルのコピー
※貼り付けオプションによって値だけだったり、書式も合わせてだったりするので、"セルのコピー"と表現しています
```
ctrl + c
```

ペースト
```
ctrl + v
```
※コピー元のセルの書式ごと合わせてペースト

さらにスキルアップできるのが、色々設定してペーストできる次のショートキーです。
```
ctrl + alt + v
```
→ このキーを押すと"形式を選択して貼り付け"というポップアップウィンドウが出現します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2704397/4d685322-b2b8-1965-efe5-6a63e057792f.png)

私がよく使う組み合わせは
```
ctrl + alt + v → v → enter
```
です。
何をしてくれるかというと
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2704397/322d9f65-c933-2887-e66c-a53fc0032823.png)
このクリック（値のみ貼り付け）と同じことをやってくれます。

ctrl + alt + v の先はいくつもショートカットキーのパターンがたくさんあるので、まずは"形式を選択して貼り付け"ウィンドウを出すことを繰り返し使ってみることから始めると、ペースト系の作業の幅と速度が上がっていくと思います！

## 3. アクティブセルの移動(最初、最後の行や列に移動)
数千行、数十列に及ぶデータ、最終行や最後列に移動するのに時間がかかると思うことはありませんか？
そんな時役立ってくれるのが
```
ctrl + カーソルキー
```
- 右端なら"カーソルキー"部分は →
- 左端なら"カーソルキー"部分は ←
- 最上部なら"カーソルキー"部分は ↑
- 最下部なら"カーソルキー"部分は ↓

で打鍵します。

※アクティブセルから指定した末端方向に移動させる、というのが別の表現方法かもしれません
### 注意
末端に移動なので、空白行はさんでさらに後続行に値が入っている場合や、空白列をはさんでさらに後続列に値が入ってる場合には、データテーブル全体で見た時の最終行や最後列にアクティブセルを移動できる訳ではありません

### プラス
```
ctrl + shift + カーソルキー
```
のようにカーソルキーを打鍵する前にshiftを挟むと、アクティブセルから末端セルまで範囲選択をかけることができます
私がよく使うキーの組み合わせは
```
ctrl + shift + ↓
```
ctrl + shift は押しながら
```
ctrl + shift + →
```
と打鍵する形で、行と列に渡って値が入力されたセルの連続した範囲を全選択することができます。

## 4. 右方向コピー、下方向コピー
章題を読んで、コピー、ペーストのショートカットじゃないの？と思った方がいらっしゃるかもしれませんが、ここでは、右方向にコピー、下方向にコピーという処理を行なってくれるショートカットを紹介します。
### 右方向コピー
```
ctrl + r
```
### 下方向コピー
```
ctrl + d
```

右方向にコピーのショートカットキーの強みは、フィルターをかけた状態の表においても同じ行の右側に転記を実施してくれることです。
例えば、フィルターをかけた状態でB列の複数行に渡る値を同じ行のC列に転記したいという場面があった時、ctrlとcやvを使ったコピーペーストでは、フィルターされた行の一番上から連続して下方向にペーストされてしまいます。
イメージで表すと
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2704397/13dc3451-0f77-8276-8889-738dc2871a49.png)
B3→C3, B5→C5, B7→C7, B11→C11 に転記したい時、単純にB3:B11を範囲選択してctrl+cをしてC3を選択した状態でctrl+vを打鍵すると
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2704397/df8aceea-6e0f-876f-4564-186b38c274b9.png)
このようになります。
フィルターを取り除くと、C3から連続して5行にわたってペーストされていることがわかります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2704397/287c5f61-6b2d-fbd8-c5c1-6b5c7e548947.png)
このようにズレてしまうのを、同じ行で横方向転記をしてくれるのがctrl+rになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2704397/5d6ccf71-ac21-4e21-0d87-3f8854f53bcb.png)
B3:C11を範囲選択し、ctrl+rを打鍵すると、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2704397/e9f72014-735d-cb5e-8772-9029443fecc8.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2704397/31deada1-d3ac-db4e-3032-1f2cb7bcbfe3.png)
同じ行のC列セルにB列の値をコピーすることができました。

また、下方向にコピーのショートカットの強みとしては、値コピーの意味でオートフィルの動作を瞬時に行えることです。
※インクリメントさせるオートフィルは別途紹介。

例えば、A列、B列に値が入っていたとして、C列にA列のセルとB列のセルを利用する関数を入力していた時、この関数を下数百行に渡って適用させたい時、カーソル移動を伴うオートフィルは行が多くなればなるほど、行移動に時間を要します。

代わりに、ctrl + d を使用するとパッと関数を全ての行に適用させることができます。
先の例の状態にある時、ctrl + d を利用した下方向コピーの打鍵順番は次のようになります。
```
B列にアクティブセルを移動
ctrl + ↓ // 最終行にアクティブセルを移動
一つ右にアクティブセルを移動 // C列の最終行のセルを選択している状態
ctrl + shift + ↑ // C列について、最終行から先頭行にかけて範囲選択
ctrl + d // 先頭行のC列に入力された数式を下方向にコピー
```

### プラス
では、上方向や左方向は？という疑問が浮かぶかもしれません。
その時は
```
alt + h + f + i + (u / d / r / l)
```
を利用します。
(u / d / r / l)
は、それぞれ
- u: up
- d: down
- r: right
- l: left
の意味合いで、最後に打鍵するキーによってコピー方向を変えることができます。


## 5. 複数行に渡って連番を入力する
ここで紹介するショートカットキーを使うことで、オートフィルで入力していた連番の登録作業時間が減らせるかもしれません。
特に、作成した表にあとからインデックスをつけたい時に合うと思います。

キー
```
alt + h + f + i + s
```

この打鍵をすると、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2704397/bf84e0ac-43a0-b351-5315-0bcc9deefdcb.png)
"連続データ"というポップアップウィンドウを出すことができます。

1から100行目までに渡って1から1つづ加算させた連番を入力したい時を例にした時の使い方は、
```
1行目のセルに1を入力する
1行目から100行目までの範囲選択をする
alt + h + f + i + s + enter
```
といった手順になります。

このキーを覚えるキッカケになったエピソードが一つあります。
その時は表が最終的に何行になるか定まらなかったため、インデックとして使用する列に"=ROW() - 1"を入力していました。
※ヘッダー行の分1を引いています
そして、表にフィルターをかけて、任意の列でソートした時事件は起こりました。
ソートを戻したくてもインデックスがソート後の行番号に合わせて再計算されていおり、元の順番に戻せない。。。
かろうじて自動保存をオンにしていたため、過去のバーションを復元して事なきを得ましたが、以来 Row関数を使ってインデックスを振るのはやめようと思いました。
そして、キーボードだけで連番を振りたいと検索してたどり着いたのがここで紹介したショートカットキーになります。（笑）

### 注意
連続データの先頭になる数字が文字列である場合は、加算での連続データ生成はできませんので、事前に数値に書式変換してから打鍵してください。

## おわりに
今回は５つ、これまでの作業時間をセーブしてくれたと感じるエクセルショートカットを詳しく紹介しました。
ぜひ、コメントにて、読者さまの推しショートカットや補足を投稿していただけたら嬉しいです。
エクセルも業務内での使い方によっては覚えるショートカットキーもさまざま変わってくると思います。
最後に、そのほか私が愛用しているショートカットキーをまとめて紹介いたします！

セルの書式設定
```
ctrl + 1
```

罫線を引く
```
alt + h + b + (a / s / n)
```

フィルターをかける
```
※フィルターをかけたいテーブルを範囲選択した状態で
alt + h + s + f
```

行または列の削除
```
※shift + space で行選択やctrl + spaceで列選択をかけた状態で以下打鍵すると効率的です
ctrl + -
```

行または列の追加
```
ctrl + +
```

列の幅の自動調整
```
alt + h + i
```

行の高さの自動調整
```
alt + h + a
```

重複データの削除
```
alt + a + m
```

後ろのシートへの移動
```
ctrl + pagedown
```

前のシートへの移動
```
ctrl + pageup
```

取り消し線
```
ctrl + 5
```

セルを結合して中央揃え
```
alt + h + m + c
```

左揃え、中央揃え、右揃え
```
alt + h + a + l
alt + h + a + c
alt + h + a + r
```

折り返して全体を表示する
```
alt + h + w
```