関数とは
そもそも関数とは何か?ということですが、
ここで説明する関数は、「 Excel上で数式や論理式など自動的に計算してくれるもの 」のことを指します。
関数は非常に便利なもので、400?以上はあるかと思います。
ですが、関数の全てを覚える必要はありません。
自分一人だけ使えてもチームメンバーが使えなきゃ運用できない
少し小難しいものは調べれば使える
そもそも難しいものは使う機会が少ない
といったことが理由です。
ただ基本的な比較的よく使う関数さえ覚えていれば
作業効率は格段にあがります。
このページではそういった関数を説明します。
IF
=IF(条件式,真の場合の値,偽の場合の値)
IFは「条件式が真なら〜、偽なら〜」という処理をさせます。
A | B | C | D | E | |
---|---|---|---|---|---|
1 | 20 | 30 | |||
2 | |||||
3 |
=IF(A1=B1,"一致","不一致")
// A1セルとB1セルが等しいなら「一致」、等しくないなら「不一致」の文字列を返す
この場合なら”不一致”が返ってきます
OR
=OR(論理式1,論理式2,論理式3,〜)
ORは「論理式1もしくは論理式2もしくは論理式3…が成立したらTRUE、全て不成立ならFALSEを返す」という処理をさせます。
この論理式の数はいくつでもかまいません
=OR(A1=B1,B1>C1,C1<D1)
// 「A1セルとB1セルが等しい」もしくは「B1がC1より大きい」
もしくは「C1がD1より小さい」が成立したらTRUE、全て成立しないならFALSEが返される
A | B | C | D | E | |
---|---|---|---|---|---|
1 | 40 | 50 | 60 | 70 | |
2 | |||||
3 |
この場合ならTRUEが返ってきます
AND
=AND(論理式1,論理式2,論理式3,〜)
ANDはORと少し違い、論理式が全て真ならTRUE、一つでも偽ならFALSEが返します。
=AND(A1=B1,B1>C1,C1<D1)
// 「A1セルとB1セルが等しい」と「B1がC1より大きい」と
「C1がD1より小さい」が成立したらTRUE、一つでも成立しないならFALSEが返される
A | B | C | D | E | |
---|---|---|---|---|---|
1 | 40 | 50 | 60 | 70 | |
2 | |||||
3 |
この場合ならFALSEが返ってきます
ROW
=ROW(範囲)
ROWは範囲で指定したセルの行番号を返します。
=ROW(A1)
A | B | C | D | E | |
---|---|---|---|---|---|
1 | |||||
2 | |||||
3 |
この場合ならA1の行番号「 1 」が返ってきます
※引数を指定しなかった場合は式を入力したセルの行番号が返ってきます。
COLUMN
=COLUMN(範囲)
COLUMNは範囲で指定したセルの列番号を返します。
=ROW(A1)
A | B | C | D | E | |
---|---|---|---|---|---|
1 | |||||
2 | |||||
3 |
この場合ならA1の列番号「A」が返ってきます
※引数を指定しなかった場合は式を入力したセルの列番号が返ってきます。
COUNT
=COUNT(範囲)
COUNTは範囲で指定したセルで数値が入力されたセルの数を返します。
=COUNT(A1:E3)
A | B | C | D | E | ||
---|---|---|---|---|---|---|
1 | hoge | 2 | fuga | 1 | 4 | |
2 | foo | 4 | 3 | |||
3 | hogehoge | 2 | 4 | 0 |
この場合なら「 7 」が返ってきます。
COUNTA
=COUNTA(範囲)
COUNTAは範囲で指定したセルで何かしら値が入力されたセルの数を返します。
COUNTと違うのは文字列でも日付でもなんでもカウントする点です。
空白セルのみカウントしません。
=COUNTA(A1:E3)
A | B | C | D | E | |
---|---|---|---|---|---|
1 | hoge | fuga | 1 | 4 | |
2 | foo | 2015/4/1 | 4 | 3 | |
3 | hogehoge | 4 | 0 | %% |
この場合なら「 12 」が返ってきます。
COUNTIF
=COUNTIF(範囲,検索条件)
COUNTIFは範囲で指定したセルで検索条件に一致するセルの数を返します。
=COUNTIF(A1:E3,"◯")
A | B | C | D | E | |
---|---|---|---|---|---|
1 | ◯ | × | × | ◯ | |
2 | × | ◯ | |||
3 | ◯ | ◯ |
この場合なら「 5 」が返ってきます。
SUM
=SUM(範囲)
SUMは範囲で指定したセルの合計値を返します。
=SUM(A1:E3)
A | B | C | D | E | |
---|---|---|---|---|---|
1 | 1 | 0 | ◯ | ||
2 | 2 | 5 | 4 | 20 | 9 |
3 | 11 | % | 15 |
この場合なら「 67 」が返ってきます。
SUMIF
=SUMIF(範囲, 条件, 合計範囲)
SUMIFは範囲で指定したセルのなかで条件に合うもののみを合計してその値を返します
=SUMIF(A1:A5,"食費",B1:B5)
// A1〜A5のなかで「食費」だけの合計を出す
A | B | C | |
---|---|---|---|
1 | 食費 | 500 | |
2 | 交通費 | 300 | |
3 | 食費 | 350 | |
4 | 交通費 | 300 | |
5 | 食費 | 450 |
この場合なら「 1300 」が返ってきます。
一つ気をつけてもらいたいのが、 SUMIFでは条件を一つしか指定できない ということです。
もし 複数の条件を指定したい場合は、DSUM関数 を使ってください。
AVERAGE
=AVERAGE(値1, 値2, 値3,…)
AVERAGEは引数で指定した値の(値1・値2・値3…)平均値を返す関数です。
=AVERAGE(範囲)
// <範囲>例えば「A1:A5」のような範囲指定
上記のように範囲で指定することも可能です。
=AVERAGE(B1:B5)
// B1〜B5の平均値を返す
A | B | C | |
---|---|---|---|
1 | Aくん | 90 点 | |
2 | Bくん | 30 点 | |
3 | Cさん | 80 点 | |
4 | Dくん | 100 点 | |
5 | Eさん | 0 点 |
この場合なら「 60 」が返ってきます。
RAND
=RAND()
RANDは0以上1未満の間で乱数を発生させる関数 です。
乱数なので、 再計算(F9キー)をするたびに出力する値が変わります。
=RAND()*(b-a)+a
上記のように書くことで、a以上とb未満で乱数を発生させることも可能です。
DATE
=DATE(年, 月, 日)
DATEは引数として入力した年月日から、その年月日のシリアル値を返す関数です。
シリアル値とはなに?と思ってしまうと思いますが、以下のように考えてもらって結構です。
WindowsでExcelを使うとき:1900年1月1日を基準日 として、そこから経過している日数。
MacでExcelを使うとき:1904年1月1日を基準日 として、そこから経過している日数。
難しいかと思いますので、以下の操作をしてみてください。
A1セルに適当な整数を入力(例:10000)
A1セルを選択して、コンテキストメニュー「 セルの書式設定 」
「表示形式」のタブで、「分類」を「日付」に変更
どうでしょうか?
Windowsの人は「 1927年5月18日 」が表示されたと思います。
Macの人は「 1931年5月19日 」が表示されたと思います。
WEEKDAY
=WEEKDAY(日付, 戻り値の種類)
WEEKDAYは指定した日付が何曜日かを数字で返す関数です。
=WEEKDAY(A1, 1)
// A1セルの日付の曜日を返す
A | B | C | |
---|---|---|---|
1 | 2015/1/1 | ||
2 | |||
3 |
この場合なら「 5 」が返ってきます。
ところで「戻り値の種類」とはなに?と思っているかもしれません。
以下のように決まっているので、必要に応じて使い分けてください。
戻り値の種類は「1〜3」の整数を指定します。
1を入れた場合
「1」を日曜日、「7」を土曜日として値を返します。
2を入れた場合
「1」を月曜日、「7」を日曜日として値を返します。
3を入れた場合
「0」を月曜日、「6」を日曜日として値を返します。
TODAY
=TODAY()
TODAYは今日の日付を返す関数です。
使い方も上記そのままです。
INDEX
=INDEX(範囲,行番号,列番号)
INDEXは指定した範囲のなかで指定した行番号、列番号の位置にあるセルの値を返します。
=INDEX(B2:D4, 2, 3)
// B2〜D4の範囲で2行目3列目のセルの値を返す
A | B | C | D | |
---|---|---|---|---|
1 | ||||
2 | A | 3個 | 2万円 | |
3 | B | 4個 | 5万円 | |
4 | C | 8個 | 10万円 |
この場合なら「 5万円 」が返ってきます。
INDIRECT
=INDIRECT(参照文字列,参照形式)
INDIRECTは文字列で指定されるセル参照を返す関数です。
参照形式は「R1C1形式」という言葉にピンとこなかったら、
省略するか、「 TRUE 」と記載しておけば大丈夫です。
=INDIRECT(B2, TRUE)
// B2セルの文字列をA1形式で参照する
A | B | C | |
---|---|---|---|
1 | え | ||
2 | あ | 3個 | |
3 | う | 4個 |
この場合なら「 あ 」が返ってきます。
ADDRESS
=ADDRESS(行番号,列番号,参照の型,参照形式,シート名)
ADDRESS関数は指定した行番号と列番号に対応するセルの参照を文字列で返す関数です。
「参照の型」は省略可能ですが、入力する場合は以下通りです。(1〜4のどれかを入力します)
- 1 : 絶対参照
- 2 : 行は絶対参照となり、列は相対参照
- 3 : 行は相対参照となり、列は絶対参照
- 4 : 相対参照
「参照形式」はINDIRECTと同様、「R1C1形式」という言葉にピンとこなかったら、
省略するか、「 TRUE 」と記載しておけば大丈夫です。
「シート名」は省略可能です。
もし他のシートから参照させたいときは、シート名をダブルクォーテーションで囲ってください。
(例:”シート名”)
またADDRESSは単独で使うことはあまりなく、
INDIRECT関数など組み合わせて使うことが多いです。
=INDIRECT(ADDRESS(ROW()-1,COLUMN()-1))
// この式を入力したセルから見て-1行、-1列の箇所にあるセルの文字列を参照する。
MAX
=MAX(値1, 値2, 値3,…)
MAXは引数で指定した値の中で最大値を返す関数です。
値は日付等、数値ではないものでも可能です。
=MAX(範囲)
// <範囲>例えば「A1:A5」のような範囲指定
上記のように範囲で指定することも可能です。
=MAX(A1:A5)
// A1〜A5で最大値のセルの値を返す
A | B | C | |
---|---|---|---|
1 | 2015/1/1 | ||
2 | 2015/2/1 | ||
3 | 2015/3/1 | ||
4 | 2015/4/1 | ||
5 | 2015/5/1 |
この場合なら「 2015/5/1 」が返ってきます。
MIN
=MIN(値1, 値2, 値3,…)
MINはMAXの逆で引数で指定した値の中で最小値を返す関数です。
値は日付等、数値ではないものでも可能です。
=MIN(範囲)
// <範囲>例えば「A1:A5」のような範囲指定
上記のように範囲で指定することも可能です。
=MIN(A1:A5)
// A1〜A5で最小値のセルの値を返す
A | B | C | |
---|---|---|---|
1 | 2015/1/1 | ||
2 | 2015/2/1 | ||
3 | 2015/3/1 | ||
4 | 2015/4/1 | ||
5 | 2015/5/1 |
この場合なら「 2015/1/1 」が返ってきます。
VLOOKUP
=VLOOKUP(検索値, 範囲, 列番号, 検索の型)
VLOOKUPは指定した範囲の左端の列の中で、検索値と合致するセルを持つ行、
かつ指定した範囲の中で指定した列番号のセルにある値を返す関数です。
検索の型は、
TRUE:近似値
FALSE:完全一致
となってますので、状況によって使い分けてください。
=VLOOKUP(A1, A2:C5, 2, FALSE)
// A1セルの値を検索値として、A2:A5で検索値に合致するセルはA5セル。
// A5を1列目としたとき、指定した2列目にあるセルの値を返す。
A | B | C | |
---|---|---|---|
1 | hoge | ||
2 | fuga | 200円 | 1回 |
3 | piyo | 300円 | 2回 |
4 | foobar | 400円 | 3回 |
5 | hoge | 500円 | 4回 |
この場合なら「 500円 」が返ってきます。
HLOOKUP
=HLOOKUP(検索値, 範囲, 行番号, 検索の型)
HLOOKUPはVLOOKUPと似ており、列を基準に見ていたVLOOKUPの逆で、
行を基準にします。そのため引数に行番号を入力します。
検索の型は、
TRUE:近似値
FALSE:完全一致
となってますので、状況によって使い分けてください。
=HLOOKUP(A1, A2:D4, 2, FALSE)
// A1セルの値を検索値として、A2:D4で検索値に合致するセルはC4セル。
// C4を1行目としたとき、指定した2列目にあるセルの値を返す。
A | B | C | D | |
---|---|---|---|---|
1 | hoge | |||
2 | fuga | piyo | hoge | foobar |
3 | 100円 | 200円 | 300円 | 400円 |
4 | 1回 | 2回 | 3回 | 4回 |
この場合なら「 300円 」が返ってきます。