koleben’s blog

モノ・時間・情報からの自由になりたい。スローでイージーな暮らしを目指して

Excelのちょっとしたコツとよく使う関数

学校なども臨時休校、事業所も閉鎖され一家揃って在宅学習や勤務している家庭も増えているのでしょうか?

うちの家も夫婦揃って在宅勤務なんですが、奥さまがExcelで困ってる様を見て衝撃を受けた次第

こんな非効率な作業をさせられているのか??

f:id:koleben:20200504115522p:plain

別に高度なマクロやらをマスターしなくてもだいぶ楽になると思いますので奥さまにレクチャーした内容をいくつかシェアしたいと思います。

他の方法でもできるよ!ってのはあると思いますが、個人的にはこんなんシステム化すればいいじゃんか、nodeとかでプログラム組んで直接xlsxファイル処理できるんだし!と思いますが、テクノロジーギャップが大きすぎるので。Excelをもっとマスターしてる方はスルーしてください。

そもそもExcelMac版が最初

って、知ってました? 私が使い始めたころはフロッピー二十数枚組だったかと思います。 日本ではNECのPC98シリーズでのMS-DOSから、Windowsが使われ始められたくらいだったかと思います。 DOSの方ではロータス123とか三四郎(?)とかいうのくらいしかなかったんじゃないかな?

Mac版はそのあとWin版Excelにあっという間に追いつき追い抜かれましたが)

その時代から使ってます。

キーボード操作のコツ

シフトキー+カーソル

セルを複数選択するときにマウスでドラッグしなくてもカーソルキーだけで領域選択できます。

シフトキーを押しながらカーソルキーでセルを移動すると選択領域が広がります。

コントロールキー+カーソル

コントロールキーを押しながらカーソルキーを押すとセルの状態が変わるところまで移動できます。

値が100行目まではいってるとして1行目のセルを選択されていた場合に、コントロール+下矢印で100行目に移動します。

【コツ】シフトキー+コントロールキー+カーソル

じゃぁシフトキーとコントロールキーを組み合わせるとどうなるでしょう?

セルの状態が変わるまで領域選択できるようになります。

これでなにか値が入っているセルの領域全体を選択することができるようになりました。

これは次のコツとの併用で威力を発揮します。

コントロール+D、コントロール+R

機能でいうと「フィル」>下方向にコピー、右方向にコピーというのです。

Down、Rightという頭文字からもわかるように下(Down)方向にコピー、右(Right)方向にコピーします。察しが良い方はわかると思いますが、Uで上、Lで左にコピーできます。

これメニュー項目にショートカット書いてないんですよね。

これはあるセルの内容(主に関数)を下とか右のセルにコピーする機能です。

これを先程の領域選択と合わせて使うと、

シフト+コントロール+下矢印、シフト+コントロール+右矢印(で領域が選択できた) コントロール+R、コントロール+D(で領域を関数で埋められた)

ということができます。傍から見てても何しているかわからないようですが。

関数とその結果の使いまわし方法

奥さまからの質問で、まぁこれだけマスタしてればなんとかなるだろうというものになります。

VLOOKUPとその関連

VLOOKUP自体は使ってたんですが、いくつか仕様の認識が曖昧でしたので整理します。

検索する対象の整備が重要です。

  1. 「検索したい値」を一番左列にする。
  2. 「それで見つけたい値を」右列に並べる。
  3. 「検索したい値」は昇順に並べ直す。<これ今のバージョンなら不要かなと思いましたがいまだにこの制限あるんですね。

検索する対象の例はこんな感じ

部品番号 出荷数 単価 売上
A001 10 95.3 953.0
A002 20 123.5 2,470.0
G001 33 83.3 2,748.9

#N/Aを消したいならIFERROR

検索したい表にない部品番号を検索するとエラーがでます。

こんな感じ部品番号をキーにしてVLOOKUPで値を引いています。

部品番号 出荷数 単価 売上
A003 #N/A #N/A #N/A
G001 33 83.3 2,748.9
G002 #N/A #N/A #N/A

このエクセルで集計した値をどこかにコピペして残高表とかを作りたいんだ、出荷検収の都合でズレが有る(という業務フローがどうなのか?ということはおいておいて)が#N/Aがジャマということがよくあるようです。

その場合はVLOOKUPをIFERRORで囲んでください。そうするとエラーのときは〜〜という処理にできます。

=IFERROR(VLOOKUP(検索キー,検索範囲,列,確度),"エラーのときの表示")

となります。エラーのときの表示を「""」とすることで空白(実際は””という文字列)になります。

こんな感じ

部品番号 出荷数 単価 売上
A003
G001 33 83.3 2,748.9
G002

重複を探したいならCOUNTIF

伝票などでなぜか部品番号が重複してる場合があります。(単価が変わってたなど) 単純にVLOOKUPを使って部品番号で引くと不正確な情報を引っ張ってくることになります。 (部品番号がユニークキーになってないじゃないか!!と叫びましたが)

データの集計機能などでキーの個数を数えられますがテーブルの構造も変わってしまうので簡単に関数で対処します。

=COUNTIF("例えば部品番号の列",その部品番号)

とします。

こんな感じになります。

部品番号 出荷数 単価 売上 COUNTIF
A001 10 95.3 953.0 2
A002 20 123.5 2,470.0 1
A001 10 95.3 953.0 2

1以外が重複しているということになります。条件でセルの色を変える機能を使えば見つけるのも簡単になります。

値コピーではなくメモ帳経由のコピペが最強

Excelでコピペするときに関数ごとコピーしたくなく、その結果を貼り付けたいときに値をコピー機能を使います。 (しつこいようですがそんな業務フローがダメだろ!ということですが)

VLOOKUPやIFERRORを駆使してきれいな表ができました。 これを最終報告用の月次ワークシートにコピペすれば完了!となったとき、最終報告用のワークシートで#VALUEというエラーがでる時があります。

こんな感じ、出荷数と単価と売上部分がコピペで、ほかはテンプレとなってるイメージです。

先月売上 部品番号 出荷数 単価 売上 前月からの差異
3,200.0 A003 #VALUE!
2,840.0 G001 33 83.3 2,748.9 91.1
0 G002 #VALUE!

実際に「なんかエラーがでる」と言われました。

これは、IFERRORで検索結果が見つからないときに「""」を出力するようにしてたわけですが、文字列の空白と四則演算としようとした場合のエラーになってるわけですね。 ExcelってNULL出力はないようで...

コピペのときに値貼り付けを指定したんですが、Excelではその場合でも真面目に文字列として「””」貼り付けちゃうんですね。

そんなときはメモ帳の出番です。(というかメモ帳しかエディタが入ってなかった。勝手なアプリのインストール禁止。)

二度手間にはなりますが、エクセルでコピー、メモ帳に貼り付け、再度コピー、エクセルに貼り付け(テキスト情報しか保持してない)をします。「””」は「なし」扱いになりますので見た通りの結果になります。

この場合もショートカットキーで、

  1. Excel:コントロール+シフト+カーソルで領域選択
  2. Excel:コントロール+Cでコピー
  3. Windows:Alt+タブでメモ帳に切り替え(メモ帳は起動済み)
  4. メモ帳:コントロール+Aですべて選択
  5. メモ帳:コントロール+Vでエクセルの内容を貼り付け
  6. メモ帳:コントロール+Aですべて選択
  7. メモ帳:コントロール+Cでコピー
  8. Windows:Alt+タブでEXCELに戻る。
  9. Excel:やっとマウスで最終報告用のワークシートを選び、貼り付ける領域のセル選択
  10. Excel:コントロール+Vで貼り付け。完了!

手順で書くと多いですね。これもショートカットキーを多用してるので傍から見るとよくわからないといわれました。慣れればほぼ無意識に指が動くようになりますのでショートカットキーは活用しましょう。

自分だったらワークフロー自体を変え、処理自体も全自動にしたいところではありますが、自分で業務フローを変える権限を持ってない方も多いと思います。

だれが作ったかわからない報告書ワークシートにコピペして報告しなければいけない方でもちょっとしたコツで作業を短縮しゆとりある生活ができるヒントになれば幸いです。