エクセル関数一覧: 動くシートで覚えるExcel関数
エクセル関数を、実際に編集できるシートで解説します。VLOOKUP、XLOOKUP、IF、SUMIF、COUNTIF、日付、文字列、動的配列。数値や数式を変えると、ブラウザの中でシートが再計算されます。
Excel のガイド付き学習を始める数式の基本
- SUM数値の列の下に=SUM(B2:B6)と入力すれば合計でき、Alt+=を押せばオートSUMが数式を書いてくれます。行の合計、離れたセルや別シートの合計を、編集できるシートで試せます。
- 引き算ExcelにSUBTRACT関数はありません。=B2-C2と入力すれば、あるセルから別のセルを引けます。列全体、複数のセル、パーセント、日付の引き算を、編集できるシートで試せます。
- 掛け算と割り算Excelの掛け算はアスタリスクで=B2*C2、割り算はスラッシュで=B2/C2です。列に同じ数を掛ける方法、PRODUCT関数、#DIV/0!エラーの防ぎ方を、編集できるシートで試せます。
- AVERAGE=AVERAGE(B2:B7)はB2:B7の数値を合計し、その個数で割ります。空白と0で結果がどう変わるか、0を除いて平均する方法、上位3つの平均の出し方を学びます。
- COUNTとCOUNTA=COUNT(B2:B8)は数値の入ったセルを、=COUNTA(B2:B8)は空でないすべてのセルを、=COUNTBLANK(B2:B8)は空白セルを数えます。3つの違いを編集できるシートで確かめられます。
- 絶対参照$E$1のような絶対参照は数式をコピーしても変わらず、E1のような相対参照は一緒に動きます。F4キーでドル記号を付けられます。違いを編集できるシートで確かめましょう。
- パーセントExcelのパーセントの数式は=部分/全体で、たとえば=B2/C2とし、セルをパーセント表示にします。合計に対する割合、数値の何パーセント、パーセントの上乗せや割引を、動くシートで試せます。
- 増減率Excelの増減率の数式は=(新しい値-古い値)/古い値で、たとえば=(C2-B2)/B2をパーセント表示にします。マイナスの結果は減少です。前月比、0からの変化、パーセントポイントを動くシートで解説します。
論理関数
- IF=IF(B2>=50,"Pass","Fail")はB2が50以上かどうかを調べ、以上ならPass、そうでなければFailを返します。IF関数の構文、文字列の条件、計算を返すIF、空白セルの判定、IFが間違った結果を返す原因を学びます。
- IFの入れ子=IF(B2>=90,"A",IF(B2>=80,"B",IF(B2>=70,"C","F")))はIFの中に別のIFを入れて、3つ以上の結果から選びます。入れ子のIFの読み方、条件の順番が大切な理由、IFSや検索用の表のほうが向いている場面を学びます。
- IFS=IFS(B2>=90,"A",B2>=80,"B",B2>=70,"C",TRUE,"F")は条件を順番に調べ、最初にTRUEになった条件と組の値を返します。IFS関数の構文、TRUEによる既定値、IFSが#N/Aを返す理由、入れ子のIFとの比較を学びます。
- AND、OR、NOT=AND(B2>=10,B2<=20)はすべての条件が真のときだけTRUEを返し、=OR(B2="North",B2="South")は少なくとも1つが真ならTRUEを返します。AND、OR、NOT、XORの単独での使い方とIFとの組み合わせ、2つの値の間かどうかの判定、配列数式でのANDとORの書き方を学びます。
- IFERROR=IFERROR(B2/C2,0)はB2/C2を返し、割り算がエラーになったら0を返します。VLOOKUPと組み合わせる方法、エラーの代わりに空白を返す方法、検索ではIFNAのほうが向いている理由、すべてのエラーを隠すと本当の間違いまで隠れる理由を学びます。
- SWITCH=SWITCH(B2,"N","North","S","South","Unknown")はB2を各値と順に比べ、最初に完全に一致した値と組の結果を返し、何も一致しなければUnknownを返します。SWITCH関数の構文、既定値、SWITCH(TRUE,...)の使い方、IFSや入れ子のIFを使うべき場面を学びます。
- ISBLANK、ISNUMBER=ISBLANK(B2)はB2が空のときTRUEを、=ISNUMBER(B2)はB2に数値が入っているときTRUEを返します。ISBLANK、ISNUMBER、ISTEXT、ISERROR、ISNA、ISEVEN、ISODD、""を返す数式が空白にならない理由、ISNUMBER(SEARCH())で文字列を含むか調べる方法を学びます。
検索
- VLOOKUP=VLOOKUP(F2,A2:D6,3,FALSE)はA2:D6の最初の列でF2を探し、同じ行の3列目の値を返します。完全一致と近似一致、#N/Aの直し方、別シートからの検索、2つの条件での検索を学びます。
- XLOOKUP=XLOOKUP(F2,A2:A6,C2:C6)はA2:A6でF2を探し、C2:C6の同じ行の値を返します。見つからないときの文字列、複数列をまとめて返す方法、左側の検索、最後の一致、近似一致、ワイルドカードを学びます。
- INDEX MATCH=INDEX(C2:C6,MATCH(F2,A2:A6,0))はA列でF2の行を探し、C列のその行の値を返します。左側の検索も、縦横の2方向の検索もでき、どのバージョンのExcelでも使えます。
- INDEX=INDEX(A2:C6,3,2)はA2:C6の3行目、2列目の値を返します。リストのn番目の項目、行全体や列全体、MATCHが見つけた位置の値を取り出すのに使います。
- MATCH=MATCH(E2,A2:A6,0)はA2:A6の中でのE2の位置を返します。4番目の項目なら4です。照合の種類0、1、-1、ワイルドカード、大文字と小文字を区別した一致、値がリストにあるかどうかの判定を学びます。
- HLOOKUP=HLOOKUP("Mar",A1:E3,2,FALSE)はA1:E3の最初の行でMarを探し、同じ列の2行目の値を返します。完全一致と近似一致、XLOOKUPのほうが向いている場面を学びます。
- XMATCH=XMATCH(E2,A2:A6)はA2:A6の中でのE2の位置を返し、既定で完全一致になります。並べ替えなしで次に小さい値や大きい値を探したり、下から検索したり、ワイルドカードを使ったりもできます。
- 複数条件での検索=XLOOKUP(1,(A2:A7=E2)*(B2:B7=F2),C2:C7)は、A列がE2に、B列がF2に一致する行の値を返します。INDEX MATCH版、VLOOKUP用の作業列、すべての一致を返すFILTERも学びます。
- VLOOKUPとXLOOKUPの違いXLOOKUPはVLOOKUPのできることをすべてこなし、既定で完全一致、列番号なし、左側の検索、見つからない場合の引数があります。ファイルをExcel 2019以前で開く必要があるときは、今でもVLOOKUPを使います。
- INDIRECT=INDIRECT("C"&E2)は、C列とE2の行番号から文字列として組み立てたアドレスのセルを読みます。セルに書いたシート名でシートを選ぶ、数値から範囲を作る、連動するプルダウンを作るときに使います。
- OFFSET=OFFSET(A1,3,2)はA1から3行下、2列右のセルを返します。高さを指定すると範囲全体を返すので、最後のN行を合計したり、移動平均を作ったりできます。
- CHOOSE=CHOOSE(B2,"Low","Medium","High")は、B2が1ならLow、2ならMedium、3ならHighを返します。数値を名前に対応させる、合計する範囲を選ぶ、入れ子のIFを置き換える、CHOOSECOLSで列を選ぶ方法を学びます。
条件付きの集計
- COUNTIF=COUNTIF(B2:B7,"North")は、B2:B7のうちNorthが入っているセルを数えます。文字列、数値、ワイルドカード、空白、日付で数える方法と重複の見つけ方を、編集できるシートで学びます。
- COUNTIFS=COUNTIFS(A2:A7,"North",C2:C7,">50")は、地域がNorthで売上が50より大きい行を数えます。2つの数値や日付の間、OR条件、空白以外で数える方法を、動くシートで学びます。
- SUMIF=SUMIF(A2:A7,"North",C2:C7)は、A列がNorthの行についてC2:C7の値を合計します。以上・以下、文字列を含む、日付、別シートを条件にした合計を、編集できるシートで学びます。
- SUMIFS=SUMIFS(C2:C7,A2:A7,"North",B2:B7,"Apple")は、地域がNorthで商品がAppleの行についてC2:C7の売上を合計します。期間指定、OR条件、省略できる条件を、動くシートで学びます。
- AVERAGEIF=AVERAGEIF(A2:A7,"North",C2:C7)は、A列がNorthの行についてC2:C7の値の平均を出します。複数条件のAVERAGEIFS、0を除いた平均、#DIV/0!の直し方、MAXIFSとMINIFSも学びます。
- 文字列のセルを数える=COUNTIF(A2:A8,"*")は、A2:A8のうち文字列が入ったセルを数え、数値、日付、空のセルは飛ばします。特定の単語を含むセルを数える方法と、セルが文字を含むときに値を返す方法も学びます。
- COUNTIF 空白以外=COUNTIF(B2:B8,"<>")は、B2:B8のうち空白でないセルを数え、COUNTAと同じ結果になります。COUNTIFSでほかの条件を加える方法と、空に見えるだけのセルの扱い方を学びます。
- 重複を除いて数える=COUNTA(UNIQUE(A2:A9))は、A2:A9に何種類の値があるかを数えます。古いExcelでは=SUMPRODUCT(1/COUNTIF(A2:A9,A2:A9))を使います。1回だけ出てくる値、条件付き、空白を除く数え方も学びます。
- SUMPRODUCT=SUMPRODUCT(B2:B6,C2:C6)は数量にそれぞれの価格を掛けて、その結果を合計します。(A2:A7="North")*C2:C7のような条件を使えば、月別、列どうしの比較、OR条件など、SUMIFSにできない合計や件数も出せます。
- SUBTOTAL=SUBTOTAL(9,C2:C8)はSUMと同じようにC2:C8を足しますが、範囲内のほかのSUBTOTALの行とフィルターで非表示になった行は無視します。集計方法の9と109、表示されている行の数え方、エラーを飛ばすAGGREGATEも学びます。
- 加重平均=SUMPRODUCT(B2:B5,C2:C5)/SUM(C2:C5)は加重平均です。各値にその重みを掛け、積を足し、合計を重みの合計で割ります。成績、単位数で重み付けしたGPA、数量で重み付けした価格を例に学びます。
文字列
- 文字列の結合`=A2&" "&B2`は、A2とB2の文字列を間にスペースを入れてつなぎます。CONCATENATEとCONCATも同じことができ、数値や日付をつなぐときはTEXTで読みやすい形を保ちます。
- TEXTJOIN`=TEXTJOIN(", ",TRUE,A2:A6)`は、A2:A6のすべてのセルを、カンマとスペースで区切って1つの文字列にし、空のセルは飛ばします。FILTERと組み合わせると、条件に合う行だけをつなげます。
- 文字列の分割`=TEXTBEFORE(A2," ")`は`Ana Silva`から名を、`=TEXTAFTER(A2," ")`は姓を返します。TEXTSPLITは1つのセルを一度に複数の列に分け、古いExcelではLEFT、MID、FINDで同じことができます。
- LEFT, RIGHT, MID`=LEFT(A2,3)`はA2の先頭3文字を、`=RIGHT(A2,2)`は末尾2文字を、`=MID(A2,5,4)`は5文字目から4文字を返します。長さが変わるときはFINDやLENと組み合わせます。
- FIND, SEARCH`=SEARCH("apple",A2)`は、A2で`apple`が始まる位置を、大文字と小文字を区別せずに返します。FINDも同じですが、大文字と小文字を区別します。文字列がないとどちらも#VALUE!を返し、ISNUMBERと組み合わせると「セルに含むか」の判定になります。
- SUBSTITUTE, REPLACE`=SUBSTITUTE(A2,"-","")`はA2のハイフンをすべて取り除きます。SUBSTITUTEは文字列の内容で探して置き換えます。REPLACEは位置で置き換え、`=REPLACE(A2,1,3,"XYZ")`は先頭の3文字を上書きします。
- TRIM`=TRIM(A2)`はA2の文字列の前後のスペースを取り除き、単語の間に続くスペースを1つにします。SUBSTITUTEを使えば、すべてのスペースや、TRIMでは消えないノーブレークスペースも取り除けます。
- UPPER, LOWER, PROPER`=UPPER(A2)`はA2の英字をすべて大文字に、`=LOWER(A2)`はすべて小文字にし、`=PROPER(A2)`は各単語の先頭の文字を大文字にします。文字列の最初の1文字だけなら、UPPER、LEFT、MIDを組み合わせます。
- LEN`=LEN(A2)`は、スペースや記号も含めたA2の文字数を返します。TRIMやSUBSTITUTEと組み合わせると単語数も数えられ、SUMと組み合わせると範囲全体の文字数を数えられます。
- TEXT`=TEXT(A2,"mmm d, yyyy")`はA2の日付を`Mar 15, 2026`のような文字列に、`=TEXT(B2,"$#,##0.00")`は1250.5を`$1,250.50`にします。結果は文字列なので、ラベルに使い、その後の計算には使いません。
- 文字列を数値に変換`=VALUE(A2)`は、`'120`のように文字列として保存された数値を数値の120に変えます。マイナス記号2つの`=--A2`も同じで、NUMBERVALUEは小数点にカンマを使う数値を扱い、「数値に変換する」はセルをその場で直します。
- セル内の改行セルに入力しながらAlt+Enter(MacではControl+Option+Return)を押すと、セルの中で改行できます。数式では`CHAR(10)`が改行で、`=A2&CHAR(10)&B2`はB2を2行目に置き、「折り返して全体を表示する」をオンにすると表示されます。
- 先頭の0Excelが先頭の0を消すのは、`00742`が数値の742だからです。`00000`のようなユーザー定義の表示形式、アポストロフィ(`'00742`)、文字列の表示形式で残すか、`=TEXT(A2,"00000")`で付け足します。
- ワイルドカードExcelの条件では、`*`は任意の数の文字を、`?`はちょうど1文字を表します。`=COUNTIF(A2:A7,"*apple*")`は`apple`を含むセルを数えます。`~`はワイルドカードを普通の文字に戻します。
日付と時刻
- 年齢の計算=DATEDIF(B2,TODAY(),"Y")は、B2の日付に生まれた人の満年齢を返します。特定の日付時点の年齢、何歳何か月何日、DATEDIFを使わない計算方法も学びます。
- DATEDIF=DATEDIF(A2,B2,"M")は、A2の開始日からB2の終了日までの満月数を数えます。単位Y、M、D、YM、MD、YDの意味、DATEDIFが関数の一覧にない理由、#NUM!エラーを学びます。
- 日付の間の日数=B2-A2は、A2の日付からB2の後の日付までの日数を返します。DAYSでの数え方、両端の日を含める方法、週数、月数、年数、営業日数の出し方を学びます。
- 曜日=TEXT(A2,"dddd")はA2の日付の曜日名(Mondayなど)を返し、=WEEKDAY(A2)は曜日を数値で返します。短い曜日名、WEEKDAYの種類、週末の判定を学びます。
- TODAYとNOW=TODAY()は今日の日付を、=NOW()は現在の日付と時刻を返し、どちらもシートが再計算されるたびに更新されます。ある日付までの日数の数え方と、Ctrl+;で変わらない日付を入れる方法を学びます。
- 日付に日数や月を足す=A2+30はA2の30日後の日付を返します。月を足すには=EDATE(A2,3)、月末は=EOMONTH(A2,0)、年は1年を12か月としてEDATEを使います。
- NETWORKDAYSとWORKDAY=NETWORKDAYS(A2,B2)は、A2からB2までの営業日(月曜から金曜)を両端を含めて数えます。=WORKDAY(A2,10)はA2の10営業日後の日付を返します。どちらも祝日のリストを除けます。
- DATE、YEAR、MONTH、DAY=DATE(2026,3,15)は、年、月、日から2026年3月15日の日付を返します。YEAR、MONTH、DAYは日付を分解し、DATEは13月を翌年に繰り越します。
- 時間の計算=B2-A2は、A2の開始時刻からB2の終了時刻までの時間を返します。h:mmの表示形式で8:30と表示するか、24を掛けて8.5時間にします。日付をまたぐ勤務、24時間を超える合計、勤務時間からの給与も学びます。
- 週番号=WEEKNUM(A2)は、日曜始まりの週でA2の日付の週番号を返します。=ISOWEEKNUM(A2)は、ヨーロッパで使われる月曜始まりのISO週番号を返します。週の開始日と、週番号から日付を求める方法も学びます。
数学と統計
- ROUND=ROUND(A2,2)はA2の数値を小数点以下2桁に、=ROUND(A2,0)は整数に四捨五入します。桁数をマイナスにすると十の位、百の位、千の位で丸め、MROUNDは任意の倍数に丸めます。
- ROUNDUP / ROUNDDOWN=ROUNDUP(A2,0)は常に0から遠いほうへ切り上げるので2.1は3になり、=ROUNDDOWN(A2,0)は常に0に向かって切り捨てるので2.9は2になります。CEILINGとFLOORは倍数に切り上げ・切り捨てし、INTとTRUNCは小数部分を捨てます。
- 標準偏差=STDEV.S(B2:B9)は標本の標準偏差を、=STDEV.P(B2:B9)は母集団全体の標準偏差を返します。データが存在するすべての値でない限り、STDEV.Sを使います。VAR.SとVAR.Pは分散を返します。
- RANK=RANK.EQ(B2,$B$2:$B$7)は、B2:B7の値の中でB2が何位かを、最大値を1位として返します。3つ目の引数に1を加えると、最小値が1位になります。同じ値は同じ順位になり、COUNTIFSを使えばグループ内の順位も出せます。
- 乱数=RANDBETWEEN(1,100)は1から100までのランダムな整数を、=RAND()は0以上1未満のランダムな小数を返します。RANDARRAYは範囲全体を埋め、INDEXとRANDBETWEENはランダムに1つ選び、値の貼り付けで結果を固定します。
- MODとABS=MOD(A2,B2)はA2をB2で割った余りを返すので、=MOD(17,5)は2です。=ABS(A2)は符号を取った数を返すので、=ABS(B2-C2)はどちらが大きくても2つの値の差になります。
- PMT=PMT(B2/12,B3*12,-B1)は、B1の借入をB2の年利でB3年かけて返すときの毎月の返済額を返します。利率を12で割り、年数に12を掛け、借入額の前にマイナスを付けると返済額がプラスになります。
- NPVとIRR=NPV(E2,B3:B5)+B2は、将来のキャッシュフローをE2の割引率で割り引き、NPVで割り引いてはいけないB2の初期投資を足します。=IRR(B2:B5)はそのNPVが0になる率を返します。XNPVとXIRRは実際の日付を使います。
- CAGR=(B2/A2)^(1/C2)-1は、A2の開始値からB2の終了値までのC2年間の年平均成長率(CAGR)を返します。=RRI(C2,A2,B2)も同じ率を返します。セルの表示形式はパーセントにします。
動的配列
- FILTER=FILTER(A2:C7,B2:B7="North")は、A2:C7のうち地域がNorthの行をすべて返し、データが変わると結果も更新されます。*と+による複数条件、if_empty、#CALC!、結果の並べ替えを学びます。
- UNIQUE=UNIQUE(B2:B8)は、B2:B8の各値を最初に出てきた順に1回ずつ返し、リストが変わると更新されます。重複のない行、exactly_once、並べ替えた一覧、種類の数え方、プルダウンの元にする方法を学びます。
- SORT, SORTBY=SORT(A2:C7,3,-1)は、表A2:C7を3列目で大きい順に並べ替えて返し、データが変わるたびに並べ替え直します。SORTBYは複数の列やユーザー設定の順番を含め、どんな範囲を基準にしても並べ替えられます。
- SEQUENCE=SEQUENCE(5)は1から5の数値を列の下方向に返し、=SEQUENCE(3,4)は3行4列を埋めます。開始値と増分を足せば、日付、リストに合わせて伸びる行番号、月のカレンダーなど、どんな連続データも作れます。
- TRANSPOSE=TRANSPOSE(A1:D3)はA1:D3の行を列に変え、元のデータとつながったままになります。一度きりのコピーなら、形式を選択して貼り付け > 行列を入れ替える を使います。TOCOLはマス目全体を1つの列に積み重ねます。
- LET=LET(total,SUM(B2:B6),IF(total>500,total*0.9,total))は合計を一度だけ計算し、totalという名前を付けて2回使います。名前を付けた部分は一度しか計算されないので、LETを使うと長い数式が短く、読みやすく、速くなります。
- LAMBDA=LAMBDA(price,price*1.2)(B2)は、priceという1つの入力を持つ小さな関数を定義し、B2に対して呼び出します。LAMBDAを「名前の管理」に保存すると組み込み関数のように使え、MAP、BYROW、SCAN、REDUCEにも渡せます。
エラーと対処法
- #SPILL!エラー#SPILL!は、複数の値を返す数式に、それを置く場所がないという意味です。スピル範囲のどこかのセルが空ではありません。邪魔になっているセルを空にすると、結果が表示されます。
- #VALUE!エラー#VALUE!は、数式が違う種類の値を受け取ったという意味で、たいていは数値が必要な場所の文字列です。C2に"n/a"やスペースが入っていると=B2+C2は失敗します。SUMは文字列を無視するので、=SUM(B2:C2)なら動きます。
- #NAME?エラー#NAME?は、数式の中にExcelが認識できない単語があるという意味です。=SUMM(B2:B6)のような関数名の打ち間違い、引用符のない文字列、範囲のコロンの抜け、定義されていない名前、使っているExcelにない関数が原因です。
- #REF!エラー#REF!は、数式がもう存在しないセルを参照しているという意味で、たいていは使っていた行、列、シートが削除されたのが原因です。=B2*C2は=B2*#REF!になります。VLOOKUPやINDEXが範囲の外の列や行を求めたときにも表示されます。
- #N/Aエラー#N/Aは、検索が探していた値を見つけられなかったという意味です。打ち間違い、余分なスペース、数式を下にコピーしたときにずれた表の範囲を確かめ、本当にない値にはIFNAでメッセージを表示します。
- #DIV/0!エラー#DIV/0!は、C2が空のときの=B2/C2のように、数式が0や空のセルで割ると表示されます。=IF(C2=0,"",B2/C2)なら代わりに空のセルを表示します。数値のない範囲のAVERAGEもこのエラーを返します。
- 循環参照循環参照は、B7に入力した=SUM(B2:B7)のように、直接またはほかの数式を通して自分のセルを参照する数式です。Excelは警告を出して0を表示し、そのセルを 数式 > エラーチェック > 循環参照 に表示します。
- 数式が計算されない結果ではなく数式が表示されるなら、セルが文字列の表示形式になっているか、数式がアポストロフィやスペースで始まっているか、「数式の表示」がオンです。結果が更新されないなら、計算方法が手動です。数式 > 計算方法の設定 > 自動 にします。
データツール
- 重複の削除データを選択して データ > 重複の削除 をクリックすると、重複する行がその場で削除されます。元のデータを残したいなら=UNIQUE(A2:A9)できれいなコピーを作ります。重複の探し方、印の付け方、数え方、2つの列を基準にした削除も紹介します。
- 重複に色を付けるセルを選択して ホーム > 条件付き書式 > セルの強調表示ルール > 重複する値 を選びます。行全体、2つ目のコピーだけ、2つの列にまたがる一致には、=COUNTIF($A$2:$A$9,A2)>1のような数式のルールを使います。
- 条件付き書式条件付き書式は、条件がTRUEのときにセルに色を付けます。用意されたルールは ホーム > 条件付き書式 から、行全体、期限切れの日付、文字列の一致には 新しいルール > 数式を使用して で=$C2>100のようなルールを使います。
- プルダウンリストセルを選択して データ > データの入力規則 を開き、リストを選んで、項目(North,South,East)を入力するか範囲を元の値として選択します。さらに、UNIQUEで自動更新されるリスト、別のリストに連動するリスト、選んだ項目の検索まで作ります。
- 2つの列の比較2つの列を行ごとに比べるには=A2=B2(大文字と小文字を区別するならEXACT)を使います。一方の列にあってもう一方にない値を探すにはCOUNTIF、MATCH、XLOOKUPを使い、違いは条件付き書式で強調します。
- ピボットテーブルピボットテーブルは、表の行をカテゴリーごとにまとめ、数値をそれぞれ集計します。数式は要りません。挿入 > ピボットテーブル を選び、フィールドを行と値にドラッグします。手順、4つのエリアの意味、同じ集計を数式で作る方法を紹介します。