「Excelができる」ってこと

時々「Excel教えてちょうだい」って言われることがあるんだが
何を教えればいいのかわからない。

自分も「Excelができる」とも思わない。
関数をいっぱい知ってるわけじゃないし、
VBAもあんまり理解していない。
もちろん、全然関数知らない人よりは「できる」とも思う。

Excelをうまく使うってことは、
「どうやって作れば何ができるかわかる」ってことだと思う。
「こことここを足して、ここに入れたあとにこっちと掛ければここに答えが出る」
っていうのとかが考えられるってことだと思う。
関数なんかはネットで調べればアタマがいい人いっぱいいるからね。

何を言いたいかというと、
Excelで何かを作るときは、
「特殊な機械語を使って、スゴイことをしている」わけではないこと。
あれとあれ足して、とか結構アナログなことをしていること。
よく聞けば理解できること。
Excelを知らなくても考えることはできること。

アイデア次第だよなぁ

Excel:2*2表からの値を検索する方法

表の行見出しと列見出しの交差するセルの値を抜き出す方法。
どちらの値も定数でなくても対応できる。

[縦軸が粗点、横軸が年齢で、年齢層に応じた評価点を出す場合。]
A61に粗点、B61に年齢を入れ、評価点がC61に表示される。

・VLOOKUP関数の列番号の部分にHLOOKUP関数を使う。

=IF(OR(A61=0,B61=0),””,VLOOKUP(A61,A2:U53,HLOOKUP(B61,A1:U2,2)))

最初の部分はエラー処理。
「もし(A61=0かB61=0なら、空白にするよ)」
ここの部分には、サンプル以外の値の場合、エラーメッセージを表示してもよい。

HLOOKUPについて。
HLOOKUP(B61,A1:U2,2)
「A1からU2を参照して、その一番上の行がB61なところを探すよ。
その行の、上から2番目の値を表示するよ。」
今回の場合は、年齢が「22」なので、22の下にある「4」となる。
この「行番号」は、VLOOKUPで使用するため、A列から1,2,3と続き番号にする。
A列には見出しが入っているので2からスタートしている。

VLOOKUPについて。
VLOOKUP(A61,A2:U53,4)
「A2からU53を参照して、左端列がA61の列を探すよ。その列の、左から4番目の値を表示するよ。」

今回の場合は、

HLOOKUP(年齢が22歳の列を探すよ。探す場所はA1からU2の間だよ。上から2番目だよ)
を使って、「左から4番目だよ」という答えを出します。
VLOOKUP(粗点37点の行を探すよ。探す場所はA1からU53の間だよ。左から4番目だよ。)
だから、評価点は16点だよ。

という意味になります。


追記:検索する数列が、1からスタートであればINDEX関数のほうがスマート。
   今回の表のように、「粗点0点でも評価点が2点になる」場合があるなら、今回の方法がよい。


Excel:エラーを表示させない

エクセルで関数を使った時に表示されるエラーを非表示にする方法。

A1/B1=C1の場合。

1.[ISERROR]を使う。
=if(ISERROR(A1/B1),””,A1/B1)
「A1/B1がエラーだったら、空白にするよ、そうじゃないならA1/B1だよ」
 ※最初から作るならこれがいいと思う。
  答えが0のときは0が表示される。

2.[ifで分類する]
 =if(OR(A1=0,B1=0),””,A1/B1)
「A1=0かB1=0だったら、空白にするよ、そうじゃないならA1/B1だよ」
 ※間違う条件が決まっているときはこれでもいいかも。
  答えが0のときも表示されない。

3.ISERROR+条件付き書式
 条件付き書式で、「次の書式を満たす場合に値を書式設定」する。
[=ISERROR(C1)]と設定、文字色を白にする。
「C1がエラーのとき、文字色を白にするよ」
 ※あとでエラーが出ていることに気付いたとき、数式を修正するのがめんどくさいとき。
  書式のみをコピペしていくと、簡単に他のセルにも適用できる。
  (コピーした後、「形式を選択して貼り付け」「書式」で貼り付ける)