よく使うExcel関数

#普通によく使うであろう関数一覧

Excelは関数がたくさんあるのですが、普段からよく使うものは限られています。

|関数|構文|効果|
|---|---|---|
|SUM|=SUM(指定範囲)|合計値を求める|
|COUNT|=COUNT(指定範囲)|数値の個数を求める|
|COUNTA|=COUNTA(指定範囲)|空白じゃないセルの個数を求める|
|COUNIF|=COUNTIF(指定範囲,検索条件)|検索条件に一致するセルの個数を求める|
|AVERAGE|=AVERAGE(指定範囲)|平均値を出す|
|IF|=IF(理論式,真の場合,偽の場合)|条件分岐をして2パターンの結果を出すことが出来る|
|LEN|=LEN(指定範囲)|半角全角の区別無しに文字数を表示する|
|LENB|=LENB(指定範囲)|バイト数(半角1バイト,全角2バイト)を表示する|
|MAX|=MAX(指定範囲)|範囲内の最大値を求める|
|MIN|=MIN(指定範囲)|範囲内の最小値を求める|

##四則演算
四則演算とは関数ではないが良く使う機会が出てくるのでしっかりと理解しましょう。

- 足す(+)
- 引く(-)
- 掛ける(*)
- 割る(/)

足すと引くは普通の計算式と同じだが、掛ける(×)と割る(÷)に関してはアスタリスク(*)とスラッシュ(/)を使用することになる。
例題を見てみましょう。

|  |A|B|C|D|
|---|---|---|---|---|
|1|10|5|||
|2|||||
|3|||||
|4|||||

上のようなExcelの数式があるとします。
その時にD列に各計算を出せるようにしてみましょう。

|  |A|B|C|D|
|---|---|---|---|---|
|1|10|5|足す|=A1+B1|
|2|||引く|=A1-B1|
|3|||掛ける|=A1*B1|
|4|||割る|=A1/B1|

上の表の様にD列に数式[^1]を入れたら自動的に計算されたものが表示されます。

##合計値を求める(SUM)

上の四則演算でも計算は出来るのですが、100個の数値を計算しようとしたら100個選択をすることになりとても大変です。(実際にはExcelで100個の選択は出来ない)
その為に楽に計算を行うためにExcelでは**関数**というものが用意されています。
その中でもこの章では合計値を求める**SUM関数**を使いましょう。

|  |A|B|C|D|
|---|---|---|---|---|
|1|10||||
|2|5||||
|3|11||||
|4|6||||
|5|3||||
|6|23||||
|7|66||||
|8|34||||

上の図の様なExcelがある時に**A列全て**の合計値をC1に出したい場合は次の様な数式(関数)を使います。

|  |A|B|C|D|
|---|---|---|---|---|
|1|10||=SUM(A:A)||
|2|5||||
|3|11||||
|4|6||||
|5|3||||
|6|23||||
|7|66||||
|8|34||||

この様に記載するとC1に**A列全ての合計値**が表示されます。
計算するときに間に文字列が入っていた場合は無視され飛ばされますが、注意しなければならないことがあります。
Excelの中で**日付と時刻**に関しては考え方が特殊になっており、**シリアル値**[^2]というもので表されます。
シリアル値というのは日付を数字に直したものになるので、SUM関数等の中に日付や時刻が混じっていた場合、望む計算の合計値が表示されません。

またA列全てを計算するときに、手入力で```=SUM(A:A)```と記入する必要はなく```=SUM(```まで記入した後に合計値を出したい範囲(上記の例ではA列)をクリックすることで自動的に入力されるので、後はエンターを押すことで計算することが可能です。

次に同じSUM関数でも**指定範囲**の合計値を出す関数を見てみましょう。

|  |A|B|C|D|
|---|---|---|---|---|
|1|10||=SUM(A1:A5)||
|2|5||||
|3|11||||
|4|6||||
|5|3||||
|6|23||||
|7|66||||
|8|34||||

この関数でわかると思うのですが、関数の範囲選択をするときには```=SUM(開始地点:終了地点)```というように指定するだけです。
これも上と同様に範囲をドラッグして決めることも可能です。

> 他にも離れた地点を計算したいときにはCtrlを押しながらクリックで複数選択も可能です。


##数値の個数を求める(COUNT)

次に指定した範囲にある数値の個数を表示する関数**COUNT**を見てみましょう。

|  |A|B|C|D|
|---|---|---|---|---|
|1|10||=COUNT(A1:A8)||
|2|5||||
|3|test||||
|4|6||||
|5|a||||
|6|23||||
|7|66||||
|8|34||||

この関数でもSUM関数と同じように**列での選択**も出来るのですが割愛します。
まずはこの関数で求められる数字はいくつになると思うでしょう。
カウントという名前からして文字の書いているセルの個数(ここでは**8**)を表示してくれるように思われがちですが、Excelでは**文字列と数値は明確に違うもの**とされています。
よって、COUNT関数で求めることが出来るものは**数値**と決められているので**数値が入っている個数**つまり**6**が表示されるのが正解になります。

次の章では文字列も含めた計算方式の例を記載します。

##空白じゃないセルの個数を求める(COUNTA)

上記の**COUNT関数**と同じようにセルの個数を求めるのですが、今回は数値ではなく**空白ではないセルの個数**を求める関数となっています。
先ほどと同じように図にして説明をしていきます。

|  |A|B|C|D|
|---|---|---|---|---|
|1|10||=COUNTA(A1:A8)||
|2|5||||
|3|test||||
|4|6||||
|5|a||||
|6|23||||
|7|66||||
|8|34||||

先ほどはC1に```=COUNT(A1:A8)```という関数でしたが今回は```COUNTA```関数になります。
その為に求めることが出来る数値は空白ではないセルの個数となるので**8**が表示されるはずです。
記入されているセルの個数を求める機会は多いので、**COUNT関数**と**COUNTA関数**の違いは把握しましょう。

##検索条件に一致するセルの個数を求める(COUNTIF)

またCOUNT系の関数となりますが、これも良く使うものなので覚えましょう。

|  |A|B|C|D|
|---|---|---|---|---|
|1|10||10||
|2|5||test||
|3|test||||
|4|6||||
|5|test||||
|6|10||||
|7|10||||
|8|34||||

上記の様なExcelデータがあり、C1,C2に入っている10とtestという文字列の数を求めたいとします。
その際に使うのが**COUNTIF関数**です。
関数の記述方法としては```=COUNTIF(検索範囲,検索条件)```となりますので記述方法は以下の通りとなります。

|  |A|B|C|D|
|---|---|---|---|---|
|1|10||10|=COUNTIF(A1:A8,10)|
|2|5||test|=COUNTIF(A1:A8,"test")|
|3|test||||
|4|6||||
|5|test||||
|6|10||||
|7|10||||
|8|34||||

これで表示されるものはD1のセルが10の個数、D2のセルがtestという文字の個数になります。
この時気をつけなければいけないことがあり、Excel関数に文字列を入れるときには文字列だとExcelに教えてやる必要があります。
それが```"test"```となっている部分のダブルクオーテーションです。
"に囲まれている部分は全て文字列として認識されるので覚えておきましょう。
また、COUNTIFにはもう一つ書き方があるので、それも見てみましょう。

|  |A|B|C|D|
|---|---|---|---|---|
|1|10||10|=COUNTIF(A1:A8,C1)|
|2|5||test|=COUNTIF(A1:A8,C2)|
|3|test||||
|4|6||||
|5|test||||
|6|10||||
|7|10||||
|8|34||||

この様に記載することにより、C1とC2の検索条件が変更された際にD列を変更しなくても検索をすることが可能になります。

##平均値を出す(AVERAGE)

次は表題のままですが、平均値を出す関数**AVERAGE関数**を見てみましょう。

|  |A|B|C|D|
|---|---|---|---|---|
|1|10||10|=AVERAGE(A1:A8)|
|2|5||test||
|3|10|||
|4|5||||
|5|10||||

この関数に関してはSUM関数と同様で範囲選択だけをすれば良いので難しいことはありません。
また、SUM関数と同様にCtrlを押しながらのクリックで複数選択も可能になります。

##条件分岐をして2パターンの結果を出すことが出来る(IF)

次に学ぶのはExcel野中でもつまづきやすいと言われる**IF関数**です。
IF関数については使用用途がとても多く、使用方法もかなりの数があるのでここでは一部分の例題のみを見てみましょう。

|  |A|B|C|D|
|---|---|---|---|---|
|1|ぶどう||||
|2|ぶどう||||
|3|ごりら||||
|4|ぶどう||||

上記の様な表があるとして、簡単に二択で**ぶどう**と**ごりら**を仕分けしてみましょう。

|  |A|B|C|D|
|---|---|---|---|---|
|1|ぶどう|=IF(A1="ぶどう","くだもの","ごりら")|||
|2|ぶどう|=IF(A2="ぶどう","くだもの","ごりら")|||
|3|ごりら|=IF(A3="ぶどう","くだもの","ごりら")|||
|4|ぶどう|=IF(A4="ぶどう","くだもの","ごりら")|||

この様に記入するとB列で指定したA列に**ぶどうと書いていれば[くだもの],ごりらと書いていたら[ごりら]**と表示されます。
また、一番上のB1さえ書いてしまえば後はコピペで勝手に**A1がA2に変更**[^3]されます。
これがIF関数の基本的な作りであり、[真の場合][偽の場合]という2パターンの条件分岐をすることが出来るものとなっています。
**IF関数の構文**:```=IF(理論式,真の場合,偽の場合)```

次にIF関数の中に更に関数を追加した例題を見てみましょう。

|  |A|B|C|D|
|---|---|---|---|---|
|1|55|85|||
|2|63||||
|3||66|||
|4|83|58|||

この様なExcelがあるとして、**A列に数値が入っている場合のみA列+B列の値を求める**という計算をしてみましょう。

|  |A|B|C|D|
|---|---|---|---|---|
|1|55|85|=IF(A1="","",SUM(A1:B1))||
|2|63||=IF(A2="","",SUM(A2:B2))||
|3||66|=IF(A3="","",SUM(A3:B3))||
|4|83|58|=IF(A4="","",SUM(A4:B4))||

上記の様にC列にIF関数を入れてみました。
これで求められる結果はなんでしょう。
前述したIF関数の構文に当てはめて考えてみましょう。

**IF関数の構文**:```=IF(理論式,真の場合,偽の場合)```

A1を例にした場合、A1のセルが""[^4]の場合は""で空白を示し、空白ではない場合はA1からB1の合計値を求めるという関数が完成します。

IF関数は他の関数との複合、IF関数の入れ子をしたりして複雑な式を使う機会が多いので詳しく知りたい人は勉強しましょう。

##半角全角の区別無しに文字数を表示する(LEN)

次に文字数を求める関数となります。
これについては特に難しい知識も必要ありません。

|  |A|B|C|
|---|---|---|---|
|1|hogeほげ|||
|2||||

上の様なExcelデータがあったとしてA1の**文字数**を求めたいとします。
その場合は下記の様に記載してみましょう。

|  |A|B|C|
|---|---|---|---|
|1|hogeほげ|=LEN(A1)||
|2||||

この場合、純粋に文字数を求める関数ですので表示される文字数は**6**となります。

##バイト数(半角1バイト,全角2バイト)を表示する（LENB)

上記のLENは文字数の計算だったのに対し、LENB関数は**文字のbyte(バイト)数**を求める関数となっています。
バイト数という言葉が聞きなれないかもしれませんが、パソコンの容量の単位と同じです。
また、文字は```abc```という半角文字は1byteで```あいうえお```の様な全角文字は2byteと計算されます。(例外もあるかも)
では実際に文字のbyte数を求めてみましょう。

|  |A|B|C|
|---|---|---|---|
|1|hogeほげ|=LENB(A1)||
|2||||

表示される数値はなんでしたでしょうか。
**LEN関数**では6に対して、今回は8と表示されたと思います。
その理由は1byte文字(hoge)が4文字で4byte、2byte文字(ほげ)が2文字で4byte。
その為に合計8と表示されているはずです。

##範囲内の最大値を求める(MAX)

次は指定した範囲の中での最大値を求める関数**MAX関数**を見ていきましょう。

|  |A|B|C|D|
|---|---|---|---|---|
|1|10||=MAX(A:A)||
|2|5||||
|3|11||||
|4|6||||
|5|3||||
|6|23||||
|7|66||||
|8|34||||

この様に記述をしてもらうと**A列での最大値**である66がC1に表示されるはずです。
特に難しいことはなく、SUM関数の様に気軽に使えるでしょう。

##範囲内の最小値を求める(MIN)

この関数は簡単に言ってしまえばMAX関数の逆です。
これも簡単に図で示してみましょう。

|  |A|B|C|D|
|---|---|---|---|---|
|1|10||=MIN(A:A)||
|2|5||||
|3|11||||
|4|6||||
|5|3||||
|6|23||||
|7|66||||
|8|34||||

この場合はA列の最小値である3がC1に表示されるはずです。
たくさんのデータから簡単に最大値、最小値を抽出したい場合にMAX関数とMIN関数は良いでしょう。



長くなりましたが、Excelには**条件付き書式**や**書式設定**、**オートフィルタ機能**等便利なものもあるので、また書きたいと思います。






**********************************************************************************************

[^1]: Excelでは計算式のとこを基本的に数式と言います。
[^2]: シリアル値の例としては[2015/09/08]のシリアル値は[42255]となります。
[^3]: もしB列ではなくC列にコピーしたとしたらAの列からBの列に条件が変更する。コピペした際に動いたセルの分だけ同一方向に指定範囲も動くということを理解しましょう。
[^4]: 文字列を記載する場合は"で囲むという説明をした通りExcelからしたら""というものは何も入ってない文字列が存在するということになり、空白を示す。