"GRIMPEUR"

…グランペール…

【Excel】業務で使える!Excelの関数・シチュエーションからの逆引き辞典

Excel、使っていますか?

筆者は文系卒で、学生時代ほぼ全くといっていいほどExcelを使ったことがなかったため、仕事を始めた当初は四則演算程度しかできませんでした。

最早笑い話の域で、セルのコピーのやり方さえ知らなかったレベルでしたが、その後必要に迫られ、基礎的な関数はひととおり使えるようになりました。

Excelは、使いこなすことで仕事を劇的に効率化できるツールですが、使いこなせないと仕事を恐ろしく煩雑にするツールでもあります。

Excelを上手に使いこなすことは、仕事を早く終え、日常に費やせる時間、筆者のようなサイクリストにとってはすなわち練習できる時間を増やすことに繋がると思っています。

そんな筆者の考えを踏まえ、「関数」の逆引き辞典を作ってみました。

「こんな関数みんな知ってるよ!」という方も多いかもしれませんが、誰かの役に立つことを祈念し、ここに公開します。

 

【逆引き】目的から探すExcel関数インデックス

▼ 計算・集計の基本

▼ 条件分岐・複雑な集計

▼ 検索・データ抽出(VLOOKUPなど)

▼ 文字列の操作

▼ 日付・時刻の計算

▼ その他・便利機能


1. 計算・集計の基本

数値を合計したい SUM
指定した範囲の数値をすべて足します。
=SUM(範囲)
平均値を求めたい AVERAGE
指定した範囲の平均値を計算します。空白のセルは無視されます。
=AVERAGE(範囲)
掛け算の結果を出したい PRODUCT
指定した範囲の数値をすべて掛け合わせます。単価×数量の計算などに。
=PRODUCT(数値1, 数値2...)
データの個数を数えたい COUNT / COUNTA
COUNTは「数値」が入っているセルを、COUNTAは「空白以外」のセル(文字も含む)を数えます。
※基本的にCOUNTIFS関数でいいよな…と思っています。
 
=COUNTA(範囲)
最大値・最小値を知りたい MAX / MIN
範囲内の数値の中から、最も大きい値(MAX)、または最も小さい値(MIN)を見つけます。
=MAX(範囲)
四捨五入・切り捨て・切り上げしたい ROUND系
数値を丸めます。ROUND(四捨五入)、ROUNDDOWN(切り捨て)、ROUNDUP(切り上げ)を使い分けます。
用例:「桁数」に「-3」を指定すると、「1,000の位未満端数処理」となります(「○千円」表記の際などに使用。)。
=ROUND(数値, 桁数)
数値の絶対値を知りたい ABS
マイナスの数値からマイナスを取り除き、プラスの数値にします。
=ABS(数値)
割り算の余りを求めたい MOD
割り算をした時の「余り」だけを求めます。
用例:体裁を変更できない表から、◯行/列ごとに値を取り出したい、というようなケースにおいて、お世話になります。
 
=MOD(数値, 除数)
小数点以下を切り捨てて整数にしたい INT
小数点以下を切り捨てて、もっとも近い整数にします。
=INT(数値)

2. 条件分岐・複雑な集計

条件によって結果を変えたい IF
「もし~ならA、そうでなければB」という条件分岐を作ります。必須レベルの関数です。
=IF(条件式, 真の場合, 偽の場合)
条件に合うものだけ合計したい SUMIFS
「A列が〇〇で、かつB列が××の時」のように、複数の条件を指定して合計します。

用例:A列に産地、B列に果樹名、C列に価格が入っている表から、「A列が『宮城』、B列が『りんご』の価格の和」を集計したい際は、「=sumifs(C:C,A:A,"宮城",B:B,"りんご")」と設定。
=SUMIFS(合計範囲, 条件範囲1, 条件1, ...)
条件に合う件数を数えたい・重複確認を行いたいCOUNTIFS
複数の条件に一致するデータの個数を数えます。
 
用例:A列に産地、B列に果樹名が入っている表から、「A列が『宮城』、B列が『りんご』の両方に該当するものの数」を集計する場合は、「=countifs(A:A,"宮城",B:B,"りんご")」と設定。

用例その2:単純な項目ごとの数え上げのほか、「この表に重複はあるか?」を判定する際などにも使えます(重複判定を行いたい列の右の列に、「条件範囲」を重複判定を行いたい列とし、条件をすぐ左のセルとしてこの関数を設定し、一番下の行までコピー。フィルタをかけて、2以上の値を返す行があれば、その行の値は重複。)。

用例その3:「重複なく取り出す」関数であるUNIQUE関数と組み合わせると便利です(M365で使用可能。)。
=COUNTIFS(条件範囲1, 条件1, ...)
複数の条件を組み合わせたい AND / OR / NOT
IF関数の条件部分などで使います。「AかつB (AND)」「AまたはB (OR)」を作ります。
 
用例:「もしセルA1が『りんご』かつセルB1が『宮城』であれば、『購入』、そうでなければ『買わない』」を数式で表すと、「=if(and(A1="りんご",B1="宮城"),"購入","買わない")」となります。
=AND(条件1, 条件2)
たくさんの条件で分岐させたい IFS
IF関数を何度も入れ子にしなくても、複数の条件を順番に判定できます。(M365で使用可能)
=IFS(条件1, 値1, 条件2, 値2, ...)
条件付きで最大・最小を出したい MAXIFS / MINIFS
条件に一致するデータの中での最大値や最小値を求めます。
=MAXIFS(最大範囲, 条件範囲1, 条件1)
エラーや非表示行を無視して集計したい AGGREGATE
SUM関数などの強化版。エラー値を無視したり、非表示行を除外して計算できます。
=AGGREGATE(集計方法, オプション, 範囲)
フィルター結果だけを集計したい SUBTOTAL
オートフィルターで絞り込んだ結果だけを対象に合計や平均を出します。
=SUBTOTAL(集計方法, 範囲)
エラー表示(#N/A)を隠したい IFERROR
数式がエラーになった場合に、空白や「なし」などの指定した値を表示させます。

用例:「VLOOKUP関数で値を引いたうえで集計したい」ようなシチュエーションにおいて、VLOOKUP関数の引数がないことによりエラーを返すケースが集計の邪魔になります。このようなケースにおいて、IFERROR関数を使い、エラー時の値を「0」に設定すると、円滑に集計可能です。
=IFERROR(数式, エラー時の値)

3. 検索・データ抽出(VLOOKUPなど)

別の表からデータを探したい VLOOKUP
事務職の必須スキル。指定したキーを元に、別表から対応するデータを取り出します。
用例:列Bに果物名、列Cに値段が入っている表から、「りんご」の値段を取り出したい場合は、「=vlookup("りんご",B:C,2,0)」と設定(列Bで検索値「りんご」を探し、列Bからみて2列目の列Cの値を、検索の型「完全一致」で取り出す。)。
※「検索の型」は、基本的には「0」又は「false」を設定すればOKです。
=VLOOKUP(検索値, 範囲, 列番号, 検索の型)
自由自在にデータを探したい(新) XLOOKUP
VLOOKUPの進化版。左側の列も検索でき、エラー処理も内蔵。使える環境(M365であれば使用可能です)ならこちら推奨。
=XLOOKUP(検索値, 検索範囲, 戻り範囲)
データが何番目にあるか探したい MATCH
検索値が範囲内の「何番目」にあるかを数字で返します。INDEX関数(直下)と組み合わせてよく使われます。用例はINDEX関数の項目を参照。
=MATCH(検索値, 検索範囲, [照合の型])
行と列を指定して値を取り出したい INDEX
範囲内の指定した「行」と「列」にある値を返します。MATCH関数と組み合わせるとVLOOKUP関数より柔軟な検索が可能です。
用例:行1が都道府県名、列Aが果樹名の表から、「宮城県」の「りんご」の値を取り出したい場合は、「=index(見出しを含む表全体,match("りんご",A:A,0),match("宮城県",1:1,0))」
※VLOOKUP関数が検索列を検索範囲のいちばん左の列としなければならないのに対し、INDEX関数+MATCH関数の組み合わせはこの制約を外れることができるため、柔軟に値を取り出せます。
 
=INDEX(範囲, 行番号, 列番号)
重複しないリストを作りたい UNIQUE
リストから重複を取り除いた一覧を瞬時に作成します。(M365で使用可能)
=UNIQUE(範囲)
条件に合うデータだけ抽出したい FILTER
条件に一致するデータをすべて抜き出して表示します。(M365で使用可能)
=FILTER(配列, 含む)
順位を付けたい RANK.EQ
数値の大きさに基づいて順位(ランキング)を付けます。
=RANK.EQ(数値, 範囲)
文字列でセル番地を指定したい INDIRECT
「A1」などの文字を使って、そのセルを参照します。別シートの参照を動的に変える時などに便利。
=INDIRECT(参照文字列)
基準からずらしたセルを参照したい OFFSET
基準となるセルから、指定した行数・列数だけ移動した位置にあるセルを参照します。
=OFFSET(基準, 行数, 列数)

4. 文字列の操作

文字を繋げたい CONCAT
複数のセルの文字を単純に結合します。
※この関数の外、「&」でも繋げると覚えておくと良いです。
用例:VLOOKUP関数等でのデータ取り出し時に、間違いなく取り出したい値のみを取り出せるようにするための加工などに使用できます。
例えば、列Aに産地、列Bに果実名が入っている表から「○○産の(果実名)」の値を取り出したい場合、予め列Aと列Bを文字結合しておき、VLOOKUP関数等の検索値をその文字結合した値にすると、円滑な取り出しが可能です。
=CONCAT(テキスト1, テキスト2...)
区切り文字を入れて繋げたい TEXTJOIN
カンマやスペースなどの区切り文字を挟みながら、複数のセルを結合します。
=TEXTJOIN(区切り文字, 空のセルを無視, テキスト1...)
文字の一部を取り出したい LEFT / RIGHT / MID
左端(LEFT)、右端(RIGHT)、または指定位置(MID)から文字を取り出します。

用例:住所が「宮城県◯◯…」の一覧から、「◯◯…」だけを取り出したいときは、「=mid(住所の入ったセル,4,len(住所の入ったセル)-3)」で値を取り出します
(→住所の入ったセルの、4文字目から、「住所の入ったセルの文字数-3字」取り出し)。
このほか、FIND関数なども組み合わせると、より柔軟に値の取り出しが可能です。実務上では、COUNTIFS関数やSUMIFS関数、VLOOKUP関数での値の処理に先立ってデータを整形するために使うことが多いです。
=LEFT(文字列, 文字数)
文字数を数えたい LEN
セルに入っている文字の数をカウントします。
※用例はLEFT、RIGHT、MID関数の項目を参照。
=LEN(文字列)
特定の文字の位置を探したい FIND
指定した文字が、何文字目にあるかを調べます。
=FIND(検索文字列, 対象)
文字を置き換えたい SUBSTITUTE
特定の文字を別の文字に置換します。「-(ハイフン)」の削除などによく使います。
=SUBSTITUTE(文字列, 検索文字, 置換文字)
余計なスペースを削除したい TRIM
単語間のスペースは1つだけ残し、先頭や末尾の余分なスペースをすべて削除します。
=TRIM(文字列)
大文字・小文字を統一したい UPPER / LOWER / PROPER
すべて大文字(UPPER)、すべて小文字(LOWER)、先頭だけ大文字(PROPER)に変換します。
=UPPER(文字列)
数値の表示形式を変えて文字にしたい TEXT
日付や数値を、「yyyy年mm月」や「¥#,##0」などの書式を適用した文字列に変換します。

用例:Excelで資料を作成した際、日付を和暦表記したいときなどに。文字結合(&)と併せて、「=text(today(),"ggge年m月d日")&char(10)&"部署名"」等と使用。
※TODAY関数はその日の日付を返すもの。char(10)は改行。
=TEXT(値, 表示形式)
文字列の数字を数値に戻したい VALUE
文字列として保存されている数字を、計算可能な数値データに変換します。

用例:全角で金額や面積が入力されている(ことがないのが一番ですが、ままあるので)場合に、統計としてそのデータを扱うときには、別列を用意してこの関数を一旦挟めます。
=VALUE(文字列)

5. 日付・時刻の計算

今日の日付を入力したい TODAY
ファイルを開くたびに更新される、今日の日付を表示します。

用例:text関数等と組み合わせて。
=TODAY()
現在の日時を表示したい NOW
現在の日付と時刻を表示します。
=NOW()
日付から年・月・日を取り出したい YEAR / MONTH / DAY
日付データから「2024」や「12」などの数字を取り出します。

用例:text関数等と組み合わせて。
=YEAR(日付シリアル値)
○ヶ月後の日付を計算したい EDATE
指定した月数だけ前、または後の日付を計算します。
=EDATE(開始日, 月数)
月末の日付を求めたい EOMONTH
指定した月数後の「月末日」を表示します。請求書の支払期限などによく使います。
=EOMONTH(開始日, 月数)
期間(年数や月数)を計算したい DATEDIF
2つの日付の間の年数、月数、日数を計算します。勤続年数や年齢計算に必須。
=DATEDIF(開始日, 終了日, 単位)
土日を除いた○日後を計算したい WORKDAY
土日や指定した祝日を除いた、営業日ベースでの期日を計算します。
=WORKDAY(開始日, 日数, [祝日])
期間内の営業日数を数えたい NETWORKDAYS
開始日から終了日までの稼働日数(土日祝除く)を計算します。
=NETWORKDAYS(開始日, 終了日, [祝日])
曜日を判定したい WEEKDAY
日付に対応する曜日を数値(1=日曜、2=月曜...)で返します。
=WEEKDAY(シリアル値)
時・分・秒から時刻を作りたい TIME
別々のセルにある時・分・秒の数値をまとめて時刻データにします。
=TIME(時, 分, 秒)

6. その他・便利機能

データを並べ替えたい SORT
範囲内のデータを昇順や降順に並べ替えて表示します。(M365で使用可能)
=SORT(範囲)
行と列を入れ替えたい TRANSPOSE
縦向きのデータを横向きに、横向きを縦向きに入れ替えます。
=TRANSPOSE(配列)
列番号・行番号を知りたい COLUMN / ROW
セルの列番号、または行番号を返します。連番を振る時などに応用できます。

用例:INDEX関数と組み合わせて、「◯行/列おきにデータを取り出す」ような場合に使用できます。MOD関数も組み合わせると、より柔軟にデータの取り出しが可能。
例えば「=index(A1:A12,row()*2,1)」をセルB1に入れてB6までコピーすると、セルA2の値、A4の値、A6の値…と、1行飛ばしに値を拾ってきます。
=ROW()
リンクボタンを作りたい HYPERLINK
クリックすると指定したWEBページやファイルを開くリンクを作成します。
=HYPERLINK(リンク先, 表示名)
数式内で変数を使いたい LET
数式内で計算結果に名前を付けて再利用できます。複雑な数式が読みやすくなり、計算速度も向上します。
=LET(名前1, 値1, 計算式)
TOP

©2020-2026 GRIMPEUR All rights reserved.