ラベル Excel の投稿を表示しています。 すべての投稿を表示
ラベル Excel の投稿を表示しています。 すべての投稿を表示
2015年4月25日土曜日

Excelでよく使うショートカットキー

設計書は「Wordで書くよ派」と「Excelで書くよ派」が存在する。色々あって結局Excelで作ることが多くなってしまったが、その際に覚えておくと良いショートカットキーを記載する。赤字は個人的に良く使うショートカット。

書式設定系

Ctrl + 1
「セルの書式設定」を開く

Ctrl + 2
Bold   ←Ctrl + Bでもできるので、そこまで使わない

Ctrl + 3 / Ctrl + I
Italic   ←Ctrl + Iでもできるので、そこまで使わない

Ctrl + 4 / Ctrl + U
下線   ←Ctrl + Uでもできるので、そこまで使わない

Ctrl + 5
取り消し線

Ctrl + 9
行を非表示にする

Ctrl + 0
列を非表示にする

+
数式入力を開始する。普通は"="を使うと思うが、"+"でも同じことができる。テンキーがあれば指の移動が少なくなることから("="を押す場合はテンキーから指を離す必要がある)、数式入力を繰り返す業務では効率良くなるらしい…

Ctrl + PageUp / Ctrl + PageDown
シートを移動。PageUpで左へ、PageDownで右へ。ただし、ノートPC等でPageUp/PageDownがFnキー押さないといけないPCは押すボタンが多くて大変

Ctrl + N
新規ワークシート作成

Ctrl + H
「検索と置換」の「置換タブ」を開く(Ctrl + Fだと「検索タブ」)

Ctrl + "+"
本日日付をyyyy/m/dで入力




2015年3月7日土曜日

Excelで空行を飛ばして上にある数字+1する数式

タイトルだけみると何のことかわかりづらいが、要するに以下の様な動作をする数式となる。空行や文字列のセルは無視して、該当セルの直前にある数字を見つけて、その数字をインクリメントする数式で、飛び飛びで連番を作る必要がある場合に便利。


数式は以下の通り。長くてわかりづらいので、分解して説明する。
=INDEX(INDIRECT(ADDRESS(1,COLUMN(),4,1)):INDIRECT(ADDRESS(ROW()-1,COLUMN(),4,1)),MATCH(MAX(INDIRECT(ADDRESS(1,COLUMN(),4,1)):INDIRECT(ADDRESS(ROW()-1,COLUMN(),4,1)))+1,INDIRECT(ADDRESS(1,COLUMN(),4,1)):INDIRECT(ADDRESS(ROW()-1,COLUMN(),4,1)),1))+1

数式で使用している関数の説明

まず使っている数式の説明。

INDEX関数

INDEX(配列, 行番号, 列番号, 領域番号)
説明:配列で指定した場所から(行番号, 列番号)の位置にある情報を取り出す関数。例えば、図で示したExcelシートの場合、「=INDEX(A1:A4, 3, 1)」とすれば、A3にある数字「2」が返ってくる。

ROW関数

ROW(参照)
説明:ROW()とするとExcelの行番号を返す関数。

COLUMN関数

COLUMN(参照)
説明:COLUMN()とするとExcelの列番号を返す関数。

ADDRESS関数

ADDRESS(行番号, 列番号, 参照の型, 参照形式)
※「参照の型」は以下の通り。
 1:絶対参照(例:$A$1) (※省略時)
 2:行は絶対、列は相対(例:A$1)
 3:行は相対、列は絶対(例:$A1)
 4:相対(例:A1)
※「参照形式」は以下の通り。
 1:A1形式 (※省略時)
 0:R1C1形式
説明:行番号と列番号を指定すると、セルの場所を文字列として表示する関数。例えばA5のセルに「=ADDRESS(ROW()-1,COLUMN(),4,1)」と入れれば「A4」という文字列が返ってくる。

INDIRECT関数

INDIRECT(参照文字列, 参照形式)
※「参照形式」は以下の通り。
 1:A1形式 (※省略時)
 0:R1C1形式
説明:参照文字列にExcelの数式を入れると、文字列ではなく数式として処理する関数。

MATCH関数

MATCH(検査値, 検査範囲, 照合の型)
※照合の型
 1:検索値以下の最大の場所を返す(正しく使う場合、値は昇順で並べておく)
 0:検索値に等しい最初の場所を返す
 -1:検索値以上の最小の場所を返す(正しく使う場合、値は降順で並べておく)
説明:検査範囲から検査値の値を検索し、相対的な場所を返す関数。

数式を分解して説明

A14のセルに本数式を入れた場合で考えてみる。
=INDEX(INDIRECT(ADDRESS(1,COLUMN(),4,1)):INDIRECT(ADDRESS(ROW()-1,COLUMN(),4,1)),MATCH(MAX(INDIRECT(ADDRESS(1,COLUMN(),4,1)):INDIRECT(ADDRESS(ROW()-1,COLUMN(),4,1)))+1,INDIRECT(ADDRESS(1,COLUMN(),4,1)):INDIRECT(ADDRESS(ROW()-1,COLUMN(),4,1)),1))+1
まず、ADDRESS関数を変換してみる。
=INDEX(INDIRECT(A1):INDIRECT(A13),MATCH(MAX(INDIRECT(A1):INDIRECT(A13))+1,INDIRECT(A1):INDIRECT(A13),1))+1
INDIRECT関数にて文字列を数式として扱うよう変換する。ここでだいぶスッキリする。
=INDEX(A1:A13,MATCH(MAX(A1:A13)+1,A1:A13,1))+1
MAX関数を計算する。最大値はA7の"4"になるため、4+1=5になる。
=INDEX(A1:A13,MATCH(5,A1:A13,1))+1
MATCH関数を計算する。ここがミソで、検索値は最大値+1の"5"となり、検索範囲において一致する値は絶対に無いことになる。この場合、MATCH関数では「検索値以下の最大の行の位置」が返されるので、結果的に"10"行が返ってくることになる。
=INDEX(A1:A13,10)+1
INDEX関数を最後に計算して完了。A10に入っている"1"の値が取り出され+1されることになる。
=A10+1=1+1=2

もうちょっとシンプルなやつ

単純に連番にするだけなら、以下でもできる。単純な連番なので、途中で数字を1からリセットするような動きにはならないので注意。
=MAX(INDIRECT(ADDRESS(1,COLUMN(),4,1)):INDIRECT(ADDRESS(ROW()-1,COLUMN(),4,1)))+1

2015年2月15日日曜日

Excelで簡易的に棒グラフを作る関数REPT

Excelの小ネタ。「指定した文字列を数字の回数だけ繰り返す」という関数がExcelにあって、REPT関数という。

使い方としては、昔のMS-DOSやLinuxのように文字で棒グラフを作ることに適している。例えば、以下の様なa~eの得点表があるとする。

a80
b20
c31
d64
e100

これをREPT関数を使って、「=REPT("|",B2)」のように入れてやると、、、

a 80 ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
b 20 ||||||||||||||||||||
c 31 |||||||||||||||||||||||||||||||
d 64 ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
e 100 ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

上記の通り"|"文字のグラフで表現でき、数字の差を直感的に把握することができる。

2015年1月16日金曜日

ExcelでDiffする

インフラエンジニアとなればスイッチのconfigを比較するなどでDiffツールは日常的に使っていると思うが、あくまでもDiffはテキストに対して実施するものと普通は考えているはず。

WinMergeというDiffツールにプラグインを入れれば、Excelファイルの内容もDiffできることがわかった。ダウンロード先は以下。


WinMergeをインストールして、プラグインのReadme読んで所定のフォルダにプラグイン入れればDiffができるようになる。

書式(罫線・網掛けなど)の違いはさすがに比較できないが、記載されているテキストはDiffできるので、Excelドキュメントの修正箇所洗い出しに便利になりそう。


2015年1月5日月曜日

Excel利用時にF1キーを無効化する

Excelのセル編集を行う場合はF2キーを押すが、間違ってその隣のF1キーを間違って押してしまってヘルプウィンドウが表示されて、イラッとする「Excelあるある」をどうにかする方法を考えた。

ヘルプなんて昔のOfficeのイルカと同じくらい使わない機能なのだから、Excel起動時はF1キーを殺す無効化してしまえば良いのだ。

無効化方法

以下内容のテキストファイルを拡張子「.reg」にして保存した後、「右クリック」→「結合」を実施する。その後、Excelを再起動することで反映される。

---------------------
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\14.0\Excel\DisabledShortcutKeysCheckBoxes]
"F1Key"="112,0"
---------------------

※文字コードはUnicodeにして保存すること
※上記はOutlook 2010の例。他のバージョンの場合は"14.0"の部分を以下に変更する。
 Outlook 2007:11.0
 Outlook 2010:14.0
 Outlook 2013:15.0


人気の投稿