🔀 条件で分ける — 条件に応じて処理を変える
IF、IFS、SWITCH、AND、OR、IFERROR等を使った条件分岐テクニック
こんなときに:
- •点数でランクを付けたい
- •エラーを非表示にしたい
- •「AかつB」の条件で判定したい
- •複雑な数式を読みやすくしたい
124件のQ&A
IFS関数やSWITCH関数はどのバージョンから使える?
IFS関数とSWITCH関数はExcel 2019以降で使用可能です。
MAXIFS関数・MINIFS関数が使えるバージョンは?
MAXIFS関数とMINIFS関数はExcel 2019以降で使用可能です。
LET関数とは?どのバージョンで使える?
LET関数はExcel 2021およびMicrosoft 365で使用可能です。
LAMBDA関数はどのバージョンで使える?
LAMBDA関数はMicrosoft 365専用です。
FILTER、SORT、UNIQUE等の動的配列関数はどのバージョンで使える?
動的配列関数はExcel 2021およびMicrosoft 365で使用可能です。
TOCOL、TOROW、WRAPROWS、WRAPCOLS関数が使えるバージョンは?
TOCOL、TOROW、WRAPROWS、WRAPCOLSはMicrosoft 365で使用可能です。
スピル(動的配列)機能とは?どのバージョンで使える?
スピルはExcel 2021およびMicrosoft 365で利用できる機能です。
セルに#NAME?エラーが出て、数式バーに `_xlfn.` が表示されるのはなぜ?
使用しているExcelバージョンが関数に対応していないことが原因です。
Ctrl+Shift+Enter(CSE)の配列数式は新しいExcelでも使える?
CSE配列数式は全バージョンで使用可能ですが、2021/365ではスピルが推奨されます。
暗黙的なインターセクション(@演算子)とは?
@演算子は動的配列の互換性のためExcel 2021/365で自動挿入されます。
再計算が頻繁に発生して動作が重い場合の対処法は?
揮発性関数の大量使用が原因です。手動計算への切り替えか非揮発性関数への置き換えを検討してください。
Excel内でPythonを実行できるバージョンは?
Python in ExcelはMicrosoft 365専用の機能です。
条件付き書式のアイコンセットはバージョンで違いがある?
アイコンセットは全バージョンで利用可能で大きな違いはありません。
ThisWorkbook.PathがURL(https://...)を返すようになった?
2021/365ではOneDrive/SharePointファイルのPathがURLを返すようになりました。
CSVファイルの文字化けを防ぐ方法はバージョンで違う?
全バージョンで文字化けの可能性があります。Power Queryでのエンコーディング指定が確実です。
Excelが重い・動作が遅い場合の一般的な対処法は?
揮発性関数の削減、条件付き書式の整理、手動計算への切り替え等が有効です。
バージョンごとに追加された主なショートカットキーは?
基本ショートカットは共通。365/2021ではCtrl+Shift+V(値貼り付け)が追加されました。
IFERROR関数でVLOOKUPのエラーを非表示にする方法は?
VLOOKUP全体をIFERRORで囲むことでエラーを非表示にできます。
IF関数を複数条件で使う方法は?IFSとの違いは?
IF関数のネストで複数条件に対応。2019以降ではIFS関数がより見やすい代替です。
SUMIF/COUNTIFとSUMIFS/COUNTIFSの違いは?
SUMIF/COUNTIFは1条件、SUMIFS/COUNTIFSは複数条件対応です。引数順序に注意。
条件付き書式で特定の条件に一致するセルを色付けする方法は?
「条件付き書式」→「数式を使用」で数式による色付けが可能です。
値のみ貼り付け、書式のみ貼り付けの方法は?
Ctrl+Alt+Vで形式を選択。2021/365ではCtrl+Shift+Vで値のみ貼り付け可能。
2つの日付の間の年数・月数・日数を計算する方法は?
DATEDIF関数で年数・月数・日数を計算できます。全バージョンで使用可能です。
営業日の計算(土日祝を除く)をする方法は?
WORKDAY関数で営業日後の日付、NETWORKDAYS関数で営業日数を計算できます。
重複データを削除する方法は?
「データ」→「重複の削除」で重複行を削除。UNIQUE関数で非破壊的な抽出も可能。
エラー処理に使える関数は?
IFERROR、ISERROR、IFNA等でエラー処理が可能です。全バージョンで使用可能。
AVERAGE関数で平均を求める方法は?
AVERAGE関数で平均値を計算。空白は除外、0は含まれる点に注意。
MAX関数・MIN関数の使い方は?
MAX/MIN関数で最大値・最小値を取得。条件付きにはMAXIFS/MINIFSを使用。
IF関数の基本的な使い方は?
IF関数は条件分岐の基本。AND/OR関数と組み合わせて複数条件も可能です。
AND関数、OR関数、NOT関数の使い方は?
AND/OR/NOT関数で複数条件の論理判定。IF関数と組み合わせて使います。
COUNTIF関数で条件に一致するセルの個数を数える方法は?
COUNTIF関数で条件に一致するセルの個数をカウントできます。
SUMIF関数で条件付き合計を求める方法は?
SUMIF関数で条件に一致する行の合計を計算できます。
SUMPRODUCT関数の使い方と複数条件集計への応用方法は?
SUMPRODUCT関数は複数配列の積の合計を計算し、複数条件集計の万能関数として活用できます。
FORMULATEXT関数の使い方と数式の可視化方法は?
FORMULATEXT関数はセルの数式を文字列として表示し、数式の可視化や監査に役立ちます。
TYPE関数の使い方とデータ型の判定方法は?
TYPE関数はセルのデータ型を数値(1=数値、2=文字列、4=論理値、16=エラー)で判定します。
N関数の使い方と値を数値に変換する方法は?
N関数は値を数値に変換し、TRUE=1、FALSE=0、文字列=0として計算に使えます。
VLOOKUPで値が見つからないときに空白やメッセージを表示する方法は?
VLOOKUPをIFERRORで囲むことで、検索値が見つからない場合に空白や任意のメッセージを表示できます。
INDEX+MATCHで複数条件検索する方法は?
INDEX+MATCHで複数条件検索するには配列数式を使い、条件を掛け合わせて1を検索します。
VLOOKUPの列番号を可変にして動的に参照する方法は?
VLOOKUPの列番号にMATCH関数を使うことで、ヘッダー行の値に応じて動的に参照列を変更できます。
別シートをVLOOKUPで動的に参照する方法は?
INDIRECTでシート名を動的に指定することで、複数シートからVLOOKUPで検索できます。
XLOOKUPで複数列の値を一度に返す方法は?
XLOOKUPは戻り配列に複数列を指定することで、1つの検索で複数の値をスピルで返せます。
XLOOKUPで縦横の2次元検索(クロス集計)をする方法は?
XLOOKUPをネストすることで、行と列の交差する値を取得する2次元検索ができます。
SUMPRODUCTで複数条件のカウントや合計をする方法は?
SUMPRODUCTで条件を掛け合わせることで、COUNTIFSやSUMIFSと同様の複数条件集計ができます。
OFFSET+MATCHで動的範囲を作る方法は?
OFFSET+MATCHでデータの最終行を自動判定し、動的に広がる範囲を作成できます。
VLOOKUPで左方向の列を検索する方法は?(2019以前)
CHOOSE関数でVLOOKUPの列順を入れ替えることで、左方向の列を検索できます。
条件に一致する最後(最新)のデータを取得する方法は?
LOOKUP関数で配列数式を使うことで、条件に一致する最後のデータを取得できます。
特定の区切り文字の前の部分を取り出す方法は?
LEFT関数とFIND関数を組み合わせて区切り文字の前の部分を取得できます。
2つの区切り文字の間の文字を取り出す方法は?
MID関数とFIND関数を組み合わせて2つの区切り文字の間の文字列を取得できます。
複数の文字を一括で置換する方法は?
SUBSTITUTE関数を複数ネストして異なる文字列を一括置換できます。
TEXT関数でよく使う書式パターンは?
TEXT関数で日付・数値・パーセント・漢数字など多様な書式設定が可能です。
データの正規化(全角半角統一、スペース除去)を一括で行う方法は?
ASC、TRIM、CLEAN、SUBSTITUTE関数を組み合わせてデータ正規化を一括実行できます。
条件に一致するセルの文字列だけを結合する方法は?
TEXTJOIN関数とIF関数を組み合わせて条件一致するセルの文字列だけを結合できます。
特定の文字がセル内に何回出現するか数える方法は?
LEN関数とSUBSTITUTE関数を組み合わせて特定文字の出現回数をカウントできます。
セル内に簡易棒グラフを作る方法は?
REPT関数で文字を繰り返してセル内に簡易的な棒グラフを作成できます。
生年月日から現在の年齢を計算する方法は?
DATEDIF関数で生年月日から現在の年齢を自動計算できます。
2つの日付間の営業日数を計算し、n営業日後の日付を求める方法は?
NETWORKDAYS関数とWORKDAY関数で営業日ベースの日付計算が可能です。
土日だけセルの色を変える方法は?
WEEKDAY関数と条件付き書式で土日のセルだけ自動的に色を変えられます。
CEILING関数とFLOOR関数で指定の倍数に切り上げ・切り捨てする方法は?
CEILING関数は指定倍数に切り上げ、FLOOR関数は切り捨てます。
CEILING.MATH関数とFLOOR.MATH関数は通常版とどう違う?
CEILING.MATH関数とFLOOR.MATH関数は負の数対応が改善された改良版です。
CORREL関数で相関係数を求める方法は?
CORREL関数は2つのデータ系列間の相関係数を-1から1の範囲で求めます。
FORECAST関数で線形予測を行う方法は?
FORECAST関数は過去データから線形回帰に基づく予測値を求めます。
FORECAST.ETSで季節性を考慮した予測を行う方法は?
FORECAST.ETS関数は季節性を考慮した高度な時系列予測を行います。
IF関数で「AかつB」「AまたはB」を判定する方法は?
AND関数で「AかつB」、OR関数で「AまたはB」の複数条件をIF関数と組み合わせて判定できます。
点数や金額をランク分けする方法は?
IFS関数で複数の条件を並べてランク分けが簡潔に記述できます(2019以降)。2016以前はIF関数のネストを使用します。
加重平均(重み付き平均)を計算する方法は?
SUMPRODUCT関数で値と重みを掛け合わせた合計を求め、重みの合計で割ることで加重平均を計算できます。
重複を除いた一意の件数(ユニークカウント)を求める方法は?
SUMPRODUCT(1/COUNTIF(...))で重複を除いた件数を計算できます。2021以降はROWS(UNIQUE(...))も使用可能です。
IFERRORとIFNAの使い分けは?
IFERRORは全エラーを処理、IFNAは#N/Aのみ処理します。バグ発見のためIFNAの使用が推奨される場合があります。
月番号(1〜12)を月名(1月、Januaryなど)に変換する方法は?
SWITCH関数(2019以降)、TEXT関数、CHOOSE関数で月番号を月名に変換できます。TEXT関数が最もシンプルです。
LET関数で複雑な数式を読みやすくする方法は?
LET関数で数式内に変数を定義することで、複雑な計算式を読みやすく、保守しやすくできます(2021/365)。
日付の範囲指定で合計する方法は?
SUMIFS関数で>=と<=の2つの条件を指定することで、日付範囲の合計を計算できます。
指定範囲内の値の個数を数える方法は?
COUNTIFS関数で同じ範囲に>=と<=の2つの条件を指定することで、範囲内の個数を数えられます。
複数条件の平均を求める方法は?
AVERAGEIFS関数で複数の条件範囲と条件を指定することで、条件を満たすデータの平均を計算できます。
上位N件の値を取得する方法は?
LARGE関数で上位N番目の値を取得できます。365ではSORT+UNIQUE+TAKEで上位N件を一覧取得可能です。
同順位(タイ)がある場合の順位付けの方法は?
RANK.EQ関数で順位付けができます。同順位の扱いをCOUNTIFで調整したり、RANK.AVGで平均順位にできます。
NETWORKDAYS/NETWORKDAYS.INTL関数で営業日数を計算する方法は?
NETWORKDAYS関数で土日を除く営業日数を計算できます。祝日の除外も可能です。
WORKDAY.INTL関数でカスタム休日対応の営業日計算をする方法は?
WORKDAY.INTL関数でカスタム休日パターンに対応したN営業日後の日付を計算できます。
条件抽出した結果をさらに並べ替えて表示する方法は?
FILTER関数で条件抽出した結果をSORT関数でネストして並べ替えることができます。
重複なしのソート済みリストを自動生成する方法は?
UNIQUE関数で重複除去し、SORT関数で並べ替えることでプルダウンリスト用のソースを自動生成できます。
FILTER関数でOR条件(AまたはB)を指定する方法は?
FILTER関数のOR条件は、条件式を括弧で囲んで + 演算子で結合することで実現できます。
FILTER関数でAND条件(AかつB)を指定する方法は?
FILTER関数のAND条件は、条件式を括弧で囲んで * 演算子で結合することで実現できます。
LAMBDA関数でよく使うカスタム関数の例は?
LAMBDA関数で税込計算や評価判定などの繰り返し使う処理をカスタム関数として定義できます。
REDUCE関数で累計(ランニングトータル)を計算する方法は?
REDUCE関数で累計を計算できますが、累計配列を作るにはSCAN関数の方が適しています。
複数のテーブルを順番に検索するフォールバック検索の方法は?
IFERROR関数を入れ子にして複数のVLOOKUPを連結することで、フォールバック検索を実現できます。
エラーの種類ごとに異なるメッセージを表示する方法は?
ERROR.TYPE関数でエラー種類を判別し、SWITCH/IFS関数で種類ごとのメッセージを設定できます。
セルにどんな数式が入っているか別のセルに表示する方法は?
FORMULATEXT関数で、指定セルの数式を文字列として取得できます。
数式が入っているセルと直接入力されたセルを区別する方法は?
ISFORMULA関数と条件付き書式を組み合わせて、数式セルを視覚的に区別できます。
ISBLANK/ISTEXT/ISNUMBER/ISLOGICAL関数でデータ型を判定する方法は?
IS系関数(ISBLANK、ISTEXT、ISNUMBER等)でセルのデータ型を判定できます。
ISERROR/ISERR/ISNA関数の違いとエラー判定方法は?
ISERRORは全エラー、ISERRは#N/A以外、ISNAは#N/Aのみを判定します。
ERROR.TYPE関数でエラーの種類を判別する方法は?
ERROR.TYPE関数はエラーの種類を1〜8の数値コードで返し、詳細なエラー処理を可能にします。
IFNA関数で#N/A専用のエラーハンドリングをする方法は?
IFNA関数は#N/Aのみを処理し、他のエラーは表示するため安全なエラー処理ができます。
PI/RAND/RANDBETWEEN関数の使い方は?(円周率・乱数)
PI関数で円周率、RAND関数で0〜1の乱数、RANDBETWEEN関数で整数乱数を生成できます。
NORM.DIST/NORM.INV/NORM.S.DIST関数で正規分布を計算する方法は?
NORM.DIST関数で正規分布の確率、NORM.INV関数でパーセンタイル値を計算できます。
CONFIDENCE/CONFIDENCE.NORM/CONFIDENCE.T関数で信頼区間を計算する方法は?
CONFIDENCE.NORM/CONFIDENCE.T関数で統計的信頼区間の幅を計算できます。
DSUM/DAVERAGE/DCOUNT/DGET/DMAX/DMIN等のデータベース関数の使い方は?
DSUM/DAVERAGE/DCOUNT等で、条件範囲を指定した集計ができます。
全選択・データ範囲選択のショートカットは?
全選択は「Ctrl+A」、データ範囲の端まで選択は「Ctrl+Shift+End」です。
行・列の挿入/削除のショートカットは?
行・列の挿入は「Ctrl+Shift++」、削除は「Ctrl+-」です。
データの端まで選択するショートカットは?
データの端まで選択するには「Ctrl+Shift+矢印キー」を使います。
数値表示形式を素早く変更するショートカットは?
桁区切りは「Ctrl+Shift+1」、通貨は「Ctrl+Shift+4」、パーセントは「Ctrl+Shift+5」です。
新しいシートを挿入するショートカットは?
新しいシートを挿入するには「Shift+F11」を押します。
行・列をグループ化/解除するショートカットは?
グループ化は「Alt+Shift+→」、解除は「Alt+Shift+←」です。
オートフィルターのオン/オフを切り替えるショートカットは?
オートフィルターのオン/オフは「Ctrl+Shift+L」です。
手動計算モードで再計算を実行するショートカットは?
ブック全体の再計算は「F9」、現在のシートのみは「Shift+F9」です。
入力規則で独自の条件(半角のみ、日付範囲等)を設定する方法は?
入力規則の「ユーザー設定」で数式を使い、半角チェックや日付範囲など独自条件を指定できます。
条件付き書式のルール一覧と優先順位の設定は?
ホーム→条件付き書式→ルールの管理で、ルールの一覧表示・優先順位変更・編集ができます。
条件付き書式で数式を使う方法は?
条件付き書式で「数式を使用」を選択し、TRUE/FALSEを返す数式で複雑な条件を指定できます。
アイコンセット・データバーの使い方は?
条件付き書式でアイコンセット(矢印・信号等)やデータバー(セル内棒グラフ)を表示できます。
フィルターの詳細設定(AND/OR条件、別シート抽出)は?
「詳細設定」でAND/OR条件を指定し、抽出結果を別の場所に出力できます。
ゴールシーク(逆算)の使い方は?
データタブの「What-If分析」→「ゴールシーク」で目標値から必要な入力値を逆算できます。
ソルバーで最適化問題を解く方法は?
アドインを有効化後、データタブの「ソルバー」で制約条件付き最適化問題を解けます。
What-Ifデータテーブル(感度分析)の使い方は?
データタブの「What-If分析」→「データテーブル」で入力値の変化による結果の一覧表を作成できます。
シナリオの登録で複数パターンの試算をする方法は?
データタブの「What-If分析」→「シナリオの登録と管理」で複数の試算パターンを保存・比較できます。
VBAのAutoFilter代わりにFILTER関数で条件抽出する方法は?
FILTER関数で条件指定するとVBAのAutoFilterと同等の抽出が可能
VBAのRange.Sort代わりにSORT関数でデータを並べ替える方法は?
SORT関数で数式による動的な並べ替えが可能、VBAマクロ不要
VBAのFunction代わりにLAMBDA関数で自作関数を作る方法は?
LAMBDA関数で名前定義すればVBAのFunction相当の自作関数が作れる
VBAのForループ代わりにMAP/REDUCE関数で配列処理する方法は?
MAP/REDUCE関数でVBAのループ処理を関数型スタイルで置き換え可能
VBAのDim変数代わりにLET関数で中間変数を使う方法は?
LET関数で数式内に変数を定義、VBAのDim文相当の機能を実現
VBAのInterior.Color代わりに条件付き書式でセルの色を変える方法は?
条件付き書式でVBAのInterior.Color設定を自動化
VBAのUserForm代わりにデータの入力規則で入力制御する方法は?
データの入力規則でVBAのUserForm相当の入力制御を実現
スプシのIMPORTRANGEに相当するExcelの機能は?
Excelは外部参照で他ファイル参照、スプシほど柔軟ではない
スプシのARRAYFORMULAとExcelのスピルの違いは?
スプシはARRAYFORMULA、Excelはスピル、2021/365のみ対応
スプシのIMPORTHTMLをExcelで再現する方法は?
Power QueryのWebから機能でスプシのIMPORTHTMLを代替、2016以降対応
スプシのGOOGLETRANSLATEをExcelで使う方法は?
Excel直接代替なし、Office Scripts+APIまたはPower Automate経由
スプシのGOOGLEFINANCEの代わりにExcelで株価を取得する方法は?
365はSTOCKHISTORY、2016/2019/2021はPower Query+API
条件付き書式のExcelとスプシの違いは?
Excelは詳細設定が豊富、スプシは基本機能のみ