数式
  1. 数式とは
  2. 絶対参照と相対参照
  3. SUM関数(引数を合計)
  4. IF関数(条件を満たしているかどうかを判定)
  5. 関数のネスト
  6. 作業セル、計算セル
  7. SUMIF関数(検索条件に一致するセルの合計)
  8. COUNT関数(セル値が数値の個数)
  9. COUNTA関数(空白以外のセルの個数)
  10. COUNTIF関数(検索条件に一致するセルの個数)
  11. COUNTBLANK(空白セルの個数)
  12. AVERAGE関数(引数の平均値)
  13. AVERAGEIF関数(検索条件に一致する平均値)
  14. VLOOKUP関数(範囲の左端列で値検索し対応セル値)
  15. HLOOKUP関数(範囲の上端行で値検索し対応セル値)
  16. SUMIFS関数、COUNTIFS関数.AVERAGEIFS関数(複数条件)
  17. AND関数(すべての引数がTRUEのときにTRUE)
  18. OR関数(いずれかの引数がTRUEのときにTRUE)
  19. IS関数(対象をチェックし、結果に応じてTRUE,FALSE)
  20. IFERROR関数(エラーの場合は指定値、以外の場合は数式)
  21. MATCH関数(範囲から値を検索し一致する位置)
  22. INDEX関数(範囲から指定されたセル)
  23. OFFSET関数(行数と列数シフトした位置のセル範囲)
  24. INDIRECT関数(参照文字列で間接的にセルを指定)
  25. COLUMN関数(セル参照の列番号)
  26. ROW関数(セル参照の行番号)
  27. CONCATENATE関数(複数の文字列を結合)
  28. FIND関数(指定文字列を他の文字列の中で検索)
  29. SEARCH関数(指定文字列を他の文字列の中で検索)
  30. LEFT関数(文字列の先頭から指定文字数の文字)
  31. RIGHT関数(文字列の末尾から指定文字数の文字)
  32. MID関数(文字列の指定位置から指定文字数の文字)
  33. LEN関数(文字列に含まれる文字数を返します)
  34. SUBSTITUTE関数(文字列中の指定文字を置換)
  35. REPLACE関数(文字列中の指定数の文字を置換)
  36. TEXT関数(数値を書式設定した文字列に変換)
  37. VALUE関数(文字列を数値に変換する)
  38. TRIM関数(文字列から余分なスペースを削除)
  39. UPPER関数(文字列の英字をすべて大文字に変換)
  40. LOWER関数(文字列の英字をすべて小文字に変換)
  41. ASC関数(全角の英数カナ文字を半角に変換)
  42. JIS関数(半角の英数カナ文字を全角に変換)
  43. PHONETIC関数(文字列からふりがなを抽出)
  44. 日付時刻のシリアル値
  45. DATE関数(年,月,日を日付に)
  46. DATEVALUE関数(日付を表す文字列を日付に)
  47. YEAR関数(日付を年に)
  48. MONTH関数(日付を月に)
  49. DAY関数(日付を日に)
  50. TIME関数(時,分,秒を時刻に)
  51. TIMEVALUE関数(時刻を表す文字列を時刻に)
  52. HOUR関数(時刻を時に)
  53. MINUTE関数(時刻を分に)
  54. SECOND関数(時刻を秒に)
  55. TODAY関数(現在の日付)
  56. NOW関数(現在の日付と時刻)
  57. WORKDAY関数(稼動日数だけ前後の日付)
  58. NETWORKDAYS関数(稼動日の日数)
  59. DATEDIF関数(年齢・勤続年数)
  60. EDATE関数(月数だけ前後の日付)
  61. EOMONTH関数(月数だけ前後の月の最終日)
  62. WEEKDAY関数(曜日に変換)
  63. WEEKNUM関数(その年の何週目)
  64. ROUND関数(数値を四捨五入して指定桁数に)
  65. ROUNDUP関数(数値を切り上げて指定桁数に)
  66. ROUNDDOWN関数(数値を切り捨てて指定桁数に)
  67. SUMPRODUCT関数(配列の対応する要素の積の合計)
  68. INT関数(指定数値を最も近い整数に切り捨て)
  69. MAX関数(範囲に含まれる最大の数値)
  70. MIN関数(範囲に含まれる最小の数値)
  71. LARGE関数(範囲の中でk番目に大きなデータ)
  72. SMALL関数(範囲の中でk番目に小さな値)
  73. RANK関数(範囲の中で指定数値の序列)
  74. MOD関数(除算したときの剰余)
  75. MROUND関数、CEILING関数、FLOOR関数(指定値の倍数)
  76. RAND関数、RANDBETWEEN関数(乱数)
  77. CELL関数(セルの書式、位置、内容の情報)
  78. Excelワークシート関数一覧(2010以降)
  79. Excel2010で追加されたワークシート関数
  80. Excel2013で追加されたワークシート関数
  81. Excel2016以降で追加されたワークシート関数
  82. CONCAT関数(複数の範囲や文字列を結合)
  83. TEXTJOIN関数(区切り記号を指定できる文字列結合)
  84. MAXIFS関数、MINIFS関数(条件付き最大値最小値)
  85. IFS関数(複数条件)
  86. SWITCH関数(複数値での切替)


書式
  1. 日付・時刻関数
  2. 関数使用時の注意
  3. 横(列)でフィルター
  4. 表示する列を選択する
  5. 配列リテラルの書き方
  6. FILTER関数をネストして表示する列を選択
  7. FILTER関数の結果を他の関数で使う
  8. 日付、時刻に関するあれこれ(「元年」表記追加)
  9. 数値の書式あれこれ
  10. ひらがな⇔カタカナの変換
  11. ひらがな→カタカナ変換
  12. カタカナ→ひらがな変換
  13. PHONETIC関数の問題点
  14. 漢字は変換しない方法
  15. やはりマクロ(VBA)で
  16. 関数入力のショートカット
  17. セルの表示形式のショートカット
  18. 可視セルのみコピーする(非表示の行・列を除く)
  19. 日付表示の桁位置を揃える
  20. 覚えておきたいエクセルの操作:Enter編
  21. 覚えておきたいエクセルの操作:入力・編集
  22. 覚えておきたいエクセルの操作:ジャンプ
  23. 覚えておきたいエクセルの操作:数式のコピー
  24. 覚えておきたいエクセルの操作:文字列数値を数値化
  25. 覚えておきたいエクセルの操作:図形(オートシェイプ)
  26. ハイパーリンクを絶対パスで保存する方法
  27. 入力時に勝手に付くハイパーリンクを消す方法
  28. 重複削除しユニークデータ作成(フィルターオプションの設定)
  29. 1年後の日付、○か月後の日付
  30. 複数条件の合計・件数
  31. 入力規則のリストを、追加・削除に自動対応で作成
  32. 入力規則のリストを、2段階の絞り込みで作成1
  33. 入力規則のリストを、2段階の絞り込みで作成2
  34. ピポットテーブルの参照範囲を、追加・削除に自動対応で作成
  35. 関数を使って行列を入れ替える方法
  36. 複数条件で検索し、複数データを取得する方法
  37. 関数で銀行型丸め(最近接偶数への丸め)を行う方法
  38. 関数で他シートへ並べ替える方法(サンプル:ABC分析)
  39. VLOOKUPを他の関数でやる方法
  40. 誕生日一覧から、指定誕生月の人を全員取り出す
  41. 徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)
  42. セルの参照範囲を可変にする(OFFSET,COUNTA,MATCH)
  43. 説明で使用するエクセル表
  44. OFFSET関数
  45. MATCH関数
  46. COUNTA関数
  47. セルの参照範囲を可変にする数式の解説
  48. 全合計(E3)の数式
  49. 開始日(E4)と終了日(E5)に名前定義とリストを設定
  50. 日付の範囲に名前定義を作成
  51. E4とE5にリストを設定
  52. 期間合計(E5)の数式
  53. 短く易しい数式で

グラフ等
  1. グラフのデータ範囲を可変にする
  2. セルの個数を数える関数
  3. 【奥義】大量データでの高速VLOOKUP
  4. 数値を時刻に変換
  5. 数値を時刻に変換:方法1
  6. 数値を時刻に変換:方法2
  7. 数値を時刻に変換:方法3
  8. 数値を時刻に変換の注意点
  9. 関数のネスト方法
  10. ワイルドカードが使える関数
  11. グラフで特定の横軸の色を変更し基準線を引く
  12. Excel2019でグラフで特定の横軸の色を変更し基準線を引く
  13. 追加系列を折れ線グラフに
  14. 追加系列を第2軸に
  15. 第2軸縦の書式変更
  16. 特定の横軸の色を変更し基準線を引いたグラフの完成
  17. Excel2003でグラフで特定の横軸の色を変更し基準線を引く
  18. OFFSET関数 解説・応用・使用例
  19. MATCH関数 解説・応用・使用例
  20. 選択行の色を変える(条件付き書式,Worksheet_SelectionChange)
  21. 他ブックを参照できる関数、他ブックを参照できない関数
  22. 他ブックを参照できる関数、他ブックを参照できない関数
  23. 他ブックを参照できる関数、他ブックを参照できない関数のまとめ
  24. 他ブックを参照する最も簡単な方法
  25. 配列数式を使って、他ブックを参照する
  26. 他ブックを参照することについて
  27. 時間計算で困ったときの確実な対処方法
  28. VLOOKUP 左側の列を取得(MATCH,INDEX,OFFSET)
  29. VLOOKUP関数
  30. キー列より左側の列を取得したい
  31. MATCH関数
  32. INDEX関数
  33. OFFSET関数
  34. MATCH関数とINDEX関数を使う
  35. MATCH関数とOFFSET関数を使う
  36. キー列より左側の列を取得のまとめ
  37. SUMIF関数の良くある間違い
  38. 論理式とは条件式とは(IF関数,AND関数,OR関数)
  39. 先頭の数値、最後の数値を取り出す
  40. 最後の空白(や指定文字)以降の文字を取り出す
  41. SUMIFの間違いによるパフォーマンスの低下について
  42. 数値範囲で表検索するVLOOKUP近似一致
  43. 表をエクセルで扱えるように調整する
  44. VLOOKUP関数の近似一致
  45. VLOOKUP近似一致がどのように値を探しているか
  46. VLOOKUP近似一致の表を作成する場合の注意点
  47. VLOOKUP関数に関する参考ページ
  48. 百万単位で表示(百万未満は小数表示、小数位置も合わせる)


ショートカットキー一覧 ファイル
Ctrl + O ファイルを開く
Ctrl + N ファイルの新規作成
Ctrl + S 上書き保存する
Ctrl + F12 ファイルを開く
Shift + F12 上書き保存する
Alt + Shift + F2 上書き保存する
F12 名前を付けて保存する
Alt + F2 名前を付けて保存する
Alt + F4 アプリケーションを終了する

ウインドウ
Ctrl + W 選択したブック ウィンドウを閉じる
Ctrl + F4 ウィンドウを閉じる
Ctrl + F5 ウィンドウのサイズを元に戻す
Ctrl + F6 次のブックウィンドウに移動する
Ctrl + Shift + F6 前のブック ウィンドウに移動する
Ctrl + F7 ブック ウィンドウのコントロール メニューの [移動] を選択する
Ctrl + F8 ウィンドウのサイズを変更する
Ctrl + F9 ブック ウィンドウを最小化する
Ctrl + F10 ブック ウィンドウを最大化または元のサイズにする
Ctrl + TAB 次のブックまたはウィンドウに移動する
Ctrl + Shift + TAB 前のブックまたはウィンドウに移動する

シート
F11 新規グラフ シートを挿入する
Shift + F11 新規ワークシートを挿入する
Alt + Shift + F1 新規ワークシートを挿入する
Alt + F1 グラフ を挿入する
Ctrl + PageUp ブック内の前のシートをアクティブにする
Ctrl + PageDown ブック内の次のシートをアクティブにする
Ctrl + Shift + PageUp ブックの現在のシートと前のシートを選択する
Ctrl + Shift + PageDown ブックの現在のシートと次のシートを選択する

印刷
Ctrl + P 印刷
Ctrl + Shift + F12 印刷
Ctrl + F2 印刷プレビューウィンドウの表示(2007以降)

コピー/貼付
Ctrl + X 選択範囲を切り取る
Ctrl + C 選択範囲をコピーする
Ctrl + V コピーまたは切り取った範囲を貼り付ける
Ctrl + Alt + V 「形式を選択して貼り付け」ダイアログの表示(2007以降)
Ctrl + Insert Ctrl + C に同じ
Shift + Insert Ctrl + V に同じ
Shift + Delete Ctrl + X に同じ
Alt + Backspace Ctrl + Z に同じ
Ctrl + R 選択範囲内で右方向のセルにコピーする
Ctrl + D 選択範囲内で下方向のセルにコピーする
Ctrl + Shift + . (>) 選択範囲内で右方向のセルにコピーする
Ctrl + Shift + , (<) 選択範囲内で下方向のセルにコピーする

検索/置換
Ctrl + F 検索
Ctrl + H 置換
Ctrl + G ジャンプ
F5 ジャンプ
Shift + F4 直前の [検索] コマンドを繰り返す
Shift + F5 検索

選択
Ctrl + A 連続セル範囲を選択します。連続セル範囲以外ではワークシート全体が選択されます。オブジェクトが 1 つ選択されているときは、シートにあるすべてのオブジェクトが選択されます。
Shift + Space 選択範囲を行全体に拡張する
Ctrl + Space 選択範囲を列全体に拡張する
Shift + 方向キー 選択範囲を拡張する
Ctrl + Shift + 方向キー データが入力されている範囲の先頭行、末尾行、左端列、または右端列まで選択範囲を拡張する
Ctrl + Shift + Home 選択範囲をワークシートの先頭のセルまで拡張する
Ctrl + Shift + End 選択範囲をデータが入力されている範囲の右下隅のセルまで拡張する
Ctrl + Shift + O コメントがあるすべてのセルを選択する
Ctrl + Shift + : (*) アクティブ セル領域 (アクティブ セルを含み、空白の行と列で囲まれているデータ領域) を選択する
Shift + Home 選択範囲を行の先頭まで拡張する
Shift + PageUp 選択範囲を 1 画面上まで拡張する
Shift + PageDown 選択範囲を 1 画面下まで拡張する
Shift + Backspace 範囲の選択を解除し、アクティブ セルだけを選択する
Ctrl + Shift + [ ({) 選択範囲の数式が直接または間接的に参照するすべてのセルを選択する
Ctrl + Shift + ] (}) 選択範囲のセルを直接または間接的に参照する数式が入力されたすべてのセルを選択する
Ctrl + [ ({) 選択範囲の数式が直接参照するセルを選択する
Ctrl + ] (}) 選択範囲のセルを直接参照する数式が入力されたセルを選択する
F8 選択範囲を拡張または解除できるようにする (拡張モードのオンとオフを切り替える)
Shift + F8 選択範囲を追加する
Ctrl + Shift + Space 連続セル範囲を選択します。連続セル範囲以外ではワークシート全体が選択されます。オブジェクトが 1 つ選択されているときは、シートにあるすべてのオブジェクトが選択されます。
Alt + ; 可視セルのみ選択

移動
Ctrl + 方向キー データ範囲の先頭行、末尾行、左端列、または右端列に移動する
Ctrl + Home ワークシートの先頭に移動する
Ctrl + End データが入力されている範囲の右下隅のセルに移動する
Ctrl + Backspace アクティブ セルが表示されるまでスクロールする

挿入/削除
Ctrl + - 選択範囲のセルを削除する
Ctrl + Shift + ; (+) セルを挿入する

元に戻す/繰り返す
Ctrl + Z 直前の操作の実行結果を元に戻す
Ctrl + Y 直前の操作を繰り返す
F4 直前の操作を繰り返す
Alt + Enter 直前の操作を繰り返す

入力
Ctrl + Enter 選択したセル範囲に、アクティブ セルと同じ値を入力する
Alt + Enter セル内で改行する(セル編集中の場合)
Ctrl + ; 現在の日付を入力する
Ctrl + : 現在の時刻を入力する
Ctrl + K ハイパーリンクを挿入する

編集
F2 アクティブ セルを編集する
Shift + F2 セルのコメントを編集する

書式
Ctrl + 1 [セルの書式設定] ダイアログ ボックスを表示する
Ctrl + 2 太字の書式の設定と解除を切り替える
Ctrl + 3 斜体の書式の設定と解除を切り替える
Ctrl + 4 下線の設定と解除を切り替える
Ctrl + 5 取り消し線の設定と解除を切り替える
Ctrl + 7 [標準] ツールバーの表示と非表示を切り替える
Ctrl + ^ [指数] 表示形式 (小数点以下の桁数 2) を設定する
Ctrl + @ [時刻] 表示形式 (hh:mm、24 時間表示) を設定する
Ctrl + Shift + 1 桁区切りの表示形式を設定する
Ctrl + Shift + 2 アクティブ セルの 1 つ上のセルの数式を、アクティブ セルまたは数式バーにコピーする
Ctrl + Shift + 3 [日付] 表示形式 (yyyy/mm/dd) を設定する
Ctrl + Shift + 4 [通貨] 表示形式 (\-1,234) を設定する
Ctrl + Shift + 5 [パーセンテージ] 表示形式 (小数点以下の桁数 0) を設定する
Ctrl + Shift + 6 外枠の罫線を設定する
Ctrl + Shift + 7 アクティブ セルの 1 つ上のセルの数式を、アクティブ セルまたは数式バーにコピーする
Ctrl + Shift + ~(^) 標準の表示形式に設定する
Ctrl + Shift + @ セルの数式と計算結果の表示を切り替える
Ctrl + Shift + _ 罫線を削除する
Ctrl + I 斜体の書式の設定と解除を切り替える
Ctrl + B 太字の書式の設定と解除を切り替える
Ctrl + J 「セルの書式設定」の「表示形式」「ユーザー定義」で、「種類(T)」の表示形式中にセル内改行を指定する
Ctrl + U 下線の設定と解除を切り替える
Ctrl + Alt + TAB セル書式の横位置を「左詰(インデント)」にし、押すごとにインデント数を+1する
Ctrl + Alt + Shift + TAB Ctrl + Alt + Shift + TAB で押すごとにインデント数を-1する

表示/非表示
Ctrl + 9 行(アウトライン)を非表示にする
Ctrl + 0 列(アウトライン)を非表示にする
Ctrl + Shift + 9 非表示の行(アウトライン)を表示する
Vista以降は基本的には使えません
Ctrl + 6 オブジェクトの表示、非表示、および位置のみの表示を切り替える
Ctrl + F1 リボンの表示と非表示の切り替え(2007以降)
Ctrl + Shift + U 数式バーを複数行に展開します。展開されている場合は1行に縮小します。

関数
Alt + Shift + = SUM 関数を挿入する
Ctrl + Shift + Enter 数式を配列数式として入力する
Shift + F3 関数の挿入
Ctrl + A 数式に関数名が入力されている場合、数式パレットを表示する
Ctrl + Shift + A 数式に関数名が入力されている場合、その関数の引数名を( )で挿入する

再計算
F9 開いているブックのすべてのシートのデータを計算する
Shift + F9 作業中のシートのデータを計算する
Ctrl + Alt + F9 Ctrl + Alt + F9 でアクティブなブックのすべてのシートを計算する

名前定義
Ctrl + F3 名前の定義
Ctrl + Shift + F3 名前の作成

マクロ
Alt + F8 マクロ
Alt + F11 Visual Basic Editor を起動する

その他
F1 オンライン ヘルプ、またはOfficeアシスタント
F7 スペル チェック
F10 メニューバーをアクティブにする
Shift + F10 ショートカット メニューを表示する
Alt + Shift + 7 スタイル
Ctrl + Shift + L フィルターを適用する

ショートカット.Ctrl+V(貼り付け)

エクセル入門 >ショートカット > Ctrl + V(貼り付け)
 コピーまたはカットされたセルを選択セル位置に貼り付けるショートカットです。
 キー: Ctrl + V Ctrl キーを押した状態で V を押下
 機能:コピーまたはカットされたセルを貼り付ける
 ※事前にコピー(Ctrl+C)またはカット(Ctrl+X)の操作をしてある必要があります。
 このショートカットは貼り付けするだけです。
 点滅点々で囲まれた状態になっているコピーまたはカットされたセルを、
 選択されたセル位置に貼り付けます。
 貼り付けるには、
  Enter
 でも可能です。
 ただし、コピーの貼り付けにおいては、
 Ctrl+Vの場合は、繰り返し他のセルを選択して貼り付ける事が出来ますが、
 Enterの場合は、1度の貼り付けでコピー状態は解除されます。
 カット時の貼り付けでは、Ctrl+VもEnterも一度のみとなります。
 ショートカット一覧も参考にして下さい。

ショートカット.Ctrl+Alt+V(形式を選択して貼り付け)

エクセル入門 >ショートカット > Ctrl + Alt + V(形式を選択して貼り付け)
  Excel2007以降のショートカットです。
 コピーされたセルを選択セル位置に貼り付ける前に、「形式を選択して貼り付け」のダイアログを表示するショートカットです。
 キー: Ctrl + Alt + V Ctrl キーと Alt キーを押した状態で V を押下
 機能: 「形式を選択して貼り付け」 ダイアログ を表示する
 ※事前にコピー( Ctrl+C )の操作をしてある必要があります。
 セルをコピーするショートカットです。キー:Ctrl+C… Ctrlキーを押した状態でCを押下 機能:選択されているセルをコピーする ※コピーされた内容はクリップボードに保存されます。クリップボードとは、一時的にデータを保管する場所の事です。
 このショートカットは「形式を選択して貼り付け」のダイアログを表示するだけです。
 点滅点々で囲まれた状態になっているコピーされたセルを、
 選択されたセル位置に貼り付ける前に「形式を選択して貼り付け」のダイアログを表示します。
 カット時には使用できません。
 ショートカット一覧も参考にして下さい。

ショートカット.Esc(入力の取消)

エクセル入門 >ショートカット > Esc(入力の取消)
 
 セル、数式バーの入力の取消、ダイアログボックス、メッセージウインドウを閉じるショートカットです。
 キー: Esc
 機能:セル、数式バーの入力の取消
  ダイアログボックス、メッセージウインドウを閉じる
 セルへの入力途中で間違いに気づき、最初から入力し直す場合にEsc押下で、入力は取り消されます。
 ダイアログボックスが表示されている状態では「キャンセル」押下と同様となります。
 また、
 メッセージウインドウ(「OK」ボタンのみ)は閉じられます。
  ショートカット一覧 も参考にして下さい。
 Excel作業を効率化するショートカットキーの一覧と、必須ショートカットの詳細解説です。ショートカットは画面や選択状態により変化しますので注意して下さい。
 ファイル…9 ウインドウ…11 シート…8 印刷…3 コピー/貼付…12 検索/置換…6 選択…21 移動…4 挿入/削除…2 元に戻す/繰り返す…4 入力…5 編集…2 書式…24 表示/非表示…7 …

ショートカット.Ctrl+方向キー(終端に移動)

エクセル入門 >ショートカット > Ctrl+方向キー(終端に移動)
 現在の連続データ範囲の先頭行、末尾行、左端列、右端列に移動するショートカットです。
 キー: Ctrl + 方向キー Ctrl キーを押した状態で 方向 キーを押下
 機能:方向キー(↑) で現在の連続データ範囲の先頭行に移動
  方向キー(↓) で現在の連続データ範囲の末尾行に移動
  方向キー(←) で現在の連続データ範囲の左端列に移動
  方向キー(→) で現在の連続データ範囲の右端列に移動
 連続データ範囲とは:
 連続するセルにデータが入力されていてる範囲です。
 セルの見た目が空白でも、数式が入力されていたり、スペースが入力されている場合もデータが入力されていると判定されます。
 現在のセルが連続データ範囲の終端(方向キーの向きの先にデータが無い)または現在のセルが連続データ範囲内にない場合は、次のデータ範囲の先頭に移動します、次のデータ範囲が無い場合は、シートの端まで移動します。
  ショートカット一覧 も参考にして下さい。
 Excel作業を効率化するショートカットキーの一覧と、必須ショートカットの詳細解説です。ショートカットは画面や選択状態により変化しますので注意して下さい。
 ファイル…9 ウインドウ…11 シート…8 印刷…3 コピー/貼付…12 検索/置換…6 選択…21 移動…4 挿入/削除…2 元に戻す/繰り返す…4 入力…5 編集…2 書式…24 表示/非表示…7 …

ショートカット.Ctrl+Shift+方向キー(終端まで選択)

エクセル入門 >ショートカット > Ctrl+Shift+方向キー(終端まで選択)
 現在の連続データ範囲の先頭行、末尾行、左端列、右端列まで選択するショートカットです。
 キー: Ctrl + Shift + 方向キー Ctrl キーと Shift キーを押した状態で 方向 キーを押下
 機能:方向キー(↑) で現在の連続データ範囲の先頭行まで選択
  方向キー(↓) で現在の連続データ範囲の末尾行まで選択
  方向キー(←) で現在の連続データ範囲の左端列まで選択
  方向キー(→) で現在の連続データ範囲の右端列まで選択
 連続データ範囲とは:
 連続するセルにデータが入力されていてる範囲です。
 セルの見た目が空白でも、数式が入力されていたり、スペースが入力されている場合もデータが入力されていると判定されます。
 現在のセルが連続データ範囲の終端(方向キーの向きの先にデータが無い)または現在のセルが連続データ範囲内にない場合は、次のデータ範囲の先頭まで選択します、次のデータ範囲が無い場合は、シートの端まで選択します。
 ショートカット一覧も参考にして下さい。

ショートカット.Shift+方向キー(選択範囲を拡張)

エクセル入門 >ショートカット > Shift+方向キー(選択範囲を拡張)
 現在の選択範囲を上、下、左、右に拡張または縮小するショートカットです。
 キー: Shift + 方向キー Shift キーを押した状態で 方向 キーを押下
 機能:方向キー(↑) で現在の選択範囲を上に拡張または上に縮小
  方向キー(↓) で現在の選択範囲を下に拡張または下に縮小
  方向キー(←) で現在の選択範囲を左に拡張または左に縮小
  方向キー(→) で現在の選択範囲を右に拡張または右に縮小
 アクティブセル(白色で選択されている現在のセル)を起点として、
 選択範囲を拡張または縮小します。
 例えば、
 アクティブセルより下に向けて選択範囲が有る場合、
 方向キー(↓) は、下に選択範囲を拡張します。
 方向キー(↑) は、上に選択範囲を縮小します。
  ショートカット一覧 も参考にして下さい。
 Excel作業を効率化するショートカットキーの一覧と、必須ショートカットの詳細解説です。ショートカットは画面や選択状態により変化しますので注意して下さい。
 ファイル…9 ウインドウ…11 シート…8 印刷…3 コピー/貼付…12 検索/置換…6 選択…21 移動…4 挿入/削除…2 元に戻す/繰り返す…4 入力…5 編集…2 書式…24 表示/非表示…7 …

ショートカット.F2(セルを編集)

エクセル入門 >ショートカット > F2(セルを編集)
 現在のセルの内容の最後にカーソルを配置するショートカットです。
 キー: F2
 機能:現在のセルの内容の最後にカーソルを配置し、セルを編集状態にします。
 セルのダブルクリックと同様です。
 既にセルが編集状態の場合は、
 編集→入力→編集→入力
 と交互に状態が変化します。
  覚えておきたいエクセルの操作:入力・編集 こちらを参考にして下さい。
 まずはしっかり覚えておいてほしいエクセルの操作です。、今回は、入力・編集です。関数を入力する場合、= から入力を始めます。この時、エクセルのウインドウの左下は、このように、入力と表示されます。入力前は、コマンドと表示されている場所です。
  ショートカット一覧 も参考にして下さい。
 Excel作業を効率化するショートカットキーの一覧と、必須ショートカットの詳細解説です。ショートカットは画面や選択状態により変化しますので注意して下さい。
 ファイル…9 ウインドウ…11 シート…8 印刷…3 コピー/貼付…12 検索/置換…6 選択…21 移動…4 挿入/削除…2 元に戻す/繰り返す…4 入力…5 編集…2 書式…24 表示/非表示…7 …

ショートカット.Ctrl+Enter(セルへ一括入力)

エクセル入門 >ショートカット > Ctrl+Enter(セルへ一括入力)
 選択したセル範囲に一括入力するショートカットになります。
 キー: Ctrl + Enter Ctrl キーを押した状態で Enter を押下
 機能: 選択したセル範囲にアクティブセル(現在のセル)と同じ値を入力
 文字列や数値の場合は、全ての選択セルに同一の値が入力されます。
 数式(=で始まる)の場合は、相対参照・絶対参照が有効となり、アクティブセルを他の選択セルに数式をコピーした場合と同様となります。
 これについては、 覚えておきたいエクセルの操作:数式のコピー を参考にして下さい。
 しっかり覚えておいてほしいエクセルの操作です。今回は、数式のコピーです。エクセルでセルをコピーする場合、・セルの全てをコピー ・セルの値のみコピー ・セルの数式のみコピー このあたりが一番多い操作になるでしょう。セルの全てをコピーは、普通のコピーですね、セルの値のみコピーは、定番の値貼り付けになります。
 ショートカット一覧も参考にして下さい。

ショートカット.Alt+Enter(セル内改行)

エクセル入門 >ショートカット > Alt+Enter(セル内改行)
 セル内で改行するショートカットになります。
 キー: Alt + Enter Alt キーを押した状態で Enter を押下
 機能: セル内で改行
 セル内で改行されます。
 これは、セルの書式設定で、「折り返して全体を表示」の状態で複数行に見えている状態とは違います。
 改行コード(LF)が改行位置に挿入されます。
 従って、改行前と後では、文字列としては違う文字列と判断されます。
 ショートカット一覧も参考にして下さい。

ショートカット.Ctrl+1(セルの書式設定)

エクセル入門 >ショートカット > Ctrl+1(セルの書式設定)
 「セルの書式設定」ダイアログを表示するショートカットになります。
 キー: Ctrl + 1 Ctrl キーを押した状態で 1 を押下(テンキーは不可)
 機能: 「セルの書式設定」ダイアログを表示
 選択セルに対する「セルの書式設定」ダイアログが表示されます。
  このショートカットは、
 右クリックから「セルの書式設定」を選択
 Excel2010以降なら、「ホーム」タブ→書式→セルの書式設定
 と同様となります。
 エクセルの操作では、書式設定は頻繁に使われる機能になります。ショートカットでスムーズな操作ができるようにしておきましょう。ショートカット一覧も参考にして下さい。

ショートカット.Alt+SHift+=(オートSUM)

エクセル入門 >ショートカット > Alt+Shift+=(オートSUM)
 ΣマークのアイコンのオートSUMのショートカットになります。
 キー: Alt + Shift + = ALt キーと Shift キーを押した状態で = (-)を押下
 機能: オートSUM(SUM関数)を挿入
 オートSUMでは、エクセルが合計する範囲を自動で選択します。
 単一セルを選択している場合は、選択セルの上または左に連続して数値が入力されている範囲を自動判定します。
 複数セルを選択している場合は、選択範囲の下(縦に選択している場合)または右(横に選択している場合)にSUM関数を挿入します。
 ショートカット一覧も参考にして下さい。

ショートカット.Ctrl+Space(列全体を選択)

エクセル入門 >ショートカット > Ctrl+Space(列全体を選択)
 列全体を選択するショートカットです。。
 キー: Ctrl + Space Ctrl キーを押した状態で Space キーを押下
 機能:列全体を選択
 アクティブセルはそのまで、列全体が選択されます。
 関数入力内においては、
 A:A
 のように、列記号:列記号
 となります。
 ショートカット一覧も参考にして下さい。

ショートカット.Shift+Space(行全体を選択)

エクセル入門 >ショートカット > Shift+Space(行全体を選択)
 行全体を選択するショートカットです。
 キー: Shift + Space Shift キーを押した状態で Space キーを押下
 機能:行全体を選択
 ※IME(日本語入力)がONの場合は、このショートカットは無効です。
  IMEがONの場合は、半角スペース入力のショートカットとなり、それが優先されます。
  
 アクティブセルはそのまで、行全体が選択されます。
 関数入力内においては、
 1:1
 のように、行番号:行番号
 となります。
 ショートカット一覧も参考にして下さい。

ショートカット.Shift+F3(関数の挿入)

エクセル入門 >ショートカット > Shift+F3(関数の挿入)
 関数の挿入(アイコン「fx」)のショートカットです。
 キー: Shift + F3 Shift キーを押した状態で F3 キーを押下
 機能:「関数の挿入」ダイアログボックスまたは、
  「関数の引数」ダイアログボックス(関数パレットとも呼びます)を表示します。
 このショートカットは、関数の挿入(アイコン「fx」)のクリックと同等です。
 未入力のセルでは、「関数の挿入」ダイアログボックスが表示されます。
  =関数名(
 まで入力されている場合は、「関数の引数」ダイアログボックスが表示されます。
  =関数名( → Shift+F3 → 「関数の引数」ダイアログボックス
 関数名が間違っていたり、括弧 ( が未入力の場合は、「関数の挿入」ダイアログボックスが表示されます。
 ショートカット一覧も参考にして下さい。

ショートカット.Ctrl+F(検索)

エクセル入門 >ショートカット > Ctrl+F(検索)
 [検索と置換] ダイアログボックスの [検索] タブを表示するショートカットです。
 キー: Ctrl + F Ctrl キーを押した状態で F キーを押下
 機能:[検索と置換] ダイアログボックスの [検索] タブを表示
 「検索」の使い方については、
  エクセル入門.基本操作.検索
 セル内の文字列やコメントの文字から、特定の文字が使われているセルを検索します。[検索と置換]ダイアログボックスの[検索]タブを使用します。[検索と置換]ダイアログボックスの表示方法 ・ショートカットは、Ctrl+F 全バージョン共通です。
 を参照して下さい。
 ショートカット一覧も参考にして下さい。

ショートカット.Ctrl+H(置換)

エクセル入門 >ショートカット > Ctrl+H(置換)
 [検索と置換] ダイアログボックスの [置換] タブを表示するショートカットです。
 キー: Ctrl + H Ctrl キーを押した状態で H キーを押下
 機能:[検索と置換] ダイアログボックスの [置換] タブを表示
 「置換」の使い方については、
  エクセル入門ー.基本操作.置換
 セル内の文字列やコメントの特定の文字を、別の文字に置換します。[検索と置換]ダイアログボックスの[置換]タブを使用します。[検索と置換]ダイアログボックスの表示方法 ・ショートカットは、Ctrl+H 全バージョン共通です。
 を参照して下さい。
 ショートカット一覧も参考にして下さい。

ショートカット.Ctrl+R(右方向へコピー)

エクセル入門 >ショートカット > Ctrl+R(右方向へコピー)
 選択範囲内で右方向のセルに内容と書式をコピーするショートカットです。
 キー: Ctrl + R Ctrl キーを押した状態で R キーを押下
 機能:選択範囲内で右方向のセルに内容と書式をコピー
 選択セルの左にあるセルを右方向にコピーします。
 つまり、
 左のセルを (Right)にコピーする事になります。
 コピー&ペーストと同じで内容と書式がコピーされます。
 ショートカット一覧も参考にして下さい。

ショートカット.Ctrl+D(下方向へコピー)

エクセル入門 >ショートカット > Ctrl+D(下方向へコピー)
 選択範囲内で下方向のセルに内容と書式をコピーするショートカットです。
 キー: Ctrl + D Ctrl キーを押した状態で D キーを押下
 機能:選択範囲内で下方向のセルに内容と書式をコピー
 選択セルの上にあるセルを下方向にコピーします。
 つまり、
 上のセルを (Down)にコピーする事になります。
 コピー&ペーストと同じで内容と書式がコピーされます。
 ショートカット一覧も参考にして下さい。

ショートカット.F4(直前操作の繰り返し)

エクセル入門 >ショートカット > F4(直前操作の繰り返し)
 直前のコマンドまたは操作を繰り返すショートカットです。
 キー: F4 F4 キーを押下
 機能:直前のコマンドまたは操作を繰り返します
 ・行の挿入・削除
 ・列の挿入削除
 ・セルの書式設定
 ・列幅
 ・行高
 等々の操作をした後に、
 別のセルまたはセル範囲を選択して、
 F4キーの押下で、
 前回の操作と同一操作を繰り返すことが出来ます。
 ショートカット一覧も参考にして下さい。
  セルの編集中
 ショートカットとは違いますが、
 セルの編集中は、絶対参照・相対参照を切り替えます。
 セル参照にカーソルを合わせ
  F4 キー押下することで、$(ドル記号)の付く位置が順次変わります。
  A1 → $A$1 → A$1 → $A1 → A1

基本操作.データの入力

エクセル入門 > 基本操作 > データの入力
 データを入れるべきセルを選択してから、文字・数値・日付を入力します。
  セルの選択
 一つのセルの選択なら、
 マウスでクリック
 または、
 方向キー(カーソルキー、矢印キー)
 で選択します。
 選択されたセルは、太枠で囲まれます。
 この太枠で囲まれたセルを アクティブセル と呼びます。
  データの入力
  文字
 文字はそのまま入力し、ENTERでセルに入力されます。
 日本語入力のIMEを確定するENTER後に再度ENTERが必要です。
  数値
 数値はそのま入力します。
 カンマ(,)を付けて、
 12,345
 と入力すれば、表示形式が自動でカンマ付きになります。
  日付
 年/月/日 … 2013/4/26
 の形式で入力します。
 月/日 … 4/26
 のように入力すると、現在の年度が自動で付加されます。
 ただし、この形式で入力すると、
 4月26日
 と表示されます。
 日付の表示形式については、
  エクセル入門.表示形式.日付
 Excelに事前に組み込まれている、各種の表示形式の使い方です。設定するセルを選択 F2または、クリックから「セルの書式設定」表示形式(一番左のタブ) 分類から目的の表示形式を選択 右上のサンプルを見ながら、その下のオプション設定等を選択・指定する サンプルを確認し、良ければ「OK」選択セルの表示形式が設定されます。
 こちらを参照下さい。
  標準の配置
  文字 詰め
  数値 詰め
  日付 詰め
 となります。
  データ入力済のセルの変更
 そのま入力すると上書きとなります。
 入力済のデータは消去され、新たに入力データに上書きされます。
 間違って入力を開始してしまった場合は、ESCキーでキャンセルできます。
  入力済のデータの一部を変更する場合 は、
  F2 または ダブルクリック セル編集 にしてから変更します。
  日付や数値を文字列として入力
 1/4
 や
 1-2
 と入力すると日付に自動変換されてしまいます。
 もちろん日付として1月4日や1月2日を入れたい場合は問題ありませんが、
 4ページ中の1ページや、項番1-2等の場合は困ります。
 また、
 001
 のように入力しても、1とだけの表示になってしまいます。
 このような問題解決には、以下の2通りがあります。
 ・先頭に、シングルクォーテーション( ' )を付けて入力入力
  '1/4 '1-2 '001
 ・セルの表示形式を文字列にする
 どちらの方法でも、入力した通りに表示されるようになります。

基本操作.複数セルの選択

エクセル入門 > 基本操作 > 複数セルの選択
 複数セルの選択方法は複数あり、
 その操作により所要時間が大きく異なります。
 適切な操作ができると、エクセル操作が速くなります。
  必須ショートカット
 ・Shift + 方向キー … 方向キーの方向へ選択範囲を拡張
 ・Ctrl + Shift + 方向キー … 方向キーの方向へ連続データ範囲を拡張
 ・Ctrl + Space … 列全体の選択
 ・Shift + Space … 行全体の選択
  マウス操作
 ・選択したいセル範囲の、
  開始セルをクリック後、Shiftを押しながら終了セルをクリック
 マウス操作では、ドラッグ操作が主になりますが、
 画面をスクロールしない範囲の選択では、マウスドラッグでも問題ありませんが、画面スクロールが必要な場合は、ショートカット等を使って下さい。

基本操作.検索

エクセル入門 > 基本操作 > 検索
 セル内の文字列やコメントの文字から、特定の文字が使われているセルを検索します。
 [検索と置換]ダイアログボックスの [検索] タブを使用します。
  [検索と置換]ダイアログボックスの表示方法
 ・ショートカットは、
  Ctrl+F
  全バージョン共通です。
 ・Excel2003以前
  メニュー→編集→検索
 ・Excel2007以降
  リボン→ホーム→検索と置換(一番右)→検索
 ※[検索と置換]ダイアログボックスを表示する時点で、
  複数セル(セル範囲)を選択している場合は、
  検索場所がシートなら、選択範囲内の検索となります。
  [検索と置換]ダイアログボックスの使い方
 「検索する文字列」に検索したい字列を入力し、
 「全てを検索」または「次を検索」をクリックします。
 ・すべて検索
  検索する文字列が使用されている全セルを一覧で見る場合に使用する
 ・次を検索
  検索する文字列が使用されているセルを順次確認しながら次々に見ていく場合に使用
 ※「検索する文字列」には、ワイルドカードが使用できます。(後述)
  オプション
 [検索と置換]ダイアログボックスにおいて「オプション」を選択すると、
 検索方法等を指定できるようになります。
 ・書式
  特定の書式が使われているセルを検索します。
 ・検索場所
  シート:シート内から検索します。
  ※[検索と置換]ダイアログボックスを表示する時点で、
  複数セル(セル範囲)を選択している場合は、選択範囲内の検索となります。
  ブック:ブックの全シートから検索します。
 ・検索方向
  行:アクティブセルから行(縦)方向に検索します。
  列:アクティブセルから列(横)方向に検索します。
  いずれの場合も、終端に達した場合は、次の列または次の行に検索が移ります。
 ・検索対象
  数式:数式内の文字と、固定文字として入力されている文字を検索します。
  値:数式の結果としての文字と、固定文字として入力されている文字を検索します。
  コメント:コメント内の文字を検索します。
 ・大文字と小文字を区別する
  チェックを付けた場合:Aとaは区別されます。
  チェックを付けない場合:Aとaは区別されません。
 ・セル内容が完全に同一であるものを検索する
  チェックを付けた場合:セル内容がABCの場合、Aでは検索されません。
  チェックを付けない場合:セル内容がABCの場合、Aで検索されます。
 ・半角と全角を区別する
  チェックを付けた場合:A(全角)とA(半角)は区別されます。
  チェックを付けない場合:A(全角)とA(半角)は区別されません。
  ワイルドカード
 「検索する文字列」には、半角の疑問符(?)または半角のアスタリスク(*)をワイルドカード文字として使用できます。
 疑問符(?)は任意の1文字を表し、
 アスタリスク(*)は任意の文字列(0個または1個以上の文字)を表します。
 *A* → A、○A○、A○、○A、これら全てが対象
 *A → A、○A、これらが対象A* → A、A○、これらが対象
  特殊文字の検索 ・アスタリスク、疑問符、およびチルダ文字 (~) の検索
  その文字の前にチルダ文字を付けます。
  ~? → ? を検索できます。
 ・セル内改行
  「検索する文字列」ボックスで、
  Ctrl+J
  セル内で改行しているセルが検索できます。

基本操作.置換

エクセル入門 > 基本操作 > 置換
 セル内の文字列やコメントの特定の文字を、別の文字に置換します。
 [検索と置換]ダイアログボックスの [置換] タブを使用します。
  [検索と置換]ダイアログボックスの表示方法
 ・ショートカットは、
  Ctrl+H
  全バージョン共通です。
 ・Excel2003以前
  メニュー→編集→置換
 ・Excel2007以降
  リボン→ホーム→検索と置換(一番右)→置換
 ※[検索と置換]ダイアログボックスを表示する時点で、
  複数セル(セル範囲)を選択している場合は、
  検索場所がシートなら、選択範囲内の置換となります。
  [検索と置換]ダイアログボックスの使い方
 「検索する文字列」に検索したい字列の入力と、
 「置換後の文字列」に検索したい字列を入力し、
 「すべて置換」または「置換」をクリックします。
 ・すべて置換
  検索する文字列が使用されている全セルを置換する場合に使用する
 ・置換
  検索する文字列が使用されているセルを順次確認しながら次々に置換する場合に使用
 ※「検索する文字列」には、ワイルドカードが使用できます。(後述)
  オプション
 [検索と置換]ダイアログボックスにおいて「オプション」を選択すると、
 検索方法等を指定できるようになります。
 ・書式
  特定の書式が使われているセルを置換後の書式で置換します。
 ・検索場所
  シート:シート内から検索し置換ます。
  ※[検索と置換]ダイアログボックスを表示する時点で、
  複数セル(セル範囲)を選択している場合は、選択範囲内の置換となります。
  ブック:ブックの全シートから検索し置換します。
 ・検索方向
  行:アクティブセルから行(縦)方向に置換します。
  列:アクティブセルから列(横)方向に置換します。
  いずれの場合も、終端に達した場合は、次の列または次の行に置換が移ります。
 ・検索対象
  数式:数式内の文字と、固定文字として入力されている文字を置換します。
  値:数式の結果としての文字と、固定文字として入力されている文字を置換します。
  コメント:コメント内の文字を置換します。
 ・大文字と小文字を区別する
  チェックを付けた場合:Aとaは区別されます。
  チェックを付けない場合:Aとaは区別されません。
 ・セル内容が完全に同一であるものを検索する
  チェックを付けた場合:セル内容がABCの場合、Aでは置換されません。
  チェックを付けない場合:セル内容がABCの場合、Aで置換されます。
 ・半角と全角を区別する
  チェックを付けた場合:A(全角)とA(半角)は区別されます。
  チェックを付けない場合:A(全角)とA(半角)は区別されません。
  ワイルドカード
 「検索する文字列」には、半角の疑問符(?)または半角のアスタリスク(*)をワイルドカード文字として使用できます。
 疑問符(?)は任意の1文字を表し、
 アスタリスク(*)は任意の文字列(0個または1個以上の文字)を表します。
 *A* → A、○A○、A○、○A、これら全てが対象*A → A、○A、これらが対象A* → A、A○、これらが対象
  特殊文字の置換
 ・アスタリスク、疑問符、およびチルダ文字 (~) の検索
  その文字の前にチルダ文字を付けます。
  ~? → ? を検索できます。
 ・セル内改行
  「検索する文字列」ボックスで、
  Ctrl+J
  セル内で改行しているセルが検索できます。

表示形式.組み込みの表示形式

エクセル入門 > 表示形式> 組み込みの表示形式
 Excelに事前に組み込まれている、各種の表示形式の使い方です。
 設定するセルを選択
 ↓
 F2 または、クリックから「セルの書式設定」
 ↓
 表示形式(一番左のタブ)
 ↓
 分類から目的の表示形式を選択
 ↓
 右上のサンプルを見ながら、
 その下のオプション設定等を選択・指定する
 ↓
 サンプルを確認し、良ければ「OK」
 ↓
 選択セルの表示形式が設定されます。
 ※「標準」とは、特定の書式を設定しない、つまり、何も設定する前の初期状態と同様になります。
  例.数値
 「分類」から「数値」を選択
 「小数点以下の桁数」:小数以下の桁数を指定
 「桁区切り(,)を使用する」:でカンマ区切りを使用する場合はチェック
 「負の数の表示形式」:マイナスの場合の表示形式を一覧から選択
 「OK」で、セルの表示形式が設定されます。

表示形式.ユーザー定義の基礎

エクセル入門 > 表示形式 > ユーザー定義の基礎
 設定するセルを選択↓F2 または、クリックから「セルの書式設定」↓表示形式(一番左のタブ)↓分類から「ユーザー定義」を選択↓「種類」のすぐ下のボックス
 ここで入力する文字列が多種多用なものとなります。以下のページを参考にご覧ください。 Microsoftサポート「Excel のセルの表示形式で [ユーザー定義] に使用できる書式記号について」
 基本として、以下の構造で指定します。 正の数の書式;負の数の書式;ゼロの書式;文字列の書式
 各書式の中に、後で記載している書式文字列を指定します。また、条件や、色を指定することもできます。
書式記号 説明
[黒] 文字色を黒色で表示します。
[青] 文字色を青色で表示します。
[水] 文字色を水色で表示します。
[緑] 文字色を緑色で表示します。
[紫] 文字色を紫色で表示します。
[赤] 文字色を赤色で表示します。
[白] 文字色を白色で表示します。
[黄] 文字色を黄色で表示します。

  [青][>=80]0;[緑][>=50]0;[赤]0 これで、80以上なら青、50以上は緑、それ以外は赤となります。
 以下も参考にしてください。 エクセル基本操作.数値の書式あれこれ
  数値 … 書式文字列
書式記号 表示結果
0 (ゼロ) 数値の桁数が表示形式の 0 の桁数より少ない場合に、表示形式の桁まで 0 が付加されます。
# 入力した数値の桁数が、小数点のいずれの側でも表示形式の # 記号の数より少ない場合に 0 は表示されません。
? 小数点のいずれの側にも有効桁以外の 0 にスペースが挿入されるため、列内で小数点の位置が整列されます。
. (ピリオド) 数値に小数点を表示します。
, (コンマ) 数値に桁区切り記号を表示します。
\ 数値に\(円記号)を表示します。
% 数値を%(百分率)に変換して表示します。

  日付 … 書式文字列
書式記号 表示結果
yy 00~99(西暦の年)
yyyy 1900~9999(西暦の年)
e 1~99(和暦の年)
ee 01~99(和暦の年)
g H(元号のアルファベット)
gg 平(元号の1文字目)
ggg 平成(元号)
m 1~12(月の数字表記)
mm 01~12(月の数字表記)
mmm Jan~Dec(月の短縮英語表記)
mmmm January~December(月の英語表記)
d 1~31(日)
dd 01~31(日)
ddd sun~sat(曜日の短縮英語表記)
dddd Sunday~Satrday(曜日の英語表記)
aaa 日~土(曜日の日本語1文字表記)
aaaa 日曜日~土曜日(曜日の日本語表記)

  時刻 … 書式文字列
書式記号 表示結果
h 先頭に 0 を付けずに数値で時を表示します。
[h]
 24 を超える時の数値で時間を返します。
 
hh 1 桁の場合は先頭に 0 を付けて数値で時を表示します。表示形式に AM または PM が含まれている場合は、12 時間表示で時が表示されます。それ以外の場合は、24 時間表示で表示されます。
m 先頭に 0 を付けずに数値で分を表示します。
[m] 60 を超える分の数値で時間を返します。
mm 1 桁の場合は先頭に 0 を付けて数値で分を表示します。
s 先頭に 0 を付けずに数値で秒を表示します。
[s] 60 を超える秒の数値で時間を返します。
ss 1 桁の場合は先頭に 0 を付けて数値で秒を表示します。

表示形式.0を表示しない

エクセル入門 > 表示形式> 0を表示しない
 数値が0の場合に、0と表示せずに空白にする方法です。
 設定するセルを選択
 ↓
 F2 または、クリックから「セルの書式設定」
 ↓
 表示形式(一番左のタブ)
 ↓
 分類から「ユーザー定義」を選択
 ↓
 「種類」のすぐ下のボックスに
  #,###
 または、
  #
 と入力し、「OK」
 カンマ区切りを使用する場合は、
  #,###
 カンマ区切りを使用しなし場合は、
  #
 ※0を表示しない方法として、Excelのオプションでの設定も可能ですが、使用しない方が良いでしょう。

表示形式.先頭の0を桁数分表示

エクセル入門 > 表示形式> 先頭の0を桁数分表示
 Excelの標準では数値は先頭の0は表示されません、つまり001は1と表示されます、これを001と表示する方法です。
 設定するセルを選択
 ↓
 Ctrl+1 または、右クリックから「セルの書式設定」
 ↓
 表示形式(一番左のタブ)
 ↓
 分類から「ユーザー定義」を選択
 ↓
 「種類」のすぐ下のボックスに
  000 … 表示したい桁数分の0を入力
 と入力し、「OK」
 1と入力した場合に、表示形式により
 00 … 01
 000 … 001
 00000 … 00001
 と表示されます。
  分類で「文字列」を選択する
 これにより、入力したままで表示されるようになります。
 001と入力すれば、001と表示されます。
 ただし、これは数値ではなく、あくまでセルのデータとしては文字列となっています。
 計算等に使用する事は可能ですが、
 IF関数やVLOOKUP等で判定すると、見た目の数値とは違うものとなります。
 文字列としての101と数値としての101は違うものと判定されます。

表示形式.千単位、百万単位

エクセル入門 > 表示形式 > 千単位、百万単位
 数値(特に金額)の場合、千円単位にしたい場合、つまり、123,456は123と表示する方法です。
 設定するセルを選択
 ↓
 Ctrl+1 または、右クリックから「セルの書式設定」
 ↓
 表示形式(一番左のタブ)
 ↓
 分類から「ユーザー定義」を選択
 ↓
 「種類」のすぐ下のボックスに
 千単位なら
  #,###,
 または、
  #,##0,
 百万単位なら
  #,###,,
  または、
  #,##0,,
 と入力し、「OK」
 ※ 千単位、百万単位で四捨五入 されて表示されます。
  #,###,
 の場合は、千未満の数値は空白となりますが、
  #,##0,
 の場合は、千未満の数値は0となります。
 同様に
  #,###,,
 の場合は、百万未満の数値は空白となりますが、
  #,##0,,
 の場合は、百万未満の数値は0となります。
 後ろに単位の文字列を付加する事も出来ます。
  #,###,"千"
 とすると、1234567は、
 1,235千
  #,###,,"百万"
 とすると、1234567は、
 1百万
 のように表示されます。
 めったにありませんが、十億単位で表示する場合は、
 最期のカンマを3つにして
 #,###,,,
 等にします。
 たまに問われることがありますが、
 万単位、億単位での表示形式はありません、別途割り算等で解決して下さい。

表示形式.固定文字を表示する

エクセル入門 > 表示形式 > 固定文字を表示する
 セルに数値・文字を入れた時に固定の文字を前後に自動で表示する方法です。
  固定文字を設定する手順
 設定するセルを選択↓Ctrl+1 または、右クリックから「セルの書式設定」↓表示形式(一番左のタブ)↓分類から「ユーザー定義」を選択↓「種類」のすぐ下のボックス
  上図で「G/標準」と入っているボックスに、以下で説明する文字列を指定します。
  入力値が数値の場合に固定文字を表示
 入力値が 数値 なら
  #"文字" または、 0"文字"
  カンマ区切り が必要な場合は、
  #,###"文字" または、 #,##0"文字"
  #,###"円" とすると、12345は、12,345円と表示されます。
  入力値が文字の場合に固定文字を表示
 入力値が 文字 なら
  @"文字" と入力し、「OK」
  @" 御中" とすると、「○○会社」は、○○会社 御中と表示されます。

表示形式.日付

エクセル入門 > 表示形式 > 日付
 日付は多くの指定書式があり、いろいろな表示形式を指定できます。
 設定するセルを選択
 ↓
 Ctrl+1 または、右クリックから「セルの書式設定」
 ↓
 表示形式(一番左のタブ)
 ↓
 分類から「ユーザー定義」を選択
 ↓
 「種類」のすぐ下のボックスに
 以下のいずれかを入力し「OK」
指定書式 表示結果
yy/m/d 13/4/8
yyyy/m/d 2013/4/8
yyyy/mm/dd 2013/04/08
yyyy"年"m"月"d"日" 2013年4月8日
yyyy"年"mm"月"dd"日" 2013年04月08日
m"月"d"日"(aaa) 4月8日(月)
m"月"d"日"(aaaa) 4月8日(月曜日)
ge.m.d H25.4.8
gee.mm.dd H25.04.08
ggge"年"m"月"d"日" 平成25年4月8日

  記号の意味
書式記号 表示結果
yy 00~99(西暦の年)
yyyy 1900~9999(西暦の年)
e 1~99(和暦の年)
ee 01~99(和暦の年)
g H(元号のアルファベット)
gg 平(元号の1文字目)
ggg 平成(元号)
m 1~12(月の数字表記)
mm 01~12(月の数字表記)
mmm Jan~Dec(月の短縮英語表記)
mmmm January~December(月の英語表記)
d 1~31(日)
dd 01~31(日)
ddd sun~sat(曜日の短縮英語表記)
dddd Sunday~Satrday(曜日の英語表記)
aaa 日~土(曜日の日本語1文字表記)
aaaa 日曜日~土曜日(曜日の日本語表記)

表示形式.24時間を超える時間

エクセル入門 > 表示形式 > 24時間を超える時間
 Excelの標準では、時刻は24以上は表示されません、これを表示する方法です。
 設定するセルを選択
 ↓
 Ctrl+1 または、右クリックから「セルの書式設定」
 ↓
 表示形式(一番左のタブ)
 ↓
 分類から「ユーザー定義」を選択
 ↓
 「種類」のすぐ下のボックスに
  [h]:mm
 と入力し「OK」
 エクセルの標準では時刻・時間を入力すると、
 自動で、
  h:mm
 の表示書式が設定されます。
 この書式では、時間は、0~23で表示されます。
 24時間以上の時間は、1日(24時間)単位の端数時間のみ表示されます。
 これは、表示のみであり、内部データとしては正しい数値が持たれています。
 つまり、○日○時○分の○日が表示されていない状態です。
 そこで、
  [h]:mm
 とすることで、24時間以上の時間が表示されるようになります。
 
 あまり使いませんが、
 60分を超える分を表示する場合は、
  [m]:s
 とします。
 この場合、: s は必須となります。
  m は年月日の月でも m なので、これを区別し、時間として認識させるためには、
  hの後ろ、または、sの前 に使う必要があります。

セルの書式設定.折り返して全体を表示

エクセル入門 > セルの書式設定 > 折り返して全体を表示
 セルの横幅に入りきらない文字を、折り返して全体を表示する方法です。
 設定するセルを選択
 ↓
 Ctrl+1 または、右クリックから「セルの書式設定」
 ↓
 配置(左から2番目のタブ)
 ↓
 文字の制御の
 「折り返して全体を表示する」にチェックを付ける
 ↓
 「OK」
 これで、セルの列幅内で、折り返して全体が表示されます。
 まず、
 セルの列幅を超えて文字が入力されている場合、
 隣のセルが未入力の場合は、隣のセルにかぶさって表示されます。
 隣のセルにデータが入力されている場合は、セル幅の位置で文字が切れてしまいます。
 「折り返して全体を表示する」にした場合、
 全ての文字が表示されるように、セル幅を超える文字はセル内で改行されて表示されます。
 複数行での表示になるので、自動的に行の高さも調節されます。
 これは、
 Alt+Enter
 でセル内改行した場合とは異なります。
 単に「折り返して全体を表示する」として複数行に表示されている場合、列幅の変更で、折り返し位置は変わってきますが、
 Alt+Enterでのセル内改行では、改行位置は変更されません。
 これは、Alt+Enterでのセル内改行が改行コードをその位置に追加しているのに対し、
 「折り返して全体を表示する」は、見た目の表示が変更されているだけで、セル内のデータは変更されていないからです。
 ※セル内改行すると、自動的に「折り返して全体を表示する」にチェックが付きます。

セルの書式設定.縮小して全体を表示

エクセル入門 > セルの書式設定 > 縮小して全体を表示
 セルの横幅に入りきらない文字を、縮小して全体を表示する方法です。
 設定するセルを選択
 ↓
 Ctrl+1 または、右クリックから「セルの書式設定」
 ↓
 配置(左から2番目のタブ)
 ↓
 文字の制御の
 「縮小して全体を表示する」にチェックを付ける
 ↓
 「OK」
 これで、セルの列幅内で表示可能なフォントサイズ(文字の大きさ)になります。
 まず、
 セルの列幅を超えて文字が入力されている場合、
 隣のセルが未入力の場合は、隣のセルにかぶさって表示されます。
 隣のセルにデータが入力されている場合は、セル幅の位置で文字が切れてしまいます。
 数値が列幅を超える場合は、指数表示(1.234E+12等)または####と表示されてしまいます。
 「縮小して全体を表示する」にした場合、
 全ての文字・数値が表示されるように、自動的にフォントサイズ(文字の大きさ)が変更されて表示されます。
 ただし、セルのフォントサイズ自体が変更されるわけではなく、現在の入力データに合わせて表示が変更されているだけです。
 また、列幅を広げても拡大表示されることはありません。
 ※数値の場合は、一定桁数を超えると、列幅やフォントサイズに関係なく指数表示となってしまいます。

セルの書式設定.選択範囲内で中央

エクセル入門 > セルの書式設定 > 選択範囲内で中央
 セルを結合することなく、指定セル範囲のなかで中央に表示する方法です。
 設定するセルを選択
 ↓
 Ctrl+1 または、右クリックから「セルの書式設定」
 ↓
 文字の配置
 配置(左から2番目のタブ)
 ↓
 横位置の
 「選択範囲内で中央」を選択
 ↓
 「OK」
 これで、選択セルの一番左のセルの文字・数値が、選択セル範囲の中央に表示されます。
 文字・数値の入力は、「選択範囲内で中央」を設定した一番左のセルに入力して下さい。
 途中のセルに入力した場合は、そこから右側の範囲内で中央表示されます。
 見た目は、「セルを結合して中央揃え」と同様となりますが、これとは意味合いが異なります。
 セルの結合では、文字通り1つのセルとなってしまいますが、
 「選択範囲内で中央」では、一つ一つのセルは独立したセルのままです。
 従って、各セルを別々の色で塗りつぶし等は有効となります。
 フォントの設定は、文字・数値が入力されているセルの書式設定に依存します。

セルの書式設定.均等割り付け

エクセル入門 > セルの書式設定 > 均等割り付け
 セル内において、文字を均等に割り付けて表示する方法です。
 設定するセルを選択
 ↓
 Ctrl+1 または、右クリックから「セルの書式設定」
 ↓
 文字の配置
 配置(左から2番目のタブ)
 ↓
 横位置の
 「均等割り付け(インデント)」を選択
 ※インデント:セル内の左右に一定の空白をとる場合に指定します。
 ↓
 「OK」
 ※均等割り付けは、全角文字に対してのみ有効です。
  半角文字は、均等割り付けされません。
  半角文字は、中央揃えで表示されます。
 これで、セル幅いっぱいに、文字が広がって表示されます。
 インデントについて
 エクセルのインデントは、間隔が広すぎると感じます。
 (もちろん好みによります、私はそう感じると言う事です)
 残念ながら、このインデント幅は変更できません。

入力規則.整数・小数点数

エクセル入門 > 入力規則 > 入力規則.整数・小数点数
 整数、または、小数点数のみ入力出来るようにセルに入力規則を設定します。
 設定するセルを選択
 ↓
 データ
 ↓
 データの入力規則
 ↓
 設定タブ
 ↓
 入力値の種類のドロップダウンで、・整数または・小数点数
 ↓
 データのドロップダウンで、・次の値の間・次の値の間以外・次の値に等しい・次の値に等しくない・次の値より大きい・次の値より小さい・次の値以上・次の値以下この中から選択
 ↓
 最小値、最大値を入力※データの選択次第で、 最小値と最大値の両方を入力 最小値のみ入力 最大値のみ入力 と分かれます。
 ↓OK、これで完了。
 ※入力値の種類
 整数を選択すれば、整数のみ、小数点数を選択すれば、整数と小数点を含んだ数値が入力可能となります。
 ※コピー&ペーストで値貼り付けした場合には、入力規則の制限にかかわらず入力出来てしまいます。

入力規則.リスト

エクセル入門 > 入力規則 > 入力規則.リスト
 セルにドロップダウンリストが表示されるようにセルに入力規則を設定します。
 設定するセルを選択
 ↓
 データ
 ↓
 データの入力規則
 ↓
 設定タブ
 ↓
 入力値の種類のドロップダウンで、・リスト↓
 元の値・半角カンマ(,)でリストを区切って入力・セル範囲をマウスドラッグで選択・半角イコール(=)に続けて名前定義の名前を入力いずれかの操作を行う。
 ↓OK、これで完了。
 ※元の値
 ・半角カンマ(,)でリストを区切って入力
 鈴木,佐藤,田中このように必ず半角カンマ(,)で区切ってください。
 ・セル範囲をマウスドラッグで選択
 2003以前では、他のシートは選択できません。2003以前で他のシートのリストを使う場合は、そのリスト範囲に名前定義して下さい。
 ・半角イコール(=)に続けて名前定義の名前を入力
 F3で「名前の貼り付け」ダイアログが表示されます。手入力する場合は、半角イコール(=)に続けて名前を入力します。
 データの増減に合わせて、自動的にリスト範囲が変更されるようにするには、
  入力規則のリストを、追加・削除に自動対応で作成
 一覧リストを使用して、「入力規則」の「リスト」を作成し、さらに、一覧リストへの追加・削除に自動対応させるものです。シート「リスト」の部署を使用して、シート「入力」に入力規則のリストを範囲可変で作成します。名前を定義します。
 こちらを参照して下さい。
 ※コピー&ペーストで値貼り付けした場合には、入力規則の制限にかかわらず入力出来てしまいます。

入力規則.日付・時刻

エクセル入門 > 入力規則 > 入力規則.日付・時刻
 日付、または、時刻のみ入力出来るようにセルに入力規則を設定します。
 設定するセルを選択
 ↓
 データ
 ↓
 データの入力規則
 ↓
 設定タブ
 ↓
 入力値の種類のドロップダウンで、・日付または・時刻
 ↓
 データのドロップダウンで、・次の値の間・次の値の間以外・次の値に等しい・次の値に等しくない・次の値より大きい・次の値より小さい・次の値以上・次の値以下この中から選択
 ↓
 最小値、最大値を入力※データの選択次第で、 最小値と最大値の両方を入力 最小値のみ入力 最大値のみ入力 と分かれます。
 ↓OK、これで完了。
 ※入力値の種類
 日付を選択すれば、日付のみ、時刻を選択すれば、時刻のみ入力可能となります。
 ※コピー&ペーストで値貼り付けした場合には、入力規則の制限にかかわらず入力出来てしまいます。

入力規則.文字列の長さ指定

エクセル入門 > 入力規則 > 文字列の長さ指定
 入力文字列の長さを制限するようにセルに入力規則を設定します。
 設定するセルを選択
 ↓
 データ
 ↓
 データの入力規則
 ↓
 設定タブ
 ↓
 入力値の種類のドロップダウンで、・文字列(長さ指定)
 ↓
 データのドロップダウンで、・次の値の間・次の値の間以外・次の値に等しい・次の値に等しくない・次の値より大きい・次の値より小さい・次の値以上・次の値以下この中から選択
 ↓
 最小値、最大値を入力※データの選択次第で、 最小値と最大値の両方を入力 最小値のみ入力 最大値のみ入力 と分かれます。
 ↓OK、これで完了。
 ※空白を無視する
 「空白を無視する」のチェックは初期としてチェックが付いています。「データ」において、1以上としても、この「空白を無視する」にチェックが 付いている場合は、長さ0の文字列(数式バーで、何も入力していない状態)を入れる事が出来てしまいます。従って、「データ」で1以上、「空白を無視す る」のチェックを外すことで、長さ0の文字列が入れられなくなります。ただし、入力済の文字を「Delete」キーで消すことは出来てしまいます。
 ※コピー&ペーストで値貼り付けした場合には、入力規則の制限にかかわらず入力出来てしまいます。

入力規則.重複を許可しない

エクセル入門 > 入力規則 > 入力規則.重複を許可しない
 既に入力済の値と同一の値は入力できないようにセルに入力規則を設定します。
 以下ではAにおいて、重複を許可しないようにします。
 A列全体を選択
 ↓
 データ
 ↓
 データの入力規則
 ↓
 設定タブ
 ↓
 入力値の種類のドロップダウンで、・ユーザー設定
 ↓
 数式で、 =COUNTIF(A:A,A1)=1
 ↓OK、これで完了。
 ※数式
 A1セルがアクティブセルとなっているので、A1セルに対する数式として入力します。 =COUNTIF(A:A,A1)=1 これは、A列において、アクティブセル(A1)のセル値と同一のセルが1つのだけの場合にOKとなります。結果として、重複している場合は、この値が2となり、入力できなくなります。
 ※コピー&ペーストで値貼り付けした場合には、入力規則の制限にかかわらず入力出来てしまいます。

入力規則.日本語入力

エクセル入門 > 入力規則 > 日本語入力
 セルを選択した時、日本語入力(IME)の状態を自動的に切り替えるようにセルに入力規則を設定します。
 設定するセルを選択
 ↓
 日本語入力
 ↓
 日本語入力で、・コントロールなし・オン・オフ(英語モード)・無効・ひらがな・全角カタカナ・半角カタカナ・全角英数字・半角英数字この中から選択↓OK、これで完了。
 ※日本語入力
 設定したセルを選択した直後の初期状態として、日本語入力(IME)の設定が切り替わります。従って、 手動にて日本語入力(IME)を切り替える事が可能です。 ただし、 「無効」を選択した場合は、手動にて日本語入力(IME)をONにする事は出来なくなります。
 ※コピー&ペーストで値貼り付けした場合には、入力規則の制限にかかわらず入力出来てしまいます。

Excelワークシート関数一覧

Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。
 Excel2007までの関数です。
 2010以降追加の関数一覧
  ワークシート関数の一覧(2010以降)
 Excelワークシート関数の一覧と解説です。Excel2010以降に追加された関数一覧になります。2007までのワークシート関数一覧 ワークシート関数の一覧 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 Excel2010で追加されたワークシート関数 Excel2013で追加されたワークシート関数 関数名 種類と説明 …
 引数、関数構文については
  Excelシートの複雑な計算式を解析するVBAの関数構文
  文字列関数… 27
  日付と時刻の関数… 21
  情報関数… 17
  論理関数… 7
  検索/行列関数… 18
  数学/三角関数… 64
  統計関数… 83
  財務関数… 53
  エンジニアリング関数… 39
  データベース関数… 12
  アドイン/オートメーション… 2
  キューブ… 7

 文字列関数
ASC 全角 (2 バイト) の英数カナ文字を半角 (1 バイト) の文字に変換します
BAHTTEXT 数値を四捨五入し、バーツ書式を設定した文字列に変換します
CHAR 数値を ASCII または JIS コード番号と見なし、対応する文字を返します
CLEAN 文字列から印刷できない文字を削除します
CODE 文字列の先頭文字に対応する ASCII または JIS コードを返します
CONCATENATE 複数の文字列を結合して 1 つの文字列にまとめます
DOLLAR、YEN 数値を四捨五入し、通貨書式を設定した文字列に変換します。DOLLAR 関数では、ドル ($) 通貨書式が設定されます。YEN 関数では、円 (?) 通貨書式が設定されます
EXACT 2 つの文字列が等しいかどうかを判定します
FIND , FINDB 指定された文字列を他の文字列の中で検索します。大文字と小文字は区別されます
FIXED 数値を四捨五入し、書式設定した文字列に変換します
JIS 文字列内の半角 (1 バイト) の英数カナ文字を全角 (2 バイト) の文字に変換します
LEFT , LEFTB 文字列の先頭 (左端) から指定された文字数の文字を返します
LEN , LENB 文字列に含まれる文字数を返します
LOWER 文字列に含まれる英字をすべて小文字に変換します
MID , MIDB 文字列の任意の位置から指定された文字数の文字を返します
PHONETIC 文字列からふりがなを抽出します
PROPER 文字列に含まれる英単語の先頭文字だけを大文字に変換します
REPLACE , REPLACEB 文字列中の指定された数の文字を他の文字に置き換えます
REPT 文字列を指定された回数だけ繰り返して表示します
RIGHT , RIGHTB 文字列の末尾 (右端) から指定された文字数の文字を返します
SEARCH , SEARCHB 指定された文字列を他の文字列の中で検索します。大文字と小文字は区別されません
SUBSTITUTE 文字列中の指定された文字を他の文字に置き換えます
T 引数を文字列に変換します
TEXT 数値を書式設定した文字列に変換します
TRIM 文字列から余分なスペースを削除します
UPPER 文字列に含まれる英字をすべて大文字に変換します
VALUE 文字列を数値に変換します

 日付と時刻の関数
DATE 指定された日付に対応するシリアル値を返します
DATEVALUE 日付を表す文字列をシリアル値に変換します
DAY シリアル値を日付に変換します
DAYS360 1 年を 360 日 (30 日 x 12) として、支払いの計算などに使用される2つの日付の間の日数を返します
EDATE 開始日から起算して、指定した月数だけ前または後の日付に対応するシリアル値を返します
EOMONTH 開始日から起算して、指定した月数だけ前または後の月の最終日に対応するシリアル値を返します
HOUR シリアル値を時刻に変換します
MINUTE シリアル値を時刻の分に変換します
MONTH シリアル値を月に変換します
NETWORKDAYS 開始日と終了日を指定して、その期間内の稼動日の日数を返します
NOW 現在の日付と時刻に対応するシリアル値を返します
SECOND シリアル値を時刻の秒に変換します
TIME 指定した時刻に対応するシリアル値を返します
TIMEVALUE 時刻を表す文字列をシリアル値に変換します
TODAY 現在の日付に対応するシリアル値を返します
WEEKDAY シリアル値を曜日に変換します
WEEKNUM シリアル値をその年の何週目に当たるかを示す値に変換します
WORKDAY 開始日から起算して、指定した稼動日数だけ前または後の日付に対応するシリアル値を返します
YEAR シリアル値を年に変換します
YEARFRAC 開始日と終了日を指定して、その間の期間が 1 年間に対して占める割合を返します
DATEDIF 2つの日付の間の日数、月数、または年数を計算します。

 情報関数
CELL セルの書式、位置、内容についての情報を返します
ERROR.TYPE エラーの種類に対応する数値を返します
INFO 現在の操作環境についての情報を返します
ISBLANK 対象が空白セルを参照するときに TRUE を返します
ISERR 対象が #N/A 以外のエラー値のときに TRUE を返します
ISERROR 対象が任意のエラー値のときに TRUE を返します
ISEVEN 数値が偶数のときに TRUE を返します
ISLOGICAL 対象が論理値のときに TRUE を返します
ISNA 対象がエラー値 #N/A のときに TRUE を返します
ISNONTEXT 対象が文字列以外のときに TRUE を返します
ISNUMBER 対象が数値のときに TRUE を返します
ISODD 数値が奇数のときに TRUE を返します
ISREF 対象がセル参照のときに TRUE を返します
ISTEXT 対象が文字列のときに TRUE を返します
N 値を数値に変換します
NA エラー値 #N/A を返します
TYPE データ型を表す数値を返します

 論理関数
AND すべての引数が TRUE のときに TRUE を返します
FALSE 論理値 FALSE を返します
IF 値または数式が条件を満たしているかどうかを判定します
IFERROR 数式がエラーとして評価される場合は指定の値を、それ以外の場合は数式の結果を返します。
NOT 引数の論理値 (TRUE または FALSE) を逆にして返します。
OR いずれかの引数が TRUE のときに TRUE を返します
TRUE 論理値 TRUE を返します

 検索/行列関数
ADDRESS ワークシート上のセル参照を文字列として返します
AREAS 指定された範囲に含まれる領域の個数を返します
CHOOSE 引数リストの値の中から特定の値を 1 つ選択します
COLUMN セル参照の列番号を返します
COLUMNS セル参照の列数を返します
GETPIVOTDATA ピボットテーブル レポートに格納されているデータを返します
HLOOKUP 配列の上端行で特定の値を検索し、対応するセルの値を返します
HYPERLINK ネットワークサーバー、イントラネット、またはインターネット上に格納されているドキュメントを開くために、ショートカットまたはジャンプを作成します
INDEX セル参照または配列から、指定されたセルの参照または値を返します
INDIRECT 参照文字列によって指定されるセルに入力されている文字列を介して、間接的にセルを指定します
LOOKUP ベクトル (1 行または 1 列で構成されるセル範囲) または配列を検索し、対応する値を返します
MATCH 照合の型に従って参照または配列に含まれる値を検索し、検査値と一致する要素の相対的な位置を数値で返します
OFFSET 指定された行数と列数だけシフトした位置にあるセルまたはセル範囲への参照 (オフセット参照) を返します
ROW セル参照の行番号を返します
ROWS セル参照の行数を返します
RTD COM オートメーション?(オートメーション:あるアプリケーションまたはツールから別のアプリケーションのオブジェクトを操作できる機能 (旧 OLE オートメーション)。オートメーションはコンポーネント オブジェクト モデル (COM) の機能の 1 つで、業界標準となっています。)に対応するプログラムからリアルタイムのデータを取得します
TRANSPOSE 配列で指定された範囲のデータの行列変換を行います
VLOOKUP 配列の左端列で特定の値を検索し、対応するセルの値を返します

 数学/三角関数
ABS 数値の絶対値を返します
ACOS 数値のアークコサインを返します
ACOSH 数値の双曲線逆余弦 (ハイパーボリック コサインの逆関数) を返します
AGGREGATE リストまたはデータベースの総計を返します。
ASIN 数値のアークサインを返します
ASINH 数値の双曲線逆正弦 (ハイパーボリック サインの逆関数) を返します
ATAN 数値のアークタンジェントを返します
ATAN2 指定された x-y 座標のアークタンジェントを返します
ATANH 数値の双曲線逆正接 (ハイパーボリック タンジェントの逆関数) を返します
CEILING 指定された基準値の倍数のうち、最も近い値に数値を切り上げます
CEILING.PRECISE 指定された基準値の倍数のうち、最も近い値に数値を切り上げます。数値は正負に関係なく切り上げられます。
COMBIN 指定された個数を選択するときの組み合わせの数を返します
COS 指定された角度のコサインを返します
COSH 数値の双曲線余弦 (ハイパーボリック コサイン) を返します
DEGREES ラジアンを度に変換します
EVEN 指定された数値を最も近い偶数に切り上げた値を返します
EXP e を底とする数値のべき乗を返します
FACT 数値の階乗を返します
FACTDOUBLE 数値の二重階乗を返します
FLOOR 指定された基準値の倍数のうち、最も近い値に数値を切り捨てます
FLOOR.PRECISE 指定された基準値の倍数のうち、最も近い値に数値を切り上げます。数値は正負に関係なく切り上げられます。
GCD 最大公約数を返します
INT 指定された数値を最も近い整数に切り捨てます
LCM 最小公倍数を返します
LN 数値の自然対数を返します
LOG 指定された数を底とする数値の対数を返します
LOG10 10 を底とする数値の対数 (常用対数) を返します
MDETERM 配列の行列式を返します
MINVERSE 行列の逆行列を返します
MMULT 2 つの配列の行列積を返します
MOD 数値を除算したときの剰余を返します
MROUND 指定された値の倍数になるように、数値を切り上げまたは切り捨てて丸めた数値を返します
MULTINOMIAL 指定された複数の数値の多項係数を返します
ODD 指定された数値を最も近い奇数に切り上げた値を返します
PI 円周率πを返します
POWER 数値のべき乗を返します
PRODUCT 引数リストの積を返します
QUOTIENT 除算の商の整数部を返します。商の余り (小数部) を切り捨てます
RADIANS 度をラジアンに変換します
RAND 0 以上 1 未満の乱数を返します
RANDBETWEEN 指定された数値の範囲内の乱数を返します
ROMAN アラビア数字を、ローマ数字を表す文字列に変換します
ROUND 数値を四捨五入して指定された桁数にします
ROUNDDOWN 数値を切り捨てて指定された桁数にします
ROUNDUP 数値を切り上げて指定された桁数にします
SERIESSUM 数式で定義されるべき級数を返します
SIGN 数値の正負を調べます
SIN 指定された角度のサインを返します
SINH 数値の双曲線正弦 (ハイパーボリック サイン) を返します
SQRT 正の平方根を返します
SQRTPI (数値 *π) の平方根を返します
SUBTOTAL リストまたはデータベースの集計値を返します
SUM 引数を合計します
SUMIF 指定された検索条件に一致するセルの値を合計します
SUMIFS セル範囲内で、複数の検索条件を満たすセルの値を合計します。
SUMPRODUCT 指定された配列の対応する要素の積の合計を返します
SUMSQ 引数の 2 乗の和 (平方和) を返します
SUMX2MY2 2 つの配列で対応する配列要素の平方差を合計します
SUMX2PY2 2 つの配列で対応する配列要素の平方和を合計します
SUMXMY2 2 つの配列で対応する配列要素の差を 2 乗して合計します
TAN 指定された角度のタンジェントを返します
TANH 数値の双曲線正接 (ハイパーボリック タンジェント) を返します
TRUNC 数値の小数部を切り捨てて、整数または指定された桁数にします

 統計関数
AVEDEV データ全体の平均値に対するそれぞれのデータの絶対偏差の平均を返します
AVERAGE 引数の平均値を返します
AVERAGEA 数値、文字列、および論理値を含む引数の平均値を返します
AVERAGEIF 範囲内の検索条件に一致するすべてのセルの平均値 (算術平均) を返します。
AVERAGEIFS 複数の検索条件に一致するすべてのセルの平均値 (算術平均) を返します。
BETADIST β分布の分布関数の値を返します
BETAINV β分布の分布関数の逆関数の値を返します
BINOMDIST 二項分布の確率関数の値を返します
CHIDIST カイ 2 乗分布の片側確率の値を返します
CHIINV カイ 2 乗分布の片側確率の逆関数の値を返します
CHITEST カイ 2 乗 (χ2) 検定を行います
CONFIDENCE 母集団に対する信頼区間を返します
CORREL 2 つの配列データの相関係数を返します
COUNT 引数リストの各項目に含まれる数値の個数を返します
COUNTA 引数リストの各項目に含まれるデータの個数を返します
COUNTBLANK 指定された範囲に含まれる空白セルの個数を返します
COUNTIF 指定された範囲に含まれるセルのうち、検索条件に一致するセルの個数を返します
COUNTIFS 指定された範囲に含まれるセルのうち、複数の検索条件に一致するセルの個数を返します。
COVAR 共分散を返します。共分散とは、2 組の対応するデータ間での標準偏差の積の平均値です
CRITBINOM 累積二項分布の値が基準値以上になるような最小の値を返します
DEVSQ 標本の平均値に対する各データの偏差の平方和を返します
EXPONDIST 指数分布関数を返します
FDIST F 分布の確率関数の値を返します
FINV F 分布の確率関数の逆関数の値を返します
FISHER フィッシャー変換の値を返します
FISHERINV フィッシャー変換の逆関数の値を返します
FORECAST 既知の値を使用し、将来の値を予測します
FREQUENCY 頻度分布を縦方向の数値の配列として返します
FTEST F 検定の結果を返します
GAMMADIST ガンマ分布関数の値を返します
GAMMAINV ガンマ分布の累積分布関数の逆関数の値を返します
GAMMALN ガンマ関数 Γ(x) の値の自然対数を返します
GEOMEAN 相乗平均を返します
GROWTH 指数曲線から予測される値を返します
HARMEAN 調和平均を返します
HYPGEOMDIST 超幾何分布関数の値を返します
INTERCEPT 線形回帰直線の切片の値を返します
KURT 指定されたデータの尖度を返します
LARGE 指定されたデータの中で k 番目に大きなデータを返します
LINEST 回帰直線の係数の値を配列で返します
LOGEST 回帰指数曲線の係数の値を配列で返します
LOGINV 対数正規分布の累積分布関数の逆関数の値を返します
LOGNORMDIST 対数正規分布の累積分布関数の値を返します
MAX 引数リストに含まれる最大の数値を返します
MAXA 数値、文字列、および論理値を含む引数リストから最大の数値を返します
MEDIAN 引数リストに含まれる数値のメジアン (中央値) を返します
MIN 引数リストに含まれる最小の数値を返します
MINA 数値、文字列、および論理値を含む引数リストから最小の数値を返します
MODE 最も頻繁に出現する値 (最頻値) を返します
NEGBINOMDIST 負の二項分布の確率関数の値を返します
NORMDIST 正規分布の累積分布関数の値を返します
NORMINV 正規分布の累積分布関数の逆関数の値を返します
NORMSDIST 標準正規分布の累積分布関数の値を返します
NORMSINV 標準正規分布の累積分布関数の逆関数の値を返します
PEARSON ピアソンの積率相関係数 r の値を返します
PERCENTILE 配列のデータの中で、百分位に当たる値を返します
PERCENTRANK データの中で、百分率に基づく順位を返します
PERMUT 与えられた標本数から指定した個数を選択する場合の順列を返します
POISSON ポアソン確率の値を返します
PROB 指定した範囲に含まれる値が上限と下限との間に収まる確率を返します
QUARTILE 配列に含まれるデータから四分位数を抽出します
RANK 数値のリストの中で、指定した数値の序列を返します
RSQ ピアソンの積率相関係数の 2 乗値を返します
SKEW 分布の歪度を返します
SLOPE 回帰直線の傾きを返します
SMALL 指定されたデータの中で、k 番目に小さな値を返します
STANDARDIZE 正規化された値を返します
STDEV 引数を正規母集団の標本と見なし、標本に基づいて母集団の標準偏差の推定値を返します
STDEVA 数値、文字列、および論理値を含む引数を正規母集団の標本と見なし、母集団の標準偏差の推定値を返します
STDEVP 引数を母集団全体と見なし、母集団の標準偏差を返します
STDEVPA 数値、文字列、および論理値を含む引数を母集団全体と見なし、母集団の標準偏差を返します
STEYX 回帰直線上の予測値の標準誤差を返します
TDIST スチューデントの t 分布の値を返します
TINV スチューデントの t 分布の逆関数の値を返します
TREND 回帰直線による予測値を配列で返します
TRIMMEAN データの中間項の平均を返します
TTEST スチューデントの t 分布に従う確率を返します
VAR 引数を正規母集団の標本と見なし、標本に基づいて母集団の分散の推定値 (不偏分散) を返します
VARA 数値、文字列、および論理値を含む引数を正規母集団の標本と見なし、標本に基づいて母集団の分散の推定値 (不偏分散)を返します
VARP 引数を母集団全体と見なし、母集団の分散 (標本分散) を返します
VARPA 数値、文字列、および論理値を含む引数を母集団全体と見なし、母集団の分散 (標本分散) を返します
WEIBULL ワイブル分布の値を返します
ZTEST z 検定の片側 P 値を返します

 財務関数
ACCRINT 定期的に利息が支払われる証券の未収利息額を返します
ACCRINTM 満期日に利息が支払われる証券の未収利息額を返します
AMORDEGRC 減価償却係数を使用して、各会計期における減価償却費を返します
AMORLINC 各会計期における減価償却費を返します
COUPDAYBS 利払期間の第 1 日目から受渡日までの日数を返します
COUPDAYS 受渡日を含む利払期間内の日数を返します
COUPDAYSNC 受渡日から次の利払日までの日数を返します
COUPNCD 受領日後の次の利息支払日を返します
COUPNUM 受領日と満期日の間に利息が支払われる回数を返します
COUPPCD 受領日の直前の利息支払日を返します
CUMIPMT 指定した期間に、貸付金に対して支払われる利息の累計を返します
CUMPRINC 指定した期間に、貸付金に対して支払われる元金の累計を返します
DB 定率法 (Fixed-declining Balance Method)を使用して、特定の期における資産の減価償却費を返します
DDB 倍額定率法 (Double-declining Balance Method)を使用して、特定の期における資産の減価償却費を返します
DISC 証券に対する割引率を返します
DOLLARDE 分数で表されたドル単位の価格を、小数表示に変換します
DOLLARFR 小数で表されたドル価格を、分数表示に変換します
DURATION 定期的に利子が支払われる証券の年間のマコーレー デュレーションを返します
EFFECT 実効年利率を返します
FV 投資の将来価値を返します
FVSCHEDULE 投資期間内の一連の金利を複利計算することにより、初期投資の元金の将来価値を返します
INTRATE 全額投資された証券の利率を返します
IPMT 投資期間内の指定された期に支払われる金利を返します
IRR 一連の定期的なキャッシュ フローに対する内部利益率を返します
ISPMT 投資期間内の指定された期に支払われる金利を返します
MDURATION 額面価格を $100 と仮定して、証券に対する修正マコーレー デュレーションを返します
MIRR 定期的に発生する一連の支払い (負の値) と収益 (正の値) に基づいて、修正内部利益率を返します
NOMINAL 名目年利率を返します
NPER 投資に必要な期間を返します
NPV 定期的に発生する一連の支払い (負の値) と収益(正の値)、および割引率を指定して、投資の正味現在価値を算出します
ODDFPRICE 1 期目の日数が半端な証券に対して、額面 $100 あたりの価格を返します
ODDFYIELD 1 期目の日数が半端な証券の利回りを返します
ODDLPRICE 最終期の日数が半端な証券に対して、額面 $100 あたりの価格を返します
ODDLYIELD 最終期の日数が半端な証券の利回りを返します
PMT 定期支払額を算出します
PPMT 指定した期に支払われる元金を返します
PRICE 定期的に利息が支払われる証券に対して、額面 $100 あたりの価格を返します
PRICEDISC 割引証券の額面 $100 あたりの価格を返します
PRICEMAT 満期日に利息が支払われる証券に対して、額面 $100 あたりの価格を返します
PV 投資の現在価値を返します
RATE 投資の利率を返します
RECEIVED 全額投資された証券に対して、満期日に支払われる金額を返します
SLN 定額法 (Straight-line Method) を使用して、資産の 1 期あたりの減価償却費を返します
SYD 級数法 (Sum-of-Year's Digits Method)を使用して、特定の期における減価償却費を返します
TBILLEQ 米国財務省短期証券 (TB) の債券換算利回りを返します
TBILLPRICE 米国財務省短期証券 (TB) の額面 $100 あたりの価格を返します
TBILLYIELD 米国財務省短期証券 (TB) の利回りを返します
VDB 倍額定率法または指定した方法を使用して、指定した期間における資産の減価償却費を返します
XIRR 定期的でないキャッシュ フローに対する内部利益率を返します
XNPV 定期的でないキャッシュ フローに対する正味現在価値を返します
YIELD 利息が定期的に支払われる証券の利回りを返します
YIELDDISC 米国財務省短期証券 (TB) などの割引債の年利回りを返します
YIELDMAT 満期日に利息が支払われる証券の利回りを返します

 エンジニアリング関数
BESSELI 修正ベッセル関数 In(x) を返します
BESSELJ ベッセル関数 Jn(x) を返します
BESSELK 修正ベッセル関数 Kn(x) を返します
BESSELY ベッセル関数 Yn(x) を返します
BIN2DEC 2 進数を 10 進数に変換します
BIN2HEX 2 進数を 16 進数に変換します
BIN2OCT 2 進数を 8 進数に変換します
COMPLEX 実数係数および虚数係数を "x+yi" または "x+yj" の形式の複素数に変換します
CONVERT 数値の単位を変換します
DEC2BIN 10 進数を 2 進数に変換します
DEC2HEX 10 進数を 16 進数に変換します
DEC2OCT 10 進数を 8 進数に変換します
DELTA 2 つの値が等しいかどうかを調べます
ERF 誤差関数の積分値を返します
ERFC 相補誤差関数の積分値を返します
GESTEP 数値がしきい値以上であるかどうかを調べます
HEX2BIN 16 進数を 2 進数に変換します
HEX2DEC 16 進数を 10 進数に変換します
HEX2OCT 16 進数を 8 進数に変換します
IMABS 指定した複素数の絶対値を返します
IMAGINARY 指定した複素数の虚数係数を返します
IMARGUMENT 引数シータ (ラジアンで表した角度) を返します
IMCONJUGATE 複素数の複素共役を返します
IMCOS 複素数のコサインを返します
IMDIV 2 つの複素数の商を返します
IMEXP 複素数のべき乗を返します
IMLN 複素数の自然対数を返します
IMLOG10 複素数の 10 を底とする対数 (常用対数) を返します
IMLOG2 複素数の 2 を底とする対数を返します
IMPOWER 複素数の整数乗を返します
IMPRODUCT 複素数の積を返します
IMREAL 複素数の実数係数を返します
IMSIN 複素数のサインを返します
IMSQRT 複素数の平方根を返します
IMSUB 2 つの複素数の差を返します
IMSUM 複素数の和を返します
OCT2BIN 8 進数を 2 進数に変換します
OCT2DEC 8 進数を 10 進数に変換します
OCT2HEX 8 進数を 16 進数に変換します

 データベース関数
DAVERAGE リストまたはデータベースの指定された列を検索し、条件を満たすレコードの平均値を返します
DCOUNT リストまたはデータベースの指定された列を検索し、条件を満たすレコードの中で数値が入力されているセルの個数を返します
DCOUNTA リストまたはデータベースの指定された列を検索し、条件を満たすレコードの中の空白でないセルの個数を返します
DGET リストまたはデータベースの列から、指定された条件を満たす 1 つの値を抽出します
DMAX リストまたはデータベースの指定された列を検索し、条件を満たすレコードの最大値を返します
DMIN リストまたはデータベースの指定された列を検索し、条件を満たすレコードの最小値を返します
DPRODUCT リストまたはデータベースの指定された列を検索し、条件を満たすレコードの特定のフィールド値の積を返します
DSTDEV リストまたはデータベースの列を検索し、指定された条件を満たすレコードを母集団の標本と見なして、母集団に対する標準偏差を返します
DSTDEVP リストまたはデータベースの指定された列を検索し、条件を満たすレコードを母集団全体と見なして、母集団の標準偏差を返します
DSUM リストまたはデータベースの指定された列を検索し、条件を満たすレコードの合計を返します
DVAR リストまたはデータベースの指定された列を検索し、条件を満たすレコードを母集団の標本と見なして、母集団に対する分散を返します
DVARP リストまたはデータベースの指定された列を検索し、条件を満たすレコードを母集団全体と見なして、母集団の分散を返します

 アドイン/オートメーション
CALL ダイナミックリンクライブラリまたはコードリソースで、プロシージャを呼び出します。
EUROCONVERT 数値からユーロ通貨への換算、ユーロ通貨からユーロ通貨使用国の現地通貨への換算、またはユーロ通貨を基にしてユーロ通貨を使用する参加国間の通貨の換算(三通貨換算)を行います。

 キューブ
CUBEKPIMEMBER 主要業績評価指標(KPI)の名前、プロパティ、およびメジャーを返し、名前とプロパティをセルに表示します。KPIは、月間粗利益や四半期従業員退職率など、定量化が可能な測定値であり、組織の業績をモニタリングするために使用されます。
CUBEMEMBER キューブ階層のメンバーまたは組を返します。キューブ内にメンバーまたは組が存在することを確認するために使用します。
CUBEMEMBERPROPERTY キューブ内のメンバープロパティの値を返します。メンバー名がキューブ内に存在することを確認し、このメンバーの特定のプロパティを取得するために使用します。
CUBERANKEDMEMBER セット内のn番目の(ランクされている)メンバーを返します。売り上げトップの販売員、成績上位10位までの学生など、セット内の1つ以上の要素を取得するために使用します。
CUBESET セット式をサーバー上のキューブに送信して、計算されたメンバーまたは組のセットを定義します。サーバー上のキューブによってセットが作成され、MicrosoftOfficeExcelに返されます。
CUBESETCOUNT セット内のアイテムの数を返します。
CUBEVALUE キューブの総計値を返します。

数式.数式とは

エクセル入門 > 数式 > 数式とは
 ワークシートのセルに入力する数式とは
  = の後に書かれた内容に従って導き出された結果を、そのセルに入れるものです。
 必ず = から書きはじめます。
  = の後ろには、セル参照、関数、定数(文字定数、数値定数)、そして、演算子が指定できます。
  セル参照…単一のセルの場合
 A5は横位置がA列で、縦位置が5行目のセル
  セル参照…連続する複数セルの場合
 A5:A15は、A5セルからA15セルの範囲
 A5:C15は、A5セルからC15セルの範囲
 A:Aは、A列の全行
 A:Cは、A列からC列の全て
  セル参照…飛び飛びのセル
 A1,A3,A5は、A1セルとA3セルとA5セル
  関数 ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…
 関数とは、あらかじめエクセルに組み込まれている、関数毎に決められた計算を行ってくれるものです。
 関数に与える、値・セル等を引数と呼びます。
 例.
 =SUM(A1:A3)
 ここで、A1:A3が引数になります。
 SUMは、引数に指定されたセルの値を合計します。
  文字定数
 数式内において文字定数を使用する場合は、"(ダブルクォーテーション)で囲みます。
 "こんにちは"
  数値定数
 数式内において数値定数を使用する場合は、数字をそのまま記述します。
 123
  演算子
 + … 加算、=1+2 → 3
 - … 減算、=3-1 → 2
 * … 乗算、=2*3 → 6
 / … 除算、=6/2 → 3
 % … パーセント =15% →15%つまり0.15
 ^ … べき乗、=2^3 → 8
 & … 文字列の結合、="EX"&"CEL" → "EXCEL"
  演算子の優先順位
 高い<-------------------->低い
  - (負の値) > % > ^ > *,/ > +,- > &
  かっこ()…演算子の優先順位を変更する
 =(2+3)*2 → 10=2+3*2 → 8

数式.絶対参照と相対参照

エクセル入門 > 数式 > 絶対参照と相対参照
 数式において、セル参照を使用すると、
  C5
 のように、列記号の後ろに行番号が付いた形になります。
 ただし、これは、
  C5 セル( C列5行目のセル )に特定しているわけではありません。
 あくまで、数式を入力したセル位置からの位置関係を表しています。
 数式を入れたセルを、 B2 セルだとすると、
  B2 セルから、 右に1列、下に3行の位置にあるセル として認識されます。
 そこで、 B2 セルを C3 セルにコピーすると、
  C3 セルから、 右に1列、下に3行の位置にあるセル になるので、
  D6 と自動的に数式が変更されます。
 つまり、
 セルのシート上での位置ではなく、数式を入力しているセルからの相対的な位置関係を表しているです。
 このような参照形式を 相対参照 と呼びます。
 数式をコピーした場合に、セル参照が動いてほしくない場合があります。
 そのような場合には、 $(ドル記号) を付けて
  $C$5
 とします。
  $(ドル記号) を付けて セルを固定 させることが出来ます。
 数式を入れたセルを、 B2 セルだとして、
  B2 セルを C3 セルにコピーしても、
  $C$5 は変化しません。
 つまり、
 セルのシート上での絶対的な位置を表しているです。
 このような参照形式を 絶対参照 と呼びます。
 数式をコピーした場合に、
 列は動いてほしいけど、行は動いてほしくない
 列は動いてほしくないけど、行は動いてほしい
 このような場合が出てきます。
 この場合は、動いてほしくない方(列または行)の前に、$(ドル記号)を付けます。
  $C5
 セルをコピーしても列は変化しませんが、行は相対位置に変化します。
  B2 セルを C3 セルにコピーすると、 $C6 となります。
 列のみ絶対参照にしているので、 絶対列参照 と呼びます。
  C$5
 セルをコピーしても列は変化しませんが、行は相対位置に変化します。
  B2 セルを C3 セルにコピーすると、 D$5 となります。
 列のみ絶対参照にしているので、 絶対行参照 と呼びます。
 このように、参照形式を絶対参照と相対参照を複合させた参照形式を、 複合参照 と呼びます。
 まとめると
  相対参照
 数式が入力されているセル位置を基点にして、参照するセルが決まります。
 数式をコピーした時、コピー元での相対的なセル位置関係が保持されて、セル参照が変化します。
  絶対参照
 特定の位置にあるセルが必ず参照されます。
 数式をコピーしても、セル参照は変化しません。
 $(ドル記号)を付ける事で、セルが固定されます。
  複合参照
 絶対参照と相対参照を組み合わせて使います。
 列を固定する場合は列の前に$(ドル記号)を付ける(絶対列参照)
 行を固定する場合は行の前に$(ドル記号)を付ける(絶対行参照)
 ※ $(ドル記号)を付ける操作方法
  手入力で$(ドル記号)を付けても良いですが、
  F4 キー押下することで$(ドル記号)を付けることが出来ます。
  セル参照の文字にカーソルを合わせて、
  F4 キー押下することで、$(ドル記号)の付く位置が順次変わります。
  A1 → $A$1 → A$1 → $A1 → A1

数式.SUM関数(引数を合計)

エクセル入門 > 数式 > SUM関数(引数を合計)
 引数に指定された数値を全て合計します。
 引数には、セル参照(単一セル、セル範囲)、数値定数、関数が指定できます。
  書式
  SUM(数値1[,数値2,…])
 ※[]で囲まれている部分は省略可能です。
  使用例
 =SUM(A1:A5) … A1セルからA5セルを合計します。
 =SUM(A1,A3,A5) … A1セル、A3セル、A5セルを合計します。
 =SUM((A1:A5,B1,B3) … A1セルからA5とB1セル、B5セルを合計します。
 ※セル範囲内にある数値のみを合計します、文字列等は無視されます。
  オートSUM
 ΣマークのアイコンのオートSUMは、このSUM関数の自動入力になります。
 ショートカットは、 Alt + Shift + =(-)
 オートSUMでは、エクセルが合計する範囲を自動で選択します。
 単一セルを選択している場合は、選択セルの上または左に連続して数値が入力されている範囲を自動判定します。
 複数セルを選択している場合は、選択範囲の下(縦に選択している場合)または右(横に選択している場合)にSUM関数を挿入します。
  応用例
  エクセル入門.ショートカット.Alt+Shift+=(オートSUM)
 ΣマークのアイコンのオートSUMのショートカットになります。キー:Alt+Shift+=… ALtキーとShiftキーを押した状態で=(-)を押下 機能:オートSUM(SUM関数)を挿入 オートSUMでは、エクセルが合計する範囲を自動で選択します。
  エクセル入門.数式.関数のネスト
 関数の引数に、さらに関数を入れる事をネスト(入れ子)と言います。関数のネストは、Excel2003までは、最大7 Excel2007以降では、最大64 となっています。しかし、複雑なネストは関数を難解なものとしてしまい、後々の変更や、他人が見た時に解らなくなってしまいます。
  エクセル入門.数式.OFFSET関数
 基準のセルまたはセル範囲から指定された行数と列数だけシフトした位置にある、指定の高さと幅のセル範囲の参照を返します。つまり、基準セルか ら、指定数だけ移動したセルを起点として、指定の大きさのセル範囲を取得出来ます。書式 OFFSET(基準,行数,列数,[高さ],[幅]) 基準 基準となるセル範囲の参照を指定します。
  複数条件の合計・件数
 複数条件の合計、複数条件の件数を求める関数式です。以下の表で説明します。複数条件の合計 「みかん」の「M」の合計売上は まず、2007以降ならSUMIFSが使えますので、問題はないと思います。=SUMIFS(C2:C10,A2:A10,"みか ん",B2:B10,"M") SUMIFS(合計範囲,
  セルの参照範囲を可変にする(OFFSET、COUNTA、MATCH)
 
ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.IF関数(条件を満たしているかどうかを判定)

エクセル入門 > 数式 > IF関数(条件を満たしているかどうかを判定)
 指定された条件を判定し、
 条件が満たされている場合(正しい場合、真の場合、TRUEの場合)と、
 条件が満たされていない場合(正しくない場合、偽の場合、FALSEの場合)、
 それぞれ別の値を返します。
  書式
  IF(論理式,真の場合,偽の場合)
  論理式
 真または偽のどちらかに評価できる式を指定します。
 以下の比較演算子が使えます。
= 左辺と右辺が等しい
> 左辺が右辺より大きい
< 左辺が右辺より小さいい
>= 左辺が右辺以上である
<= 左辺が右辺以下である
<> 左辺と右辺が等しくない

 論理式の左辺および右辺には、
 セル参照、数値定数、関数が指定できます。
 
  真の場合、偽の場合
 セル参照、数値定数、関数が指定できます。
 
  使用例
 セルA1に100と入っている場合
 =IF(A1=100,"A","B") … 結果は"A"となります。
 =IF(A1>100,"A","B") … 結果は"B"となります。
 =IF(A1>=100,"A","B") … 結果は"A"となります。
 =IF(A1<100,"A","B") … 結果は"B"となります。
 =IF(A1<=100,"A","B") … 結果は"A"となります。
 =IF(A1<>100,"A","B") … 結果は"B"となります。
  応用例
  エクセル入門.数式.関数のネスト
 関数の引数に、さらに関数を入れる事をネスト(入れ子)と言います。関数のネストは、Excel2003までは、最大7 Excel2007以降では、最大64 となっています。しかし、複雑なネストは関数を難解なものとしてしまい、後々の変更や、他人が見た時に解らなくなってしまいます。
  複数条件で検索し、複数データを取得する方法
 各種条件でデータを絞る場合は、オートフィルタが一般的に使用されますが、元のデータがあるシートで作業する為、間違ってデータを消してしまったり、使用する上で制約があります。また、VLOOKUPでは、単一条件のみであり、しかも1件しか取得できません。
  【奥義】大量データでの高速VLOOKUP
 大量データからのVLOOKUPを大量行に設定すると再計算がなかなか終わらなくなります… そんな経験したことがある人は、少なからずいると思います、そんな場合に、高速にVLOOKUPを実行する方法です。以下の表で説明します。※ Sheet1は、A列で昇順に並び変えておきます。
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.関数のネスト

エクセル入門 > 数式 > 関数のネスト
 関数の引数に、さらに関数を入れる事を ネスト(入れ子) と言います。
 関数のネストは、
  Excel2003までは、最大7
  Excel2007以降では、最大64
 となっています。
 しかし、複雑なネストは関数を難解なものとしてしまい、後々の変更や、他人が見た時に解らなくなってしまいます。
  ネストは概ね3段階 までとして、それ以上になる場合は、個々の要素となっている関数を別のセルに入れて、そのセルを参照するようにします。
 (このようなセルの事を 作業セル とか 計算セル と呼んだりします)
  使用例
 A1セルからA10セルに数値が入っているとして、
 その合計が、800以上なら"A"、600以上なら"B"、それ以下なら"C"
 とする場合、
 =IF(SUM(A1:A10)>=800,"A",IF(SUM(A1:A10)>=600,"B","C"))
  考え方 として、
 =IF(800以上,"A",800未満なら"B"か"C")
 ↓
 =IF(800以上,"A",IF(600以上,"B","C"))
 このように外側の関数の組み立てを考えてから、
 内側の関数である、
 800以上は、SUM(A1:A10)>=800
 600以上は、SUM(A1:A10)>=600
 これを組み込んで完成させます。
 ここで、IF(600以上,"B","C")の時、
 800以上も含まれてしまうのではないかと考えがちですが、
 =IF(800以上,"A",この部分は800未満の時にしか処理されない)
 つまり、800以上の偽の部分では、800未満が前提となっている為、考慮する必要がありません。
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.作業セル、計算セル

エクセル入門 > 数式 > 数数式.作業セル、計算セル
 関数の引数に、さらに関数を入れ、関数を ネスト(入れ子) にしますが、このネストが多くなると、数式が複雑になりすぎてしまい、他人が見たときに数式の意味するところが分からなくなってしまいます。数式を書いた本人であっても、時が経つと解読が困難になる場合もあります。
 このような、 数式の複雑化を避ける方法として、作業セル、計算セルを使います。
 正式な呼び方は無く、 作業セル 計算セル は同じ意味として使われます。列全体を、この目的で使う事も多く、その場合は、 作業列 という言い方もします。
 作業列を工夫することで、少ない基本関数だけでも、かなり複雑な集計等が出来るようになります。
 以下の表で解説します。
A B C D
1 英語 国語 数学 合否判定
2 92 78 59
3 78 95 80
4 83 50 53
5 88 98 65
6 82 78 76

 合格するには、3科目全てで75点以上、または、合計が245点以上であるとして、D列に合否判定を出します。
 D2セルには、
  =IF(B2>=75,IF(C2>=75,IF(D2>=75,"合",IF(SUM(B2:D2)>=245,"合","否")),"否"),"否")
 このような数式になります。
 ※例題の数式についてAND関数を使い、もっと簡略化できますが、本サイトの説明順として、AND関数はまだまだ後になっていることと、あくまで、作業セルの使い方の説明の便宜上の数式であるとご理解ください。
 さすがに分かりずらいです。
 そこで作業セルを使います。
A B C D E F G H
1 英語 国語 数学 合計 英語 国語 数学 合否判定
2 92 78 59 229 1 1 0
3 78 95 80 253 1 1 1
4 83 50 53 186 1 0 0
5 88 98 65 251 1 1 0
6 82 78 76 236 1 1 1

 そもそも、合計はあったほうが良いのは言うまでもないのですが、各科目の合格ラインの75点以上かの判定も追加してみました。
  D2=SUM(A2:C2)E2=IF(A2>=75,1,0)F2=IF(B2>=75,1,0)G2=IF(C2>=75,1,0)H2=IF(D2>=245,"合",IF(SUM(E2:G2)=3,"合","否"))
 E2の数式は相対参照になっているので、そのまま右にコピーしてE2とG2は完成します。
 H2の数式を、良く読み解いてみて下さい。E~Gが、75%点以上なら1、75点未満なら0になっているので、合計が3なら、3科目とも75点以上という事になります。
 今回の例では、作業セルの説明として、少々無理した数式になっていますが、作業セルの工夫次第で、いろんなことが出来るようになるという事を理解してください。
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.SUMIF関数(検索条件に一致するセルの合計)

エクセル入門 > 数式 > SUMIF関数(検索条件に一致するセルの合計)
 範囲の中で、指定した条件を満たすセルの値を合計します。または、範囲の中で、指定した条件を満たすセルに対応する合計範囲のセルの値を合計します。
  書式
  SUMIF(範囲,検索条件[,合計範囲])
 ※[ ]で囲まれている部分は省略可能です。合計範囲を省略した場合は、範囲のセルが合計されます。
  範囲
 条件によって評価するセル範囲を指定します。
  検索条件
 計算の対象となるセルを定義する条件を、数値、式、セル範囲、文字列、または関数で指定します。文字列条件、または論理記号や数学記号を含む条件は、二重引用符 (") で囲む必要があります。
 条件が数値の場合、二重引用符は不要です。※ワイルドカードが使用できます。後述します。
  合計範囲
 範囲で指定したセル以外のセルを加算する場合は、加算する実際のセルを指定します。合計範囲を省略すると、範囲で指定したセル(条件が適用されるセル)が加算されます。
  使用例
A B
1 りんご 160
2 みかん 120
3 なし 170
4 かき 110
5 りんご 180
6 みかん 130
7 みかん 150
8 なし 190
9 かき 100
10 りんご 140

  =SUMIF(A:A,"みかん",B:B) A列が"みかん"に対応するB列の、B2,B6,B7を合計し400になります。
 範囲を限定して =SUMIF(A1:A10,"みかん",B1:B10) これでも結果は同じですが、データの増減を考慮して、列で指定した方が良いでしょう。
  =SUMIF(B:B,">=160")
 B列が160以上である、B1,B3,B5,B8を合計し700になります。二重引用符 (") が必要です。
 160の数値の代わりにセル値(C1セル)を使用する場合は、 =SUMIF(B:B,">="&C1) とします。
 よくある間違いとして、 =SUMIF(B:B,">=C1") このようにしてしまう事がありますが、これでは">=C1"という文字列を指定した事になってしまいます。
  ワイルドカード
 検索条件には、半角の疑問符(?)または半角のアスタリスク(*)をワイルドカード文字として使用できます。 疑問符(?)は任意の1文字 を表し、 アスタリスク(*)は任意の文字列 (0個または1個以上の文字)を表します。ワイルドカード文字ではなく、通常の文字として疑問符やアスタリスクを検索する場合は、その文字の前に、" *" のように半角のチルダ (~) を付けます。
 =SUMIF(A:A,"*ん*",B:B)A列で"ん"の文字を含む、A1,A2,A5,A6,A7,A10に対応する、 B1,B2,B5,B6,B7,B10の合計し880になります。"*ん*"と指定すると(○は何らかの文字を表すとして)○ん○ん○○○○んのいずれで も対応します。
 もし最期が"ん"で終わる場合のみを対象とする場合は、"*ん"と指定します、上表の場合は"みかん"のみ対象となります。
  応用例
  SUMIF関数の良くある間違い
 エクセルの関数の中で最も頻繁に使われる関数と言っても過言ではないSUMIF関数ですが、間違った指定をして、合計が合わずに悩み続けて時間 を浪費してしまうことあります、そういう間違いで最も多いのが、範囲と合計範囲の指定間違いです。まずは、SUMIF関数の確認 SUMIF関数 範囲の中で、指定した条件を満たすセルの値を合計します。
  複数条件の合計・件数
 複数条件の合計、複数条件の件数を求める関数式です。以下の表で説明します。複数条件の合計 「みかん」の「M」の合計売上は まず、2007以降ならSUMIFSが使えますので、問題はないと思います。=SUMIFS(C2:C10,A2:A10,"みか ん",B2:B10,"M") SUMIFS(合計範囲,
  ワイルドカードが使える関数
 SUMIF COUNTIF SEARCH MATCH HLOOKUP VLOOKUP データベース関数を除く、2003までの関数です。2007以降なら、SUMIFS COUNTIFS AVERAGEIF AVERAGEIFS これらでも使えます。
  数式.SUMIFS関数、COUNTIFS関数.AVERAGEIFS関数(複数条件)
 SUMIFS関数は、SUMIF関数の条件が複数指定できるようになったものです。COUNTIFS関数は、COUNTIF関数の条件が複数指定できるようになったものです。範囲の中で、指定した条件を満たすセルの個数を数えます。
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.COUNT関数(セル値が数値の個数)

エクセル入門 > 数式 > COUNT関数(セル値が数値の個数)
 セル範囲に含まれる、数値が入っているのセルの個数を数えます。
 引数には、セル参照、またはセル範囲が指定できます。
  書式
  COUNT(値1 [, 値2, …])
 ※[]で囲まれている部分は省略可能です。
 数値の個数のみ数えます。
 数値とは、
 数値、日付、または数値を表す文字列 (たとえば、"1"のように引用符で囲まれた数値)の場合も含まれます。
 ただし、文字列としてセルに入力されている数値はカウントされません。
 (書式を文字列にして数値を入力した場合や、'を付けた数値はカウントされません。)
  使用例
 =COUNT(A1:A5) … A1セルからA5セルの数値が入っているセルの個数になります。
 ※数値以外も対象とする(すべての種類のデータを含む)場合は、
  COUNTA 関数を使います。
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.COUNTA関数(空白以外のセルの個数)

エクセル入門 > 数式 > COUNTA関数(空白以外のセルの個数)
 セル範囲に含まれる、空白ではないセルの個数を数えます。
 引数には、セル参照、またはセル範囲が指定できます。
  書式
  COUNTA(値1 [, 値2, …])
 ※[]で囲まれている部分は省略可能です。
 エラー値や空の文字列 ("") を含め、すべての種類のデータを含むセルが計算の対象となります。
 たとえば、セル範囲に空の文字列を返す数式(数式の結果が空白"")が含まれている場合、その値を計算の対象とします。
  使用例
 =COUNTA(A1:A5) … A1セルからA5セルの空白ではないセルの個数になります。
  応用例
  セルの参照範囲を可変にする(OFFSET、COUNTA、MATCH) 入力規則のリストを、2段階の絞り込みで作成1
 一覧リストを使用して、「入力規則」の「リスト」を作成し、「リスト」の選択結果により、となりの「リスト」の内容を自動で変化させます、さら に、一覧リストへの追加・削除に自動対応させるものです。入力規則のリストを、追加・削除に自動対応で作成 を理解した上でお読みください。
  入力規則のリストを、2段階の絞り込みで作成2
 一覧リストを使用して、「入力規則」の「リスト」を作成し、「リスト」の選択結果により、となりの「リスト」の内容を自動で変化させます、「入 力規則のリストを、2段階の絞り込みで作成1」こちらのリストの縦横を入れ替えたパターンになります。入力規則のリストを、追加・削除に自動対応で作成一 覧リストを使用して、「入力規則」の「リスト」を作成し、
  ピポットテーブルの参照範囲を、追加・削除に自動対応で作成
 ピボットテーブルの参照範囲を可変に設定し、データの追加・削除に自動で対応させます。以下の表で説明します。名前を定義します。シート「リスト」を選択します。Ctrl+F3で名前定義を起動する。メニュー等からの起動はバージョン毎に違います。
  グラフのデータ範囲を可変にする 関数を使って行列を入れ替える方法
 行列を入れ替える方法として、一般には、「形式を選択して貼り付け」ですが、これでは、元のデータを更新しても入れ替え先にデータ反映されません。そこで、関数を使って行列を入れ替えることにより、直接データが反映するようにします。以下の表で説明します。
  関数で他シートへ並べ替える方法(サンプル:ABC分析)
 通常、並べ替えは元データが変更されれば、毎回、並べ替えを行う必要がありますが、, これが、結構面倒な場合もあります。出来れば、マクロを組みたいところですが、マクロはちょっとと言う人もいるでしょう。そこで、関数で他シートへ並べ替える方法です。
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.COUNTIF関数(検索条件に一致するセルの個数)

エクセル入門 > 数式 > COUNTIF関数(検索条件に一致するセルの個数)
 範囲の中で、指定した条件を満たすセルの個数を数えます。
  書式
  COUNTIF(範囲,検索条件)
 ※[]で囲まれている部分は省略可能です。
  
 範囲
 条件によって評価するセル範囲を指定します。
 検索条件
 計算の対象となるセルを定義する条件を、数値、式、セル範囲、文字列、または関数で指定します。
 ※文字列条件、または論理記号や数学記号を含む条件は、二重引用符 (") で囲む必要があります。条件が数値の場合、二重引用符は不要です。
 ※ワイルドカードが使用できます。
   
  使用例
A B
1 りんご 160
2 みかん 120
3 なし 170
4 かき 110
5 りんご 180
6 みかん 130
7 みかん 150
8 なし 190
9 かき 100
10 りんご 140

   
  =COUNTIF(A:A,"みかん")
 A列が"みかん"の個数、3になります。
 範囲を限定して
  =COUNTIF(A1:A10,"みかん")
 これでも結果は同じですが、データの増減を考慮して、列で指定した方が良い
  =COUNTIF(B:B,">=160")
 B列が160以上である個数、4になります。
 二重引用符 (") が必要です。
 160の数値の代わりにセル値(C1セル)を使用する場合は、
  =COUNIF(B:B,">="&C1)
 とします。
 よくある間違いとして、
  =COUNTIF(B:B,">=C1")
 としてしまう事がありますが、これでは">=C1"という文字列を指定した事になってしまいます。
  ワイルドカード
 検索条件には、半角の疑問符(?)または半角のアスタリスク(*)をワイルドカード文字として使用できます。
 疑問符(?)は任意の1文字を表し、
 アスタリスク(*)は任意の文字列(0個または1個以上の文字)を表します。
  =COUNTIF(A:A,"*ん*")
 A列で"ん"の文字を含む、A1,A2,A5,A6,A7,A10の、6になります。
  "*ん*" と指定すると(○は何らかの文字を表すとして)
 ○ん○
 ん○○
 ○○ん
 のいずれでも対応します。
 もし最期が"ん"で終わる場合のみを対象とする場合は、
 "*ん"
 と指定します、上表の場合は"みかん"のみ対象となります。
  応用例
  複数条件の合計・件数
 複数条件の合計、複数条件の件数を求める関数式です。以下の表で説明します。複数条件の合計 「みかん」の「M」の合計売上は まず、2007以降ならSUMIFSが使えますので、問題はないと思います。=SUMIFS(C2:C10,A2:A10,"みか ん",B2:B10,"M") SUMIFS(合計範囲,
  複数条件で検索し、複数データを取得する方法
 各種条件でデータを絞る場合は、オートフィルタが一般的に使用されますが、元のデータがあるシートで作業する為、間違ってデータを消してしまったり、使用する上で制約があります。また、VLOOKUPでは、単一条件のみであり、しかも1件しか取得できません。
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.COUNTBLANK(空白セルの個数)

エクセル入門 > 数式 > 数式.COUNTBLANK(空白セルの個数)
 指定された範囲に含まれる空白セルの個数を返します。
  書式
  COUNTBLANK(範囲)
  範囲
 空白セルの個数を求めるセル範囲を指定します。
 空白文字列 ("") を返す数式が入力されているセルも計算の対象となります。ただし、数値の 0 を含むセルは計算の対象となりません。
 通常この関数を使用する必要があるのは、COUNTA関数で数えたセルの個数から、空白文字列 ("") を返す数式が入力されているセルの個数を除きたい場合になります。CAUNTA関数では、空白文字列 ("") を返す数式が入力されているセルの個数が含まれてしまうからです。
 COUNTBLANK関数は、COUNTIF関数で、 =COUNTIF(範囲,"") このように指定した結果と同値になります。
  使用例
 以下の表で、 B列においてデータの入っている個数を調べる とします。 B列 には、 =IF(OR(A1="リンゴ",A1="バナナ"),A1,"") この数式が入っています。また、行数は不定なので、何行あるか分からないとして話を進めます。
A列 B列
ABC
123
リンゴ リンゴ
234
キャベツ
バナナ バナナ
345
ニンジン

  上に掲載した範囲なら、2個が答え になります。この2をどのように取得するかという問題です。。そこで、COUNT系の関数を試してみると、
  =COUNT(B:B) … 0=COUNTA(B:B) … 8=COUNTBLANK(B:B) … 1048574
 いずれも、回答に結びつく感じがしません。
 シートの行数は、1048576なので、 =1048576-COUNTBLANK(B:B) … 2 簡単に求めるなら、これが一番簡単かもしれません。しかし、ファイルがxlsの場合、行数は65536ですので、ファイルによって書き換える必要が出てきます。シートの行数を求めるために、何も入っていない列を利用して、 =COUNTBLANK(D:D)-COUNTBLANK(B:B) このようにすれば、求められないことはありませんが、正直、あまりスマートな感じを受けません。
 では、関数の知識を総動員して、 =COUNTA(B:B)-COUNTBLANK(OFFSET(B1,0,0,COUNTA(B:B),1)) データの入っている範囲をOFFSETで作成して…ほとんどの場合は、これで取得できますが、データが歯抜けになっている場合は、これでは正しく取得できません。苦労した割には結局使えない…という事になります。
 実は、COUNTIF関数を使って簡単に求められるのです。 =COUNTIF(B:B,"?*") または、 =COUNTIF(B:B,">= ") これで結果が2になります。
 さらに、このような場合は、C列に、 =IF(B1="",0,1) このように追加して、
A列 B列 C列
ABC 0
123 0
リンゴ リンゴ 1
234 0
キャベツ 0
バナナ バナナ 1
345 0
ニンジン 0

 これであれば、 C列をSUM関数 だけで求められますし、わかり易いのでないでしょうか。上記のように、難しい関数を使うまでもなく、別セルで判定を入れる事で簡単に求められるものです。
 そもそも、今回の例では、文字列が入っているセルの個数なので面倒ですが、これが数値の入っているセルの個数なら、単純にCOUNT関数ですんでしまいます。
 ここでは、COUNTBLANK関数の説明をしましたが、COUNTBLANK関数は、使う上で非常に注意が必要な関数です。 COUNTBLANK関数を使おうと思ったら、その前に代替え手段を検討することをお勧めします。 ほとんどの場合、単純な判定で解決するはずです。
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.AVERAGE関数(引数の平均値)

エクセル入門 > 数式 > 数数式.AVERAGE関数(引数の平均値)
 引数の算術平均値を返します。 書式
  AVERAGE(数値1, [数値2], ...)
  数値1
 平均を求める 1 つ目の数値、セル参照 (セル参照: ワークシートのセルの位置を表す座標。たとえば、列 B と行 3 が交わる位置のセル参照は、A1 形式では B3、R1C1 形式では R3C2 です。)、またはセル範囲。
  数値2, ...
 省略可能です。引数は最大 255 個まで指定できます。
 セル範囲に文字列、論理値、または空白セルが含まれている場合、これらは無視されます。ただし、値 0 (ゼロ) を含むセルは計算の対象となります。エラー値または数値に変換できない文字列を指定すると、エラーになります。
 AVERAGE関数では、データの中心傾向 (統計的分布における数値グループの中心位置) が評価されます。中心傾向を表す最も一般的な指標として、次の 3 つが挙げられます。
 平均 … AVERAGE関数中央値 (メジアン) … MEDIAN関数最頻値 (モード) … MODE関数
  使用例
A列
17
24
11
25
18
25
29
18

  =AVERAGE(A:A) … 20.875
 これは、
  =SUM(A:A)/COUNT(A:A)
 これと同値です。従って、 セル範囲に数値が存在しない と、 #DIV/0! のエラーとなります。
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.AVERAGEIF関数(検索条件に一致する平均値)

エクセル入門 > 数式 > 数式.AVERAGEIF関数(検索条件に一致する平均値)
 条件に一致するセルの平均値 (算術平均) を返します。Excel2007以降に追加された関数です。 書式
  AVERAGEIF(範囲, 条件, [平均範囲])
  範囲
 平均するセル範囲を指定します。平均範囲が指定されているときは、条件範囲としてのみ使用されます。平均範囲が指定されていないときは、条件範囲と平均範囲の両方で使用されます。
  条件
 平均の対象とする条件を数値、式、セル参照、または文字列で指定します。たとえば、条件は 25、"25"、">25"、"Excel"、または B4のようになります。(式および文字列を指定する場合は半角の二重引用符 (") で囲む必要があります)。※ ワイルドカード が使用できます。
  平均範囲
 省略可能です。何も指定しないと、範囲が使用されます。平均する実際のセルを指定します。
  ワイルドカード
 検索条件には、半角の疑問符(?)または半角のアスタリスク(*)をワイルドカード文字として使用できます。疑問符(?)は任意の1文字を表し、アスタリスク(*)は任意の文字列(0個または1個以上の文字)を表します。
 範囲内の TRUE または FALSE を含むセルは無視されます。平均範囲内の空白のセルは無視されます。範囲に数値がない場合、エラー値 #DIV0! を返します。条件に一致するセルがない場合、エラー値 #DIV/0! を返します。
 AVERAGE関数では、データの中心傾向 (統計的分布における数値グループの中心位置) が評価されます。中心傾向を表す最も一般的な指標として、次の 3 つが挙げられます。
 平均 … AVERAGE関数中央値 (メジアン) … MEDIAN関数最頻値 (モード) … MODE関数
  使用例
A B
1 りんご 160
2 みかん 120
3 なし 170
4 かき 110
5 りんご 180
6 みかん 130
7 みかん 150
8 なし 190
9 かき 100
10 りんご 140

 リンゴの平均値を求めるには、 =AVERAGEIF(A:A,"りんご",B:B) となります。これは、 =SUMIF(A:A,"りんご",C:C)/COUNTIF(A:A,"りんご") と同値です。従って、 セル範囲に数値が存在しない と、 #DIV/0! のエラーとなります。
 ワイルドカードを使った例になります。
A B
1 りんごL 160
2 みかん 120
3 なし 170
4 かき 110
5 りんごM 180
6 みかん 130
7 みかん 150
8 なし 190
9 かき 100
10 りんごM 140

 リンゴの平均値を求めるには、 =AVERAGEIF(A:A,"りんご*",B:B) となります。これは、 =SUMIF(B:B,"りんご*",C:C)/COUNTIF(B:B,"りんご*") と同値です。
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.VLOOKUP関数(範囲の左端列で値検索し対応セル値)

エクセル入門 > 数式 > VLOOKUP関数(範囲の左端列で値検索し対応セル値)
 検索値で、セル範囲の最初の列を検索し、その範囲の同じ行にある任意のセルから値を返します。Vは縦方向(vertical)の意味です。つまり縦方向の表に対して使用します。
  VLOOKUP関数の書式
  =VLOOKUP(検索値,範囲,列番号,検索方法)
  検索値
 表または範囲の左端の列で検索する値を指定します。※ワイルドカードが使用できますが、あまり使う事はありません。
  ワイルドカード文字 ( ? )半角の疑問符:任意の 1 文字( * )半角のアスタリスク:任意の文字列
  範囲
 データを含むセル範囲です。
  列番号
 目的のデータが入力されている列を、範囲内の左端から数えた列数で指定します。範囲内の左から1,2,3,…となります。
  検索方法
  TRUE(1) を指定すると、検索値と完全に一致する値、またはその 近似値(検索値未満の最大値) が返されます。※範囲の左端の列にある値を 昇順に並べ替えておく 必要があります。
  FALSE(0) を指定すると 検索値と完全に一致する値だけが検索 されます。完全に一致する値が範囲の左端の列に複数ある場合は、最初に見つかった値が使用されます。完全に一致する値が見つからない場合は、エラー値 #N/A が返されます。※TRUE(1)の使い方は少し難しくなります、多くの場合はFALSE(0)で良いはずです。
  検索方法を省略した場合はTRUE(1)になります。 意図せず省略してしまい、結果が正しくないということは極めて多くあります。
  VLOOKUP関数:完全一致(検索方法=TRUE)の使用例
 以下のページで、所得税の税率表を参考に詳しく解説しています。
  数値範囲で表検索するVLOOKUP近似一致
 数値範囲で指定されている表を検索する場合は、VLOOKUP関数の近似一致を使います。○以上~△未満、○超~△以下、このような数値の範囲 で示されている表を検索する場合は、VLOOKUPの近似一致を使う事で検索できます。具体的に良くあるものとして、所得税の税率があります。
  VLOOKUP関数:完全一致(検索方法=FALSE)の使用例
F G H
1 ID 部署 氏名
2 21 営業 鈴木
3 22 総務 佐藤
4 23 人事 佐々木
5 24 製造 小林
6 25 営業 山田
7 26 総務 高橋
8 27 人事 伊藤
9 28 製造 山本
10 29 営業 田中

 上記の表において、A1セルにIDとして、「22」が入っている場合、該当IDの部署・氏名を取得する場合、=VLOOKUP(A1,F:H,2,0)このようにすることで、「総務」と表示されます。
 =VLOOKUP(A1,F:H,3,0)このようにすることで、「佐藤」と表示されます。
 書式の=VLOOKUP(検索値,範囲,列番号,検索方法)これと、良く見比べて理解して下さい。特に列番号は、範囲内の左から1,2,3,…となります。
  VLOOKUP関数の応用例
  VLOOKUPを他の関数でやる方法
 VLOOKUPは便利な関数ですが、以下のような問題点がある場合は、これを使うことができません 問題点 1.検索列より左側の列を取り出す場合 2.検索値が255文字を超える時 そこで、他の関数で、これを実現する方法を検討します。方法1 =INDEX(範囲,MATCH(検索値,検索範囲,0),列番号) 方法2 {=IF(MIN(IF(検索範囲=検索値,
  徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)
 検索されるキーワードで最も多いのが、MATCH関数 INDEX関数セル範囲から、指定された行と列が交差する位置にあるセルの参照を返します。INDEX関数の書式INDEX(範囲,行番号[,列番号]) 範囲セル範囲を指定します。セル範囲が1行または1列である場合、行番号または列番号はそれぞれ省略することができます。
  【奥義】大量データでの高速VLOOKUP
 大量データからのVLOOKUPを大量行に設定すると再計算がなかなか終わらなくなります… そんな経験したことがある人は、少なからずいると思います、そんな場合に、高速にVLOOKUPを実行する方法です。以下の表で説明します。※ Sheet1は、A列で昇順に並び変えておきます。
  ワイルドカードが使える関数
 SUMIF COUNTIF SEARCH MATCH HLOOKUP VLOOKUP データベース関数を除く、2003までの関数です。2007以降なら、SUMIFS COUNTIFS AVERAGEIF AVERAGEIFS これらでも使えます。
 ※ ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.HLOOKUP関数(範囲の上端行で値検索し対応セル値)

エクセル入門 > 数式 > HLOOKUP関数(範囲の上端行で値検索し対応セル値)
 検索値で、セル範囲の最初の行を検索し、その範囲の同じ列にある任意のセルから値を返します。
 Vは横方向(horizontal)の意味です。つまり横方向の表に対して使用します。
  書式
  =HLOOKUP(検索値,範囲,行番号,検索方法)
 検索値
 表または範囲の上端の行で検索する値を指定します。
 ※ワイルドカードが使用できますが、ほぼ使う事はありません。
 範囲
 データを含むセル範囲です。
 列番号
 目的のデータが入力されている行を、範囲内の上端から数えた行数で指定します。
  検索方法
  TRUE ( 1 )を指定すると、
 検索値と完全に一致する値、またはその近似値(検索値未満の最大値)が返されます。
 ※範囲の上端の行にある値を昇順に並べ替えておく必要があります。
  FALSE ( 0 )を指定すると
 検索値と完全に一致する値だけが検索されます。
 完全に一致する値が範囲の上端の行に複数ある場合は、最初に見つかった値が使用されます。
 完全に一致する値が見つからない場合は、エラー値 #N/A が返されます。
 ※TRUE( 1 )の使い方は少し難しいです。ほとんどの場合、FALSE( 0 )で良いはずです。
  使用例
A B C D E F G H I
11 21 22 23 24 25 26 27 28 29
12 営業 総務 人事 製造 営業 総務 人事 製造 営業
13 鈴木 佐藤 佐々木 小林 山田 高橋 伊藤 山本 田中

 上記の表において、
 A1セルにIDとして、「22」が入っている場合、
 該当IDの部署・氏名を取得する場合、
  =HLOOKUP(A1,11:13,2,0)
 とすることで、「営業」と表示されます。
  =HLOOKUP(A1,11:13,3,0)
 とすることで、「佐藤」と表示されます。
 書式の
  =HLOOKUP(検索値,範囲,行番号,検索方法)
 と、良く見比べて理解して下さい。
 特に、行番号は、範囲内の上から1,2,となります。
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.SUMIFS関数、COUNTIFS関数.AVERAGEIFS関数(複数条件)

エクセル入門 > 数式 > 数式.SUMIFS関数、COUNTIFS関数.AVERAGEIFS関数(複数条件)
 SUMIFS関数は、 SUMIF関数 の条件が複数指定できるようになったものです。
 範囲の中で、指定した条件を満たすセルの値を合計します。または、範囲の中で、指定した条件を満たすセルに対応する合計範囲のセルの値を合計します。書式 SUMIF(範囲,検索条件[,合計範囲]) ※[]で囲まれている部分は省略可能です。
 COUNTIFS関数は、 COUNTIF関数 の条件が複数指定できるようになったものです。
 範囲の中で、指定した条件を満たすセルの個数を数えます。書式 COUNTIF(範囲,検索条件) ※[]で囲まれている部分は省略可能です。, 範囲 条件によって評価するセル範囲を指定します。検索条件 計算の対象となるセルを定義する条件を、数値、式、セル範囲、文字列、または関数で指定します。
 AVERAGEIFS関数は、 AVERAGEIF関数 の条件が複数指定できるようになったものです。
 条件に一致するセルの平均値(算術平均)を返します。Excel2007以降に追加された関数です。書式 AVERAGEIF(範囲,条件,[平均範囲]) 範囲 平均するセル範囲を指定します。平均範囲が指定されているときは、条件範囲としてのみ使用されます。
  書式
  SUMIFS(合計範囲, 条件範囲1, 条件1, [条件範囲2, 条件2], ...)COUNTIFS(条件範囲1, 検索条件1, [条件範囲2, 検索条件2]…) AVERAGEIFS(平均範囲, 条件範囲1, 条件1, [条件範囲2, 条件2], ...)
  注意 SUMIFSとSUMIF、AVERAGEIFSとAVERAGE とでは、引数の指定順序が異なります。合計範囲・平均範囲は SUMIF・AVERAGEIF では第3引数であるのに対し、SUMIFS・AVERAGEIFSでは第1引数になります。
  合計範囲・平均範囲
 合計・平均するセル範囲を指定します。COUNTIFSには、この引数はありません。
  条件範囲1
 対応する条件による評価の対象となる最初の範囲を指定します。条件 1 必須です。条件範囲 2,条件 2, ... オプションです。追加の範囲と対応する条件です。最大 127 組の範囲/条件のペアを指定できます。
  条件1
 加算・平均の対象となる条件範囲1のセルを定義する条件を数値、式、セル参照、または文字列で指定します。たとえば、検索条件は 25、">25"、B4、"Excel" のようになります。式および文字列を指定する場合は半角の二重引用符 (") で囲む必要があります。
  条件範囲2、条件2
 オプションです。追加の範囲と対応する条件です。最大 127 組の範囲/条件のペアを指定できます。
  ワイルドカードが使用できます 条件には、半角の疑問符 (?) または半角のアスタリスク (*) をワイルドカード文字として使用することができます。ワイルドカード文字の疑問符は任意の 1 文字を表し、アスタリスクは任意の文字列を表します。ワイルドカード文字ではなく、通常の文字として疑問符やアスタリスクを検索する場合は、その文字の前 に、"~*" のように半角のチルダ(~) を付けます。
  使用例
 以下の表で、合計金額、件数、平均金額を求めます。
A B C D E F G H
1 日付 金額 第二営業部
2 第一営業部 営業1課 2016/8/12 16393 営業2課
3 第一営業部 営業2課 2016/8/12 18847 合計金額
4 第一営業部 営業3課 2016/8/12 24840 件数
5 第一営業部 営業1課 2016/8/13 14704 平均金額
6 第一営業部 営業2課 2016/8/13 26148
7 第一営業部 営業3課 2016/8/13 12772
8 第一営業部 営業1課 2016/8/14 12859
9 第一営業部 営業2課 2016/8/14 19161
10 第一営業部 営業3課 2016/8/14 23670
11 第一営業部 営業1課 2016/8/15 27290
12 第一営業部 営業2課 2016/8/15 23418
13 第一営業部 営業3課 2016/8/15 22425
14 第二営業部 営業1課 2016/8/12 25077
15 第二営業部 営業2課 2016/8/12 28015
16 第二営業部 営業3課 2016/8/12 21846
17 第二営業部 営業1課 2016/8/13 24330
18 第二営業部 営業2課 2016/8/13 18325
19 第二営業部 営業3課 2016/8/13 21377
20 第二営業部 営業1課 2016/8/14 10034
21 第二営業部 営業2課 2016/8/14 12663
22 第二営業部 営業3課 2016/8/14 21711
23 第二営業部 営業1課 2016/8/15 29986
24 第二営業部 営業2課 2016/8/15 26620
25 第二営業部 営業3課 2016/8/15 27264

 第二営業部、営業2課の、合計金額、件数、平均金額を、H3、H4、H5セルにそれぞれ求めます。
  H3=SUMIFS(D:D,A:A,H1,B:B,H2) … 85623H4=COUNTIFS(A:A,H1,B:B,H2) … 4H5=AVERAGEIFS(D:D,A:A,H1,B:B,H2) … 21405.75
 SUMIFSとAVERAGEIFSの第一引き数に、合計範囲・平均範囲を指定する事に気を付けてください。後は、SUMIF、COUNTIF、AVERAGEIFが、しっかり身についていれば問題ないでしょう。
  作業列(作業セル、計算セル)を使う事で、
 関数の引数に、さらに関数を入れ、関数をネスト(入れ子)にしますが、このネストが多くなると、数式が複雑になりすぎてしまい、他人が見たとき に数式の意味するところが分からなくなってしまいます。数式を書いた本人であっても、時が経つと解読が困難になる場合もあります。
 SUMIF、COUNTIF、AVERAGEIFでも同じことが出来ます。

 E列を作業列として使用します。 E2=A2&B2 として、最下行までコピーします。
A B C D E F G H
1 日付 金額 作業列 第二営業部
2 第一営業部 営業1課 2016/8/12 16393 第一営業部営業1課 営業2課
3 第一営業部 営業2課 2016/8/12 18847 第一営業部営業2課 合計金額
4 第一営業部 営業3課 2016/8/12 24840 第一営業部営業3課 件数
5 第一営業部 営業1課 2016/8/13 14704 第一営業部営業1課 平均金額
6 第一営業部 営業2課 2016/8/13 26148 第一営業部営業2課
7 第一営業部 営業3課 2016/8/13 12772 第一営業部営業3課
8 第一営業部 営業1課 2016/8/14 12859 第一営業部営業1課
9 第一営業部 営業2課 2016/8/14 19161 第一営業部営業2課
10 第一営業部 営業3課 2016/8/14 23670 第一営業部営業3課
11 第一営業部 営業1課 2016/8/15 27290 第一営業部営業1課
12 第一営業部 営業2課 2016/8/15 23418 第一営業部営業2課
13 第一営業部 営業3課 2016/8/15 22425 第一営業部営業3課
14 第二営業部 営業1課 2016/8/12 25077 第二営業部営業1課
15 第二営業部 営業2課 2016/8/12 28015 第二営業部営業2課
16 第二営業部 営業3課 2016/8/12 21846 第二営業部営業3課
17 第二営業部 営業1課 2016/8/13 24330 第二営業部営業1課
18 第二営業部 営業2課 2016/8/13 18325 第二営業部営業2課
19 第二営業部 営業3課 2016/8/13 21377 第二営業部営業3課
20 第二営業部 営業1課 2016/8/14 10034 第二営業部営業1課
21 第二営業部 営業2課 2016/8/14 12663 第二営業部営業2課
22 第二営業部 営業3課 2016/8/14 21711 第二営業部営業3課
23 第二営業部 営業1課 2016/8/15 29986 第二営業部営業1課
24 第二営業部 営業2課 2016/8/15 26620 第二営業部営業2課
25 第二営業部 営業3課 2016/8/15 27264 第二営業部営業3課

  H3=SUMIF(E:E,H1&H2,D:D)H4=COUNTIF(E:E,H1&H2)H5=AVERAGEIF(E:E,H1&H2,D:D)
 今回程度の、条件が2つくらいなら、どちら(SUMIFとSUMIFS等)でも良いでしょう。より複雑な条件になった場合、例えば、複数列でワイルドカードを使うような場合などこのような場合は、作業列を上手く使って、わかり易い仕組みにしておくことをお勧めします。
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.AND関数(すべての引数がTRUEのときにTRUE)

エクセル入門 > 数式 > AND関数(すべての引数がTRUEのときにTRUE)
 すべての引数がTRUE(真)と評価された場合はTRUE(真)を返します。
 引数のうち一つでもFALSE(偽)と評価された場合はFALSE(偽)を返します。
  書式
  AND(論理式1[, 論理式2], ...)
  論理式1
 TRUE または FALSE に評価できるテスト対象の 1 つ目の条件。
  論理式2, ...
 省略可能。TRUE または FALSE に評価できるテスト対象のその他の条件。条件は最大 255 個まで指定できます。
  使用例
 セル A1 80 、セル B1 70 と入っている場合
 =AND(A1>=65,B1>=65) … TRUE(真)=AND(A1>=75,B1>=75) … FALSE(偽)=AND(A1>=85,B1>=85) … FALSE(偽)
 つまり、
 =AND(TRUE,TRUE) … TRUE(真)=AND(TRUE,FALSE) … FALSE(偽)=AND(FALSE,FALSE) … FALSE(偽)
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.OR関数(いずれかの引数がTRUEのときにTRUE)

エクセル入門 > 数式 > OR関数(いずれかの引数がTRUEのときにTRUE)
 いずれかの引数がTRUE(真)のとき、TRUE(真)を返します。
 引数がすべてFALSE(偽)である場合は、FALSE(偽)を返します。
  書式
  OR(論理式1[, 論理式2], ...)
  論理式1
 TRUE または FALSE に評価できるテスト対象の 1 つ目の条件。
  論理式2, ...
 省略可能。TRUE または FALSE に評価できるテスト対象のその他の条件。条件は最大 255 個まで指定できます。
  使用例
 セル A1 80 、セル B1 70 と入っている場合
 =OR(A1>=65,B1>=65) … TRUE(真)=OR(A1>=75,B1>=75) … TRUE(真)=OR(A1>=85,B1>=85) … FALSE(偽)
 つまり、
 =AND(TRUE,TRUE) … TRUE(真)=AND(TRUE,FALSE) … TRUE(真)=AND(FALSE,FALSE) … FALSE(偽)
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.IS関数(対象をチェックし、結果に応じてTRUE,FALSE)

エクセル入門 > 数式 > IS関数(対象をチェックし、結果に応じてTRUE,FALSE)
  ISBLANK関数ISERR関数ISERROR関数ISLOGICAL関数ISNA関数ISNONTEXT関数ISNUMBER関数ISREF関数ISTEXT関数
 以上の関数は、名前がどれも ISで始まるため、 総称してして IS 関数 と呼ばれます。
 IS 関数は、指定された対象をチェックし、その結果に応じて論理値TRUEまたはFALSEを返します。
関数 働き
ISBLANK テストの対象 が空白セルを参照するとき TRUE を返します。
ISERR テストの対象 が #N/A を除くエラー値を参照するとき TRUE を返します。
ISERROR テストの対象 が任意のエラー値 (#N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME? または #NULL! のいずれか) を参照するとき TRUE を返します。
ISLOGICAL テストの対象 が論理値を参照するとき TRUE を返します。
ISNA テストの対象 がエラー値 #N/A (使用する値がない) を参照するとき TRUE を返します。
ISNONTEXT テストの対象 が文字列でない項目を参照するとき TRUE を返します (テストの対象が空白セルを参照するときも TRUE になります)。
ISNUMBER テストの対象 が数値を参照するとき TRUE を返します。
ISREF テストの対象 がセル範囲を参照するとき TRUE を返します。
ISTEXT テストの対象 が文字列を参照するとき TRUE を返します。

  書式
  ISBLANK(テストの対象)ISERR(テストの対象)ISERROR(テストの対象)ISLOGICAL(テストの対象)ISNA(テストの 対象)ISNONTEXT(テストの対象)ISNUMBER(テストの対象)ISREF(テストの対象)ISTEXT(テストの対象)
  テスト対象
 テストするデータ、セルを指定します。テストの対象引数には、空白セル、エラー値、論理値、文字列、数値、セル参照、または対象となるデータを参照する名前を指定することができます。
  使用例
 ISERROR関数の例を示します。
 セルA1に80、セルB1に0と入っている場合
 =ISERROR(A1/B1) … 80/0は#DIV/0のエラー値なのでTRUE=ISERROR(B1/A1) … 0/80は0なのでFALSE
 通常はIF関数と組み合わせて、
 =IF(ISERROR(A1/B1),"エラー",A1/B1) … 80/0は#DIV/0のエラー値なので"エラー"=IF(ISERROR(B1/A1),"エラー",B1/A1) … 0/80は0なので0
 ISERROR関数以外のIS関数も使い方は同じです。TRUEとなるチェック内容の違いとなります。
  応用例
  複数条件で検索し、複数データを取得する方法
 各種条件でデータを絞る場合は、オートフィルタが一般的に使用されますが、元のデータがあるシートで作業する為、間違ってデータを消してしまったり、使用する上で制約があります。また、VLOOKUPでは、単一条件のみであり、しかも1件しか取得できません。
  誕生日一覧から、指定誕生月の人を全員取り出す
 配列数式を使って、誕生日が指定月の該当者全員を取り出します。各種条件でデータを絞る場合は、オートフィルタが一般的に使用されますが、日付の中の、月だけの指定になると、お手上げです。(出来ない事はありませんが、かなり面倒です。
  関数で他シートへ並べ替える方法(サンプル:ABC分析)
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.IFERROR関数(エラーの場合は指定値、以外の場合は数式)

エクセル入門 > 数式 > 数式.IFERROR関数(エラーの場合は指定値、以外の場合は数式)
 数式がエラーとして評価される場合は指定の値を返し、それ以外の場合は数式の結果を返します。Excel2007以降に追加された関数です。 書式
  IFERROR(値, エラーの場合の値)
 
 エラーかどうかをチェックする引数です。
  ラーの場合の値
 値またはエラーの場合の値が空のセルの場合には、空の文字列値 ("") として扱われます。
 主に、数式の結果がエラー値の場合に、これを表示させないようにするために使われます。Excel2003までは、=IF(ISERROR(値),"",値)としてましたが、簡素化され記述が簡単になっています。
  使用例
 A列とB列に数値が入っているとして、 =A1/B1 とした場合、B列の値が0の場合、 #DIV/0! となります。
 この #DIV/0!を常時したくない場合には、 =IFERROR(A1/B1,"") とすることで、分母が0の時に空欄にできます。
 これは、 =IF(B1<>0,A1/B1,"")=IF(ISERROR(A1/B1),"",A1/B1) これらと同じことです。
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.MATCH関数(範囲から値を検索し一致する位置)

size="3">エクセル入門 > 数式 > MATCH関数(範囲から値を検索し一致する位置)
 セルの範囲内で指定された項目を検索し、その項目の相対的な位置を返します。セル範囲は、縦方向・横方向のどちらでも指定可能です。
  MATCH関数の書式
  MATCH(検査値, 検査範囲,照合の型)
  検査値
 値 (数値、文字列、または論理値)、またはこれらの値に対するセル参照を指定できます。
  検査範囲
 検索するセルの範囲を指定します。
 縦方向・横方向のどちらでも指定可能ですが、1列または1行のみになります。
  照合の型
  1 - 以下検査値以下の最大の値 が検索されます。このとき検査範囲のデータは、昇順に並べ替えておく必要があります。
  0 - 完全一致検査値に一致する値 のみが検索の対象となります。このとき検査範囲を並べ替えておく必要はありません。完全に一致する値が見つからない場合は、エラー値 #N/A が返されます。
 ※0の場合のみ、ワイルドカードが使用できます。
  -1 - 以上検査値以上の最小の値 が検索されます。このとき検査範囲のデータは、降順に並べ替えておく必要があります。
  MATCH関数の使用例:完全一致
F G H
1 ID 部署 氏名
2 21 営業 鈴木
3 22 総務 佐藤
4 23 人事 佐々木
5 24 製造 小林
6 25 営業 山田
7 26 総務 高橋
8 27 人事 伊藤
9 28 製造 山本
10 29 営業 田中

 上記の表において、A1セルにIDとして、「22」が入っている場合、 =MATCH(A1,F:F,0) このようにすることで、3と表示されます。検査範囲がF列となっているので、F列の3番目
  =MATCH(A1,F2:F10,0) このようにすることで、2と表示されます。検査範囲がF2:F10となっているので、F2から2番目
 MATCH関数は、単独で使うことよりも他の関数と組み合わせることで、非常に幅広い事を実現できるようになります。
  MATCH関数の応用例
  ワイルドカードが使える関数
 SUMIF COUNTIF SEARCH MATCH HLOOKUP VLOOKUP データベース関数を除く、2003までの関数です。2007以降なら、SUMIFS COUNTIFS AVERAGEIF AVERAGEIFS これらでも使えます。
  徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)
 検索されるキーワードで最も多いのが、MATCH関数 INDEX関数セル範囲から、指定された行と列が交差する位置にあるセルの参照を返します。INDEX関数の書式INDEX(範囲,行番号[,列番号]) 範囲セル範囲を指定します。セル範囲が1行または1列である場合、行番号または列番号はそれぞれ省略することができます。
  セルの参照範囲を可変にする(OFFSET、COUNTA、MATCH)
 数式の参照範囲を可変対応させます、つまり、入力データにより自動で拡張・縮小されるように関数を設定します。エクセルの表には、集計等の計算 式を入れますが、その集計範囲は固定になっているため、データの追加時には、計算範囲外になってしまったりするので注意が必要になります。
  入力規則のリストを、2段階の絞り込みで作成1
 一覧リストを使用して、「入力規則」の「リスト」を作成し、「リスト」の選択結果により、となりの「リスト」の内容を自動で変化させます、さら に、一覧リストへの追加・削除に自動対応させるものです。入力規則のリストを、追加・削除に自動対応で作成 を理解した上でお読みください。
  入力規則のリストを、2段階の絞り込みで作成2
 一覧リストを使用して、「入力規則」の「リスト」を作成し、「リスト」の選択結果により、となりの「リスト」の内容を自動で変化させます、「入 力規則のリストを、2段階の絞り込みで作成1」こちらのリストの縦横を入れ替えたパターンになります。入力規則のリストを、追加・削除に自動対応で作成一 覧リストを使用して、「入力規則」の「リスト」を作成し、
  【奥義】大量データでの高速VLOOKUP
 大量データからのVLOOKUPを大量行に設定すると再計算がなかなか終わらなくなります… そんな経験したことがある人は、少なからずいると思います、そんな場合に、高速にVLOOKUPを実行する方法です。以下の表で説明します。※ Sheet1は、A列で昇順に並び変えておきます。
  関数で他シートへ並べ替える方法(サンプル:ABC分析)
 通常、並べ替えは元データが変更されれば、毎回、並べ替えを行う必要がありますが、, これが、結構面倒な場合もあります。出来れば、マクロを組みたいところですが、マクロはちょっとと言う人もいるでしょう。そこで、関数で他シートへ並べ替える方法です。
  複数条件で検索し、複数データを取得する方法
 各種条件でデータを絞る場合は、オートフィルタが一般的に使用されますが、元のデータがあるシートで作業する為、間違ってデータを消してしまったり、使用する上で制約があります。また、VLOOKUPでは、単一条件のみであり、しかも1件しか取得できません。
 ※ ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.INDEX関数(範囲から指定されたセル)

size="3">エクセル入門 > 数式 > INDEX関数(範囲から指定されたセル)
 セル範囲から、指定された行と列が交差する位置にあるセルの参照を返します。
  INDEX関数の書式
  INDEX(範囲, 行番号[, 列番号])範囲
 セル範囲を指定します。
 セル範囲が 1 行または 1 列である場合、行番号または列番号はそれぞれ省略することができます。範囲が 1 列のみである場合は、INDEX(範囲,行番号)範囲が 1 行のみである場合は、INDEX(範囲,列番号)
  行番号
 範囲の中にあり、セル参照を返すセルの行位置を数値で指定します。
  列番号
 範囲の中にあり、セル参照を返すセルの列位置を数値で指定します。
  INDEX関数の使用例
F G H
1 ID 部署 氏名
2 21 営業 鈴木
3 22 総務 佐藤
4 23 人事 佐々木
5 24 製造 小林
6 25 営業 山田
7 26 総務 高橋
8 27 人事 伊藤
9 28 製造 山本
10 29 営業 田中

 上記の表において、 =INDEX(F2:H10,2,3) このようにすると、 H3 佐藤 と表示されます。
 これは、 F2:H10 この 範囲内 の、 2行目 (2行を1行目とするので3行) 3列目 (F列を1列目とするのでH列)つまり、 H3 セルになりますので、このH3セルの値が返ります。
  INDEX関数の応用例
  VLOOKUPを他の関数でやる方法
 VLOOKUPは便利な関数ですが、以下のような問題点がある場合は、これを使うことができません 問題点 1.検索列より左側の列を取り出す場合 2.検索値が255文字を超える時 そこで、他の関数で、これを実現する方法を検討します。方法1 =INDEX(範囲,MATCH(検索値,検索範囲,0),列番号) 方法2 {=IF(MIN(IF(検索範囲=検索値,
  徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)
 検索されるキーワードで最も多いのが、MATCH関数 INDEX関数セル範囲から、指定された行と列が交差する位置にあるセルの参照を返します。INDEX関数の書式INDEX(範囲,行番号[,列番号]) 範囲セル範囲を指定します。セル範囲が1行または1列である場合、行番号または列番号はそれぞれ省略することができます。
  【奥義】大量データでの高速VLOOKUP
 大量データからのVLOOKUPを大量行に設定すると再計算がなかなか終わらなくなります… そんな経験したことがある人は、少なからずいると思います、そんな場合に、高速にVLOOKUPを実行する方法です。以下の表で説明します。※ Sheet1は、A列で昇順に並び変えておきます。
  関数を使って行列を入れ替える方法
 行列を入れ替える方法として、一般には、「形式を選択して貼り付け」ですが、これでは、元のデータを更新しても入れ替え先にデータ反映されません。そこで、関数を使って行列を入れ替えることにより、直接データが反映するようにします。以下の表で説明します。
  複数条件で検索し、複数データを取得する方法
 各種条件でデータを絞る場合は、オートフィルタが一般的に使用されますが、元のデータがあるシートで作業する為、間違ってデータを消してしまったり、使用する上で制約があります。また、VLOOKUPでは、単一条件のみであり、しかも1件しか取得できません。
  関数で他シートへ並べ替える方法(サンプル:ABC分析)
 通常、並べ替えは元データが変更されれば、毎回、並べ替えを行う必要がありますが、, これが、結構面倒な場合もあります。出来れば、マクロを組みたいところですが、マクロはちょっとと言う人もいるでしょう。そこで、関数で他シートへ並べ替える方法です。
  誕生日一覧から、指定誕生月の人を全員取り出す
 配列数式を使って、誕生日が指定月の該当者全員を取り出します。各種条件でデータを絞る場合は、オートフィルタが一般的に使用されますが、日付の中の、月だけの指定になると、お手上げです。(出来ない事はありませんが、かなり面倒です。
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.OFFSET関数(行数と列数シフトした位置のセル範囲)

エクセル入門 > 数式 > OFFSET関数(行数と列数シフトした位置のセル範囲)
 基準のセルまたはセル範囲から指定された行数と列数だけシフトした位置にある、指定の高さと幅のセル範囲の参照 を返します。
 つまり、
 基準セルから、指定数だけ移動したセルを起点として、指定の大きさのセル範囲を取得出来ます。
  書式
  OFFSET(基準, 行数, 列数, [高さ], [幅])
  基準
 基準となるセル範囲の参照を指定します。
  行数
 基準のセルを縦方向にずらす数です。基準の左上隅のセルを上方向または下方向へシフトする距離を行数単位で指定します。行数に 正の数を指定すると下方向 へシフトし、 負の数を指定すると上方向 へシフトします。
  列数
 基準のセルを横方向にずらす数です。基準の左上隅のセルを左方向または右方向へシフトする距離を列数単位で指定します。列数に 正の数を指定すると右方向 へシフトし、 負の数を指定すると左方向 へシフトします。
  高さ
 基準のセルをずらした先の取得したい行数です。オフセット参照の行数を指定します。高さは正の数である必要があります。 省略すると、基準のセル範囲と同じ行数 であると見なされます。
 
 基準のセルをずらした先の取得したい行数です。オフセット参照の列数を指定します。幅は正の数である必要があります。 省略すると、基準のセル範囲と同じ列数 であると見なされます。
  もっとわかり易い説明をすると
  OFFSET(基準セル, 縦にずらす数, 横にずらす数, 取得したい行数, 取得したい列数)
 OFFSET(B3,4,2,5,3)

 これは、
  B3 セルから下に 4 右に 2 移動した先(D7セル)から、高さ 5 3 のセル範囲
  使用例
A B C
1 101 111 121
2 102 112 122
3 103 113 123
4 104 114 124
5 105 115 125
6 106 116 126
7 107 117 127
8 108 118 128
9 109 119 129
10 110 120 130

 上記の表において、
  =OFFSET(A1,3,1,1,1)
 とすると、
  B4 セル となりますので、 114 になります。
 つまり、
  A1 セルから 3行下 1列右 のセルで B4 セル
 そこから、 高さ1 幅1 なので B4 のセル1つです。
  =OFFSET(A1,3,1,2,2)
 とすると、
  B4~C5 セル範囲 となります。
 が、しかし、
 セル範囲を1つのセルに表示できませんので、
  #VALUE!
 となってしまいます。
 多くの場合、
 OFFSET関数は、通常は他の関数・機能と組み合わせて使用します。
  =SUM(OFFSET(A1,3,1,2,2))
 とすることで、
  B4~C5 合計
  478 を求める事が出来ます。
 高さ幅を省略した場合は、基準セル範囲と同じ大きさになります。つまり、セル範囲をずらすだけになります。
  =SUM(OFFSET(A1:A10,0,2))
 これは、
 =SUM(C1:C10)
 と同じことになります。
 応用としては、
  行数, 列数, 高さ, 幅
 これらを他のセル参照や関数にする事で、可変のセル範囲にする事が出来ます。
 下の応用例を参考にしてください。
  応用例
  徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)
 検索されるキーワードで最も多いのが、MATCH関数 INDEX関数セル範囲から、指定された行と列が交差する位置にあるセルの参照を返します。INDEX関数の書式INDEX(範囲,行番号[,列番号]) 範囲セル範囲を指定します。セル範囲が1行または1列である場合、行番号または列番号はそれぞれ省略することができます。
  セルの参照範囲を可変にする(OFFSET、COUNTA、MATCH)
 数式の参照範囲を可変対応させます、つまり、入力データにより自動で拡張・縮小されるように関数を設定します。エクセルの表には、集計等の計算 式を入れますが、その集計範囲は固定になっているため、データの追加時には、計算範囲外になってしまったりするので注意が必要になります。
  入力規則のリストを、2段階の絞り込みで作成1
 一覧リストを使用して、「入力規則」の「リスト」を作成し、「リスト」の選択結果により、となりの「リスト」の内容を自動で変化させます、さら に、一覧リストへの追加・削除に自動対応させるものです。入力規則のリストを、追加・削除に自動対応で作成 を理解した上でお読みください。
  入力規則のリストを、2段階の絞り込みで作成2
 一覧リストを使用して、「入力規則」の「リスト」を作成し、「リスト」の選択結果により、となりの「リスト」の内容を自動で変化させます、「入 力規則のリストを、2段階の絞り込みで作成1」こちらのリストの縦横を入れ替えたパターンになります。入力規則のリストを、追加・削除に自動対応で作成一 覧リストを使用して、「入力規則」の「リスト」を作成し、
  ピポットテーブルの参照範囲を、追加・削除に自動対応で作成
 ピボットテーブルの参照範囲を可変に設定し、データの追加・削除に自動で対応させます。以下の表で説明します。名前を定義します。シート「リスト」を選択します。Ctrl+F3で名前定義を起動する。メニュー等からの起動はバージョン毎に違います。
  グラフのデータ範囲を可変にする
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.INDIRECT関数(参照文字列で間接的にセルを指定)

エクセル入門 > 数式 > INDIRECT関数(参照文字列で間接的にセルを指定)
 指定される文字列への参照を返します。
 参照文字列によって指定されるセルに入力されている文字列を介して、間接的なセルの指定を行います。
 参照文字列で指定されるセル参照を返しますが、セル参照はすぐに計算され、結果としてセルの内容が表示されます。
  書式
  INDIRECT(参照文字列[,参照形式])
  参照文字列
 参照として定義されている名前が入力されているセルへの参照、または文字列としてのセルへの参照を指定します。
 参照文字列に適切なセル参照を指定していないと、エラー値 #REF! が返されます。
 参照文字列で他のブックを参照している場合(外部参照)、そのブックを開いておく必要があります。
 参照先のブックを開いていない場合、INDIRECT 関数は、エラー値 #REF! を返します。
  参照形式
 参照文字列で指定されたセルに含まれるセル参照の種類を指定します。 TRUE(1) を指定するか省略
 参照文字列には A1 形式のセル参照が入力されていると見なされます。
  FALSE(0) を指定
 参照文字列には R1C1 形式のセル参照が入力されていると見なされます。
  使用例
 A1セルに"東京都"、B1セルに"A1"と入っていたとして
 =INDIRECT(B1) … "東京都"
 となります。
 つまり、
 =INDIRECT(B1) → INDIRECT("A1") → A1セル
 A1セルに"Sheet2"、B1セルに"A1"と入っていたとして
 =INDIRECT(A1&"!"&B1) … Sheet2のA1セルの値
 となります。
 つまり、
 =INDIRECT(A1&"!"&B1) → INDIRECT("SHeet2!A1") → Sheet2のA1セル
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.COLUMN関数(セル参照の列番号)

エクセル入門 > 数式 > COLUMN関数(セル参照の列番号)
 引数として指定されたセル参照の列番号を返します。
  書式
  COLUMN([範囲])
  範囲
 省略可能です。
 列番号を調べるセルまたはセル範囲の参照を指定します。範囲を省略すると、COLUMN関数が入力されているセルの列番号が返されます。
  使用例
 =COLUMN(C5) … C5セルの列数の 3
 =COLUMN() … このCOLUMN関数が入力されているセルの列数
  応用例
  関数を使って行列を入れ替える方法
 行列を入れ替える方法として、一般には、「形式を選択して貼り付け」ですが、これでは、元のデータを更新しても入れ替え先にデータ反映されません。そこで、関数を使って行列を入れ替えることにより、直接データが反映するようにします。以下の表で説明します。
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.ROW関数(セル参照の行番号)

エクセル入門 > 数式 > ROW関数(セル参照の行番号)
 引数として指定されたセル参照の行番号を返します。
  書式
  ROW([範囲])
  範囲
 省略可能です。
 行番号を調べるセルまたはセル範囲の参照を指定します。
 範囲を省略すると、ROW関数が入力されているセルの行番号が返されます。
  使用例
 =ROW(A5) … A5セルの行数の 5 =ROW() … このROW関数が入力されているセルの行番号
  応用例
  関数を使って行列を入れ替える方法
 行列を入れ替える方法として、一般には、「形式を選択して貼り付け」ですが、これでは、元のデータを更新しても入れ替え先にデータ反映されません。そこで、関数を使って行列を入れ替えることにより、直接データが反映するようにします。以下の表で説明します。
  複数条件で検索し、複数データを取得する方法
 各種条件でデータを絞る場合は、オートフィルタが一般的に使用されますが、元のデータがあるシートで作業する為、間違ってデータを消してしまったり、使用する上で制約があります。また、VLOOKUPでは、単一条件のみであり、しかも1件しか取得できません。
  関数で他シートへ並べ替える方法(サンプル:ABC分析)
 通常、並べ替えは元データが変更されれば、毎回、並べ替えを行う必要がありますが、, これが、結構面倒な場合もあります。出来れば、マクロを組みたいところですが、マクロはちょっとと言う人もいるでしょう。そこで、関数で他シートへ並べ替える方法です。
  VLOOKUPを他の関数でやる方法
 VLOOKUPは便利な関数ですが、以下のような問題点がある場合は、これを使うことができません 問題点 1.検索列より左側の列を取り出す場合 2.検索値が255文字を超える時 そこで、他の関数で、これを実現する方法を検討します。方法1 =INDEX(範囲,MATCH(検索値,検索範囲,0),列番号) 方法2 {=IF(MIN(IF(検索範囲=検索値,
  誕生日一覧から、指定誕生月の人を全員取り出す
 配列数式を使って、誕生日が指定月の該当者全員を取り出します。各種条件でデータを絞る場合は、オートフィルタが一般的に使用されますが、日付の中の、月だけの指定になると、お手上げです。(出来ない事はありませんが、かなり面倒です。
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.CONCATENATE関数(複数の文字列を結合)

エクセル入門 > 数式 > CONCATENATE関数(複数の文字列を結合)
 複数の文字列を1つの文字列に結合します。
 引数には、文字列、数値、セル参照が指定できます。
  書式
  CONCATENATE(文字列1[,文字列2,...])
 ※[]は省略可能です。
 
  使用例
 セルA1に"ビバ"
 セルB1に"EXCEL"
 と入っている場合
 =CONCATENATE(A1,B1) … "ビバEXCEL"
 =CONCATENATE(A1,B1,"!") … "ビバEXCEL!"
  演算子 &(アンパサンド)
 CONCATENATE関数は、実務での使用頻度は低いです。
 演算子 &(アンパサンド)が使われることの方が多いでしょう。
 好みの問題ですが、関数名が長いので & が使われることの方が多いです。
 =A1&B1 … "ビバEXCEL"
 =A1&B1&"!" … "ビバEXCEL!"
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.FIND関数(指定文字列を他の文字列の中で検索)

エクセル入門 > 数式 > FIND関数(指定文字列を他の文字列の中で検索)
 指定された文字列を他の文字列の中で検索し、その文字列が最初に現れる位置を左端から数え、その位置番号を返します、
 大文字と小文字は区別されます。
  書式
  FIND(検索文字列, 対象[, 開始位置])
 ※[]は省略可能です。
  検索文字列 検索する文字列を指定します。
  対象 検索文字列を含む文字列(検索される文字列)を指定します。
  開始位置 検索を開始する位置を指定します。
 対象の先頭文字から検索を開始するときは 1 を指定します。
 開始位置を省略すると、1 を指定したと見なされます。
 ※検索文字列 が対象の中で見つからない場合、エラー値 #VALUE! が返されます。
  使用例
 セルA1に"ビバEXCEL"
 と入っている場合
 =FIND("バ",A1) … 2
 =FIND("E",A1) … 3
 =FIND("e",A1) … #VALUE!(大文字と小文字は区別されます)
 =FIND("E",A1,4) … 6(4文字目以降の"E"を検索)
  注意
 FIND 関数は、大文字と小文字は区別され、ワイルドカード文字は使用できません。大文字と小文字を区別しないで検索する場合や、ワイルドカード文字を使用する場合は、 SEARCH関数 を使用します。
 指定された文字列を他の文字列の中で検索し、その文字列が最初に現れる位置を左端から数え、その位置番号を返します、大文字と小文字は区別され ません。書式 SEARCH(検索文字列,対象[,開始位置]) ※[]は省略可能です。, 検索文字列 検索する文字列を指定します。
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.SEARCH関数(指定文字列を他の文字列の中で検索)

エクセル入門 > 数式 > SEARCH関数(指定文字列を他の文字列の中で検索)
 指定された文字列を他の文字列の中で検索し、その文字列が最初に現れる位置を左端から数え、その位置番号を返します、
 大文字と小文字は区別されません。
  書式
  SEARCH(検索文字列, 対象[, 開始位置])
 ※[]は省略可能です。
  
  検索文字列 検索する文字列を指定します。
 ※ワイルドカードが使用できます。
  ただし、使用頻度は低いでしょう。
  
  対象 検索文字列を含む文字列(検索される文字列)を指定します。
  
  開始位置 検索を開始する位置を指定します。
 対象の先頭文字から検索を開始するときは 1 を指定します。
 開始位置を省略すると、1 を指定したと見なされます。
  
 ※検索文字列 が対象の中で見つからない場合、エラー値 #VALUE! が返されます。
  
  使用例
 セルA1に"ビバEXCEL"
 と入っている場合
 =SEARCH("バ",A1) … 2
 =SEARCH("E",A1) … 3
 =SEARCH("e",A1) … 3(大文字と小文字は区別されません)
 =SEARCH("E",A1,4) … 6(4文字目以降の"E"を検索)
 =SEARCH("EL",A1) … 6
  注意 SEARCH 関数は、大文字と小文字は区別されません。大文字と小文字を区別して検索する場合は、 FIND関数 を使用します。
 指定された文字列を他の文字列の中で検索し、その文字列が最初に現れる位置を左端から数え、その位置番号を返します、大文字と小文字は区別されます。書式 FIND(検索文字列,対象[,開始位置]) ※[]は省略可能です。検索文字列 検索する文字列を指定します。
  ワイルドカード
 検索条件には、半角の疑問符(?)または半角のアスタリスク(*)をワイルドカード文字として使用できます。
 疑問符(?)は任意の1文字を表し、
 アスタリスク(*)は任意の文字列(0個または1個以上の文字)を表します。
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.LEFT関数(文字列の先頭から指定文字数の文字)

エクセル入門 > 数式 > LEFT関数(文字列の先頭から指定文字数の文字)
 文字列の先頭から指定された数の文字を返します。
  書式
  LEFT(文字列 [, 文字数])
  文字列 取り出す文字を含む文字列を指定します。
  文字数 取り出す文字数(文字列の先頭からの文字数)を指定します。文字数が文字列の文字数より大きい場合、文字列全体が返されます。文字数を省略すると、1 を指定したと見なされます。
  使用例
 セルA1に"ビバEXCEL"
 と入っている場合
 =LEFT(A1,1) … "ビ"
 =LEFT(A1,2) … "ビバ"
 =LEFT(A1,3) … "ビバE"
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.RIGHT関数(文字列の末尾から指定文字数の文字)

エクセル入門 > 数式 > RIGHT関数(文字列の末尾から指定文字数の文字)
 文字列の末尾(右端)から指定された数の文字を返します。
  書式
  LEFT(文字列 [, 文字数])
 
  文字列 取り出す文字を含む文字列を指定します。
  文字数 取り出す文字数(文字列の末尾(右端)からの文字数)を指定します。文字数が文字列の文字数より大きい場合、文字列全体が返されます。文字数を省略すると、1 を指定したと見なされます。
  使用例
 セルA1に"ビバEXCEL"
 と入っている場合
 =RIGHT(A1,4) … "XCEL"
 =RIGHT(A1,5) … "EXCEL"
 =RIGHT(A1,6) … "バEXCEL"
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.MID関数(文字列の指定位置から指定文字数の文字)

エクセル入門 > 数式 > MID関数(文字列の指定位置から指定文字数の文字)
 文字列の任意の位置から指定された文字数の文字を返します。
  書式
  MID(文字列, 開始位置, 文字数)
  文字列 取り出す文字を含む文字列を指定します。
  開始位置
 文字列から取り出す先頭文字の位置(文字番号)を数値で指定します。文字列の先頭文字の位置が 1 になります。
  文字数 取り出す文字数を指定します。
  使用例
 セルA1に"ビバEXCEL"
 と入っている場合
 =MID(A1,1,2) … "ビバ"
 =MID(A1,3,1) … "E"
 =MID(A1,3,2) … "EX"
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.LEN関数(文字列に含まれる文字数を返します)

エクセル入門 > 数式 > LEN関数(文字列に含まれる文字数を返します)
 文字列の文字数を返します。
  書式LEN(文字列)
  文字列 文字数を調べる文字列を指定します。
  使用例
 セルA1に"ビバ"
 と入っている場合
 セルA2に"EXCEL"
 セルA3に"ビバEXCEL"
 セルA4に"ビバ EXCEL"
 =LEN(A1) … 2
 =LEN(A2) … 5
 =LEN(A3) … 7
 =LEN(A4) … 8
 ※LEN関数は全角・半角に関係なく、各文字が常に 1 つとして数えられます。
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.SUBSTITUTE関数(文字列中の指定文字を置換)

エクセル入門 > 数式 > SUBSTITUTE関数(文字列中の指定文字を置換)
 文字列中の指定された文字をほかの文字に置き換えます。
 大文字と小文字は区別されます。
  書式
  SUBSTITUTE(文字列, 検索文字列, 置換文字列 [, 置換対象])
  文字列 置き換える文字を含む文字列を指定します。
 文字列が入力されたセル参照を指定できます。
  検索文字列 検索する文字列を指定します。
  置換文字列 検索文字列を検索して置き換える文字列を指定します。
  置換対象 指定した場合は、文字列中の置換対象番目の検索文字列だけが置き換えられます。
 省略した場合は、文字列中のすべての検索文字列が置き換えの対象となります。
  使用例
 セルA1に"ビバEXCEL"
 と入っている場合
 =SUBSTITUTE(A1,"EXCEL","ACCESS") … ビバACCESS
 =SUBSTITUTE(A1,"E","e") … ビバeXCeL
 =SUBSTITUTE(A1,"E","-E") … ビバ-EXC-EL
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.REPLACE関数(文字列中の指定数の文字を置換)

エクセル入門 > 数式 > REPLACE関数(文字列中の指定数の文字を置換)
 文字列中の指定された文字数の文字を別の文字に置き換えます。
  書式
  REPLACE(文字列, 開始位置, 文字数, 置換文字列)
  文字列 置き換えを行う文字列を指定します。
  開始位置 置換文字列と置き換える先頭文字の位置 (文字番号) を数値で指定します。
 文字列の先頭文字の位置が 1 になります。
  文字数 置換文字列と置き換える文字列の文字数を指定します。
  置換文字列 文字列の一部と置き換える文字列を指定します。
  使用例
 セルA1に"ビバEXCEL"
 と入っている場合
 =REPLACE(A1,3,5,"ACCESS") … ビバACCESS
 =REPLACE(A1,3,0,"-") … ビバ-EXCEL(文字数が0なので文字列が挿入されます)
 =REPLACE(A1,3,5,"") … ビバ(置換文字列が空文字なので文字が消えます)
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.TEXT関数(数値を書式設定した文字列に変換)

エクセル入門 > 数式 > TEXT関数(数値を書式設定した文字列に変換)
 数値(日付・時刻を含む)を、特別な書式文字列を使用して表示書式を指文字列し、文字列に変換します。
 この関数は、数値を読みやすい書式で表示したり、数値を文字列や記号と結合する場合に便利です。
 TEXT関数を使用すると、数値が文字列に変換されるため、結果を数値として計算できなくなります。
  書式
  TEXT(数値, 表示形式)数値
 数値、戻り値が数値となる数式、または数値を含むセルの参照を指定。
  表示形式
 書式文字列を、引用符で囲んだテキスト文字列として指定します。
  数値の表示形式 … 書式文字列
書式記号 表示結果
0 (ゼロ) 数値の桁数が表示形式の 0 の桁数より少ない場合に、表示形式の桁まで 0 が付加されます。
# 入力した数値の桁数が、小数点のいずれの側でも表示形式の # 記号の数より少ない場合に 0 は表示されません。
? 小数点のいずれの側にも有効桁以外の 0 にスペースが挿入されるため、列内で小数点の位置が整列されます。
. (ピリオド) 数値に小数点を表示します。
, (コンマ) 数値に桁区切り記号を表示します。
\ 数値に\(円記号)を表示します。
% 数値を%(百分率)に変換して表示します。

  日付の表示形式 … 書式文字列
書式記号 表示結果
yy 00~99(西暦の年)
yyyy 1900~9999(西暦の年)
e 1~99(和暦の年)
ee 01~99(和暦の年)
g H(元号のアルファベット)
gg 平(元号の1文字目)
ggg 平成(元号)
m 1~12(月の数字表記)
mm 01~12(月の数字表記)
mmm Jan~Dec(月の短縮英語表記)
mmmm January~December(月の英語表記)
d 1~31(日)
dd 01~31(日)
ddd sun~sat(曜日の短縮英語表記)
dddd Sunday~Satrday(曜日の英語表記)
aaa 日~土(曜日の日本語1文字表記)
aaaa 日曜日~土曜日(曜日の日本語表記)

  時刻の表示形式 … 書式文字列
書式記号 表示結果
h 先頭に 0 を付けずに数値で時を表示します。
[h]
 24 を超える時の数値で時間を返します。
 
hh 1 桁の場合は先頭に 0 を付けて数値で時を表示します。表示形式に AM または PM が含まれている場合は、12 時間表示で時が表示されます。それ以外の場合は、24 時間表示で表示されます。
m 先頭に 0 を付けずに数値で分を表示します。
[m] 60 を超える分の数値で時間を返します。
mm 1 桁の場合は先頭に 0 を付けて数値で分を表示します。
s 先頭に 0 を付けずに数値で秒を表示します。
[s] 60 を超える秒の数値で時間を返します。
ss 1 桁の場合は先頭に 0 を付けて数値で秒を表示します。

  使用例
A1セルの内容 TEXT関数 表示結果
12 =TEXT(A1,"000") 012
12345 =TEXT(A1,"#,###") 12,345
12345 =TEXT(A1,"\#,###") \12,345
0.123 =TEXT(A1,"0.0%") 12.3%
2013/5/8 =TEXT(A2,"yyyy年mm月dd日") 2013年05月08日
2013/5/8 =TEXT(A1,"aaa")
10:20:30 =TEXT(A1,"hh時mm分ss秒") 10時20分30秒
26:00:00 =TEXT(A1,"[h]") 26
20180207  =TEXT(A1,"0000!/00!/00") 2018/02/07"0000/00/00"では、#VALUE!となってしまいます。/の前に ! を指定することで変換が出来ています。ただし、この!の正式な解説は、ほとんど見当たりません。

 ※表示結果は数値・日付に見えても、すべて文字列となります。
 
 
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.VALUE関数(文字列を数値に変換する)

エクセル入門 > 数式 > VALUE関数(文字列を数値に変換する)
 数値を表す文字列を数値に変換します。
  書式
  VALUE(文字列)
 
  文字列
 セル参照、関数が指定できます。
 数値、日付、時刻の文字列を指定してください。
 上記以外の文字列を指定すると、#VALUE!となります。
  使用例
 セルA1に
 ="0"&"1"
 と入っている場合は、これは文字列として"01"となっています。
 そこで、
 =VALUE(A1) … 1(数値としての1となります。)
  数式中の値は必要に応じて自動的に数値に変換される
 計算を行うだけなら、通常は数式の中でVALUE関数を使用する必要はありません。
 つまり、"01"+1は、自動的に数値に変換されて2となります。
  VALUE関数が必要となるのは
 ・関数の結果が文字列となっている場合に、数値としてセルに表示する場合。
 ・値の比較をする関数で数値同士の比較を行う場合。
  例.VLOOKUP関数、MATCH関数の検索値等に使う場合
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.TRIM関数(文字列から余分なスペースを削除)

エクセル入門 > 数式 > TRIM関数(文字列から余分なスペースを削除)
 文字列から不要なスペース(半角、全角)をすべて削除します。
 単語間に複数のスペースが連続して含まれている場合は一つのスペースのみにします。
 文字列の前後のスペースはすべて削除します。
  書式
  TRIM(文字列)
 
  文字列
 余分なスペースを削除する文字列またはセル参照を指定します。
 ※スペースは、半角、全角、どちらも対象となります。
 
  使用例
 セルA1に" ビバ EXCEL "と入っている場合
 =TRIM(A1) … "ビバ EXCEL"
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.UPPER関数(文字列の英字をすべて大文字に変換)

エクセル入門 > 数式 > UPPER関数(文字列の英字をすべて大文字に変換)
 文字列に含まれる英字をすべて大文字に変換します。
  書式
  UPPER(文字列)
 
  文字列
 大文字に変換する文字列またはセル参照を指定します。
 それ以外の文字は変換されません。
 
  使用例
 セルA1に"Excel"と入っている場合
 =UPPER(A1) … "EXCEL"
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.LOWER関数(文字列の英字をすべて小文字に変換)

エクセル入門 > 数式 > LOWER関数(文字列の英字をすべて小文字に変換)
 文字列に含まれる英字をすべて小文字に変換します。
  書式
  LOWER(文字列)
 
  文字列
 小文字に変換する文字列またはセル参照を指定します。
 それ以外の文字は変換されません。
 
  使用例
 セルA1に"EXCEL"と入っている場合
 =LOWER(A1) … "excel"
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.ASC関数(全角の英数カナ文字を半角に変換)

エクセル入門 > 数式 > ASC関数(全角の英数カナ文字を半角に変換)
 全角 (2 バイト) の文字を半角 (1 バイト) の文字に変換します。
  書式
  ASC(文字列)
 
  文字列
 文字列またはセル参照を指定します。
 文字列に全角文字が含まれない場合は、文字列は変換されません。
 
  使用例
 セルA1に"ビバEXCEL"と入っている場合
 =ASC(A1) … "ビバEXCEL"(ビバは半角カナです)
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.JIS関数(半角の英数カナ文字を全角に変換)

エクセル入門 > 数式 > JIS関数(半角の英数カナ文字を全角に変換)
 文字列内の半角 (1 バイト) の文字を全角 (2 バイト) の文字に変換します。
  書式
  JIS(文字列)
 
  文字列
 文字列またはセル参照を指定します。
 文字列に半角の英数カナ文字が含まれない場合は、文字列は変更されません。
  
  使用例
 セルA1に"ビバEXCEL"と入っている場合
 =LOWER(A1) … "ビバEXCEL"(EXCELは全角です)
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.PHONETIC関数(文字列からふりがなを抽出)

エクセル入門 > 数式 > PHONETIC関数(文字列からふりがなを抽出)
 文字列からふりがなを抽出します。
  書式
  PHONETIC(範囲)
  範囲
 ふりがなの文字列を含む 1 つまたは複数のセル参照を指定します。
  使用例
 A1セルに"東京都"と入れたとして
 =PHONETIC(A1) … "トウキョウト"
 となります。
 ただし、
 A1セルに、、「ふりがな」が無い場合(他のソフトから文字列をコピペ等)は、
 "東京都"
 と、そのまま表示されます。
 ※表記の全角カタカナは、「ふりがなの設定」で変更できます。
 2007以降なら、「ホーム」タブ→フォントグループ右下の「亜(ア)」のアイコン2003なら、「書式」→「ふりがな」→「設定」
  応用例
  ひらがな⇔カタカナの変換
 「ひらがな」を「カタカナ」に、「カタカナ」を「ひらがな」に変換する方法の説明です。ひらがな→カタカナ変換 A1セル「にっぽんたろう」、これをB1セルに「ニッポンタロウ」と表示するには、B1セルに、=PHONETIC(A1) これで、「カタカナ」で表示されたと思います。
  ユーザー定義関数でフリガナを取得する(GetPhonetic)
 ワークシート関数の、「PHONETIC」では、他のソフト等からコピペした漢字は取得できません。そこで、VBAでユーザー定義関数を作成 し、読みを取得できるようにします。A列はメモ帳よりコピペしました。B列に、ユーザー定義関数を指定して、振り仮名を取得しています。
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.日付時刻のシリアル値

エクセル入門 > 数式 > 日付時刻のシリアル値
 エクセルの日付時刻は、シリアル値と呼ばれる数値で管理されています。
 日付時刻のシリアル値は、1900/1/1を基準にした数値です。1900/1/1が1です。つまり1900/1/3は3です。
 シリアル値→日付
 10000 → 1927/5/1820000 → 1954/10/330000 → 1982/2/1840000 → 2009/7/641000 → 2012/4/142000 → 2014/12/27
 そして、時刻は、1時=1÷24(時間)=0.0416666666…1分=1÷24(時間)÷60(分)=0.000694444…1秒=1÷24(時間)÷60(分)÷60(秒)=0.000011574…になります。
 この数値自体に意味は有りません。ただ結果として、小数以下の適当な数値を入力しても、近似値の時刻で表示することができます。
 2011/4/20 10:10:10は、40634.4237268519です。40634が2011/4/20で、0.4237268519が10:10:10です。
 ちなみに、数値0は、1900/1/0 0:0:0になってしまいます。

数式.DATE関数(年,月,日を日付に)

エクセル入門 > 数式 > DATE関数(年,月,日を日付に)
 引数の年,月,日を日付を表すシリアル値に変換します。
 セルにDATE関数を入力すると、セルの表示形式は自動的に日付形式に設定されます。
  書式
  DATE(年, 月, 日)
  1 ~ 4 桁で年を指定します。
  月を表す正または負の整数を指定します。
 ただし、返される値の範囲は 1 ~ 12 (1 月から 12 月) になります。
  12より大きい数値 を指定:
 指定した年の最初の月に、月引数を加えた月を指定したと見なされます。
  月に1より小さい数値 を指定:
 指定した年の最初の月から、月引数の絶対値に 1 を加えた月数を減算した月を指定したと見なされます。
 
 日を表す正または負の整数を指定します。
 ただし、返される値の範囲は 1 ~ 31 になります。 指定した月の最終日より大きい数値 を日に指定:
 その月の最初の日に日引数を加えた日を指定したと見なされます。
  日に1より小さい数値 を指定:
 指定した月の最初の日から、日引数の絶対値に 1 を加えた日数を減算した日を指定したと見なされます。
  使用例
 セルA1に2013、セルB1に5、セルC1に15と入っている場合
 =DATE(A1,B1,C1) … 2013/5/15=DATE(A1,13,C1) … 2014/1/15(12月の翌月)=DATE(A1,-1,C1) … 2012/11/15(0が12月、-1が11月)=DATE(A1,B1+1,C1) … 2013/6/15(翌月)
 =DATE(A1,B1,0) … 2013/4/30(前月末日)=DATE(A1,B1,32) … 2013/6/1(当月1日の32日後)=DATE(A1,B1,C1+1) …2013/5/16(翌日)
  応用例
  1年後の日付、○か月後の日付
 起算日からの一年間の最後の日の求め方です。起算日が2011/4/1なら、2012/3/31の求め方です。セルA1に起算日が入っており、 セルA2に一年間の最終日を設定する場合。一年後の日付 よくみかけるのは、=DATE(YEAR(A1)+1,MONTH(A1),DAY(A1))-1 DATEは、DATE(年,
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.DATEVALUE関数(日付を表す文字列を日付に)

エクセル入門 > 数式 > DATEVALUE関数(日付を表す文字列を日付に)
 文字列として格納された日付を、Excelで日付として認識できるシリアル値に変換します。
  書式
  DATEVALUE(日付文字列)
  日付文字列
 日付を表す文字列を指定します。
 Excelの組み込みの日付表示形式での日付を表す文字列です。
  使用例
 セルA1に2013、セルB1に5、セルC1に15と入っている場合
 =DATEVALUE(A1&"/"&B1&"/"&C1) … 2013/5/15=DATEVALUE(A1&"年"&B1&"月"&C1&"日") … 2013/5/15
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.YEAR関数(日付を年に)

エクセル入門 > 数式 > YEAR関数(日付を年に)
 日付に対応する年を返します。
 引数に指定した日付の西暦年を、1900(年)~9999(年)の範囲の整数で返します。
  書式
  YEAR(シリアル値)
 
  シリアル値
 日付の入っているセル参照または、DATE関数等を指定します。
 
  使用例
 セルA1に2013/5/15と入っている場合
 =YEAR(A1) … 2013※セルの表示が和暦になっていても、YEAR関数は西暦年を返します。
  応用例
  1年後の日付、○か月後の日付
 起算日からの一年間の最後の日の求め方です。起算日が2011/4/1なら、2012/3/31の求め方です。セルA1に起算日が入っており、 セルA2に一年間の最終日を設定する場合。一年後の日付 よくみかけるのは、=DATE(YEAR(A1)+1,MONTH(A1),DAY(A1))-1 DATEは、DATE(年,
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.MONTH関数(日付を月に)

エクセル入門 > 数式 > MONTH関数(日付を月に)
 日付に対応する月を返します。
 1(月)~12(月)の範囲の整数です。
  書式
  YEAR(シリアル値)
 
  シリアル値 検索する月の日付を指定します。
 日付の入っているセル参照または、DATE関数等を指定します。
 
  使用例
 セルA1に2013/5/15と入っている場合
 =MONTH(A1) … 5
  応用例
  1年後の日付、○か月後の日付
 起算日からの一年間の最後の日の求め方です。起算日が2011/4/1なら、2012/3/31の求め方です。セルA1に起算日が入っており、 セルA2に一年間の最終日を設定する場合。一年後の日付 よくみかけるのは、=DATE(YEAR(A1)+1,MONTH(A1),DAY(A1))-1 DATEは、DATE(年,
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.DAY関数(日付を日に)

エクセル入門 > 数式 > DAY関数(日付を日に)
 日付に対応する日を返します。
 1~31の範囲の整数です。
  書式
  YEAR(シリアル値)
 
  シリアル値 検索する日の日付を指定します。
 日付の入っているセル参照または、DATE関数等を指定します。
 
  使用例
 セルA1に2013/5/15と入っている場合
 =DAY(A1) … 14
  応用例
  1年後の日付、○か月後の日付
 起算日からの一年間の最後の日の求め方です。起算日が2011/4/1なら、2012/3/31の求め方です。セルA1に起算日が入っており、 セルA2に一年間の最終日を設定する場合。一年後の日付 よくみかけるのは、=DATE(YEAR(A1)+1,MONTH(A1),DAY(A1))-1 DATEは、DATE(年,
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.TIME関数(時,分,秒を時刻に)

エクセル入門 > 数式 > TIME関数(時,分,秒を時刻に)
 引数の時,分,秒を時刻を表すシリアル値に変換します。
 セルにTIME関数を入力すると、セルの表示形式は自動的に時刻形式に設定されます。
  書式
  TIME(時, 分, 秒)
 
 時を表す数値を 0 ~ 32767 の範囲で指定します。
 23 を超える値は 24 で除算され、剰余が時間として計算されます。
 
 分を表す数値を 0 ~ 32767 の範囲で指定します。
 59 を超える値は時と分に変換されます。
 
 秒を表す数値を 0 ~ 32767 の範囲で指定します。
 59 を超える値は時、分、秒に変換されます。
  使用例
 セルA1に10、セルB1に20、セルC1に30と入っている場合
 =TIME(A1,B1,C1) … 10:20:30=TIME(A1,B1+40,C1) … 11:00:30(40分後)=TIME(A1,B1,C1+50) … 10:21:20(50秒後)
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.TIMEVALUE関数(時刻を表す文字列を時刻に)

エクセル入門 > 数式 > TIMEVALUE関数(時刻を表す文字列を時刻に)
 文字列として格納された時刻を、Excelで時刻として認識できるシリアル値に変換します。
  書式
  TIMEVALUE(時刻文字列)
  時刻文字列
 時刻を表す文字列を指定します。
 Excelの組み込みの時刻表示形式での時刻を表す文字列です。
  使用例
 セルA1に10、セルB1に20、セルC1に30と入っている場合
 =TIMEVALUE(A1&":"&B1&":"&C1) … 10:20:30
 =TIMEVALUE(A1&"時"&B1&"分"&C1&"秒") … 10:20:30
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.HOUR関数(時刻を時に)

エクセル入門 > 数式 > HOUR関数(時刻を時に)
 時刻に対応する時を返します。
 0(時)~23(時)の範囲の整数です。
  書式
  HOUR(シリアル値)
 
  シリアル値 時刻を指定します。
 時刻の入っているセル参照または、TIME関数等を指定します。
 
  使用例
 セルA1に10:20:30と入っている場合
 =HOUR(A1) … 10
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.MINUTE関数(時刻を分に)

エクセル入門 > 数式 > MINUTE関数(時刻を分に)
 時刻に対応する分を返します。
 0(分)~59(分)の範囲の整数です。
  書式
  MINUTE(シリアル値)
 
  シリアル値 時刻を指定します。
 時刻の入っているセル参照または、TIME関数等を指定します。
 
  使用例
 セルA1に10:20:30と入っている場合
 =MINUTE(A1) … 20
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.SECOND関数(時刻を秒に)

エクセル入門 > 数式 > SECOND関数(時刻を秒に)
 時刻に対応する秒を返します。
 0(秒)~59(秒)の範囲の整数です。
  書式
  SECOND(シリアル値)
 
  シリアル値 時刻を指定します。
 時刻の入っているセル参照または、TIME関数等を指定します。
 
  使用例
 セルA1に10:20:30と入っている場合
 =SECOND(A1) … 30
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.TODAY関数(現在の日付)

エクセル入門 > 数式 > TODAY関数(現在の日付)
 現在の日付に対応する値を返します。
 セルにTODAY関数を入力すると、セルの表示形式は自動的に日付形式に設定されます。
  書式
  TODAY()
 ※引数はありません。
 TODAY関数は、エクセルで再計算が行われない限り、関数を入力した日付のままになります。
 通常は、
 ・セルの値を変更
 ・ブックを閉じる、ブックを開く
 このような場合に再計算が行われるので、TODAY関数の日付けも変更されます。
  使用例
 =TODAY … 2013/5/6 等、現在の日付けになります。
 =TODAY()+5 … 現在の日付の5日後の日付になります。
 =DATE(2013,12,31)-TODAY … 2013/12/31までの日数になります。
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.NOW関数(現在の日付と時刻)

エクセル入門 > 数式 > NOW関数(現在の日付と時刻)
 現在の日付と時刻に対応するシリアル値を返します。
 セルにNOW関数を入力すると、セルの表示形式は自動的に時刻形式に設定されます。
  書式
  NOW()
 ※引数はありません。
 NOW関数は、エクセルで再計算が行われない限り、関数を入力した日付時刻のままになります。
 通常は、
 ・セルの値を変更
 ・ブックを閉じる、ブックを開く
 このような場合に再計算が行われるので、NOW関数の日付時刻も変更されます。
  使用例
 =NOW … 2013/5/6 16:09 等、現在の日付時刻になります。
 =NOW()+TIME(0,3,0) … 現在の日付時刻の5時間後になります。
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.WORKDAY関数(稼動日数だけ前後の日付)

エクセル入門 > 数式 > WORKDAY関数(稼動日数だけ前後の日付)
 開始日から起算して、指定された稼動日数だけ前または後の日付に対応する値を返します。
 稼動日とは、土曜、日曜、および指定された祭日を除く日のことです。
  書式
  WORKDAY(開始日, 日数, [祭日])
  開始日 必須です。起算日を表す日付を指定します。
  日数 必須です。開始日から起算して、週末や祭日を除く週日の日数を指定します。日数に正の数を指定すると、起算日より後の日付となり、負の数を指定すると、起算日より前の日付となります。
  祭日 オプションです。この引数は省略することができます。国民の祝日や夏期休暇など、稼働日数の計算から除外する日付のリストを指定します。日付のリストには、日付を表すシリアル値が入力されているセル範囲、または配列定数を指定できます。
  使用例
 A1セルに 2013/7/11シート「祝日一覧」のA列に祝日一覧が入っているとします。
 =WORKDAY(A1,7,祝日一覧!A:A) … 2013/7/23
 7/11 , 7/12 ,7/13,7/14,7/15, 7/16 , 7/17 , 7/18 , 7/19 ,7/20,7/21, 7/22 , 7/23
 以上の赤字を除いた日が対象となりますので、7日後は、7/23となります。
  日本の祝日一覧
 2017年から20年分の日本の祝日一覧です。2019年からの天皇誕生日の変更に対応しました。上皇の誕生日12/23は当面は平日となるようです。2020年以降は「体育の日」⇒「スポーツの日」、2020年だけ7/24。
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.NETWORKDAYS関数(稼動日の日数)

エクセル入門 > 数式 > NETWORKDAYS関数(稼動日の日数)
 開始日から終了日までの期間に含まれる稼動日の日数を返します。
 稼動日とは、土曜、日曜、および指定された祭日を除く日のことです。
  書式
  NETWORKDAYS(開始日, 終了日, [祭日])
  開始日 必ず指定します。起算日を表す日付を指定します。
  終了日 必ず指定します。対象期間の最終日を表す日付を指定します。
  祭日 省略可能です。国民の祝日や夏期休暇など、稼動日数の計算から除外する日を表す日付を指定します。日付を含む一連のセルか、日付を示すシリアル値の配列定数を指定できます。
  使用例
 A1セルに 2013/7/11、B1セルに2013/7/23シート「祝日一覧」のA列に祝日一覧が入っているとします。
 =NETWORKDAYS(A1,B1,祝日一覧!A:A) … 8
 7/11 , 7/12 ,7/13,7/14,7/15, 7/16 , 7/17 , 7/18 , 7/19 ,7/20,7/21, 7/22 , 7/23
 以上の赤字を除いた日数なので、8となります。
  日本の祝日一覧
 2017年から20年分の日本の祝日一覧です。2019年からの天皇誕生日の変更に対応しました。上皇の誕生日12/23は当面は平日となるようです。2020年以降は「体育の日」⇒「スポーツの日」、2020年だけ7/24。
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.DATEDIF関数(年齢・勤続年数)

エクセル入門 > 数式 > DATEDIF関数(年齢・勤続年数)
 2つの日付の間の日数、月数、または年数を計算します。
 この関数は、Lotus 1-2-3 との互換性を提供するために用意されています。
 この関数は、関数ウイザード(数式パレット)が用意されていませんので、全て手入力する必要があります。
  書式
  DATEDIF(start_date,end_date,unit)
  Start_date 期間の初日 (開始日) を表す日付を指定します。日付は、引用符で囲んだテキスト文字列、シリアル値、または他の数式や関数の結果を指定できます。
  End_date 期間の最終日 (終了日) を表す日付を指定します。
  Unit 返される情報の種類を指定します。値は次のいずれかになります。
"Y" 期間内に含まれる満年数を指定します。
"M" 期間内に含まれる満月数を指定します。
"D" 期間内の日数を指定します。
"MD" 日付の月と年は無視されます。
"YM" 日付の日と年は無視されます。
"YD" 日付の年は無視されます。

  使用例
 A1セルに 1980/3/1、B1セルに2013/7/23と入っている場合
 =DATEDIF(A1,B1,"Y") … 33、年数になります
 =DATEDIF(A1,B1,"M") … 400、月数になります=DATEDIF(A1,B1,"D") … 12197、日数になります=DATEDIF(A1,B1,"MD") … 22、400月と33日=DATEDIF(A1,B1,"YM") … 4、33年と4ヶ月=DATEDIF(A1,B1,"YD") … 144、33年と144日
  注意DATEDIF関数にはバグが報告されています。 良く使われるものでは、=DATEDIF("2012/2/29","2013/2/28","Y")この結果は、 0 となってしまいます。満年齢や勤続年数を計算する場合には不都合となります。また、=DATEDIF("2012/1/31","2013/3/1","MD")この結果は、-2となります。マイナスって…これでは論外ですね。
 このようなバグはありますが、代替えとなる関数がなく、IF関数等で正しく対応しようとすると、とてつもなく長い数式となってしまいますので、特定のケースでバグがある事を理解した上で、上手に使うようにしましょう。
  日本の祝日一覧
 2017年から20年分の日本の祝日一覧です。2019年からの天皇誕生日の変更に対応しました。上皇の誕生日12/23は当面は平日となるようです。2020年以降は「体育の日」⇒「スポーツの日」、2020年だけ7/24。
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.EDATE関数(月数だけ前後の日付)

エクセル入門 > 数式 > 数式.EDATE関数(月数だけ前後の日付)
 開始日から指定された月数だけ、前または後の月の応当日を返します
  書式
  EDATE(開始日, 月)
  開始日
 起算日を表す日付を指定します。
 
 開始日から起算した月数を指定します。月に正の数を指定すると、起算日より後の日付を返し、負の数を指定すると、起算日より前の日付を返します。
 開始日に無効な日付を指定すると、エラー値 #VALUE! が返されます。月に整数以外の値を指定すると、小数点以下は切り捨てられます。関数を入れたセルの表示形式は変更されませんので、通常はシリアル値が表示 されます。別途、セルの表示形式を設定する必要があります。
  使用例
A列 数式 結果
1 2016/8/1 =EDATE(A1,1) 2016/9/1
2 2016/8/15 =EDATE(A2,2) 2016/10/15
3 2016/8/31 =EDATE(A3,1) 2016/9/30
4 2016/8/31 =EDATE(A4,2) 2016/10/31
5 2016/2/29 =EDATE(A5,24) 2018/2/28
6 2016/2/29 =EDATE(A6,-1) 2016/1/29

 開始日が月末の場合、指定月数前後の月に該当日が無い場合は、その月の月末になります。
  応用例
  1年後の日付、○か月後の日付
 起算日からの一年間の最後の日の求め方です。起算日が2011/4/1なら、2012/3/31の求め方です。セルA1に起算日が入っており、 セルA2に一年間の最終日を設定する場合。一年後の日付 よくみかけるのは、=DATE(YEAR(A1)+1,MONTH(A1),DAY(A1))-1 DATEは、DATE(年,
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.EOMONTH関数(月数だけ前後の月の最終日)

エクセル入門 > 数式 > 数式.EOMONTH関数(月数だけ前後の月の最終日)
 開始日から指定された月数だけ前または後の月の最終日を返します。
  書式
  EOMONTH(開始日, 月)
  開始日
 起算日を表す日付を指定します。
 
 開始日から起算したい月数を指定します。正の数を指定すると、起算日より後の日付を返し、負の数を指定すると、起算日より前の日付を返します。
 開始日に無効な日付を指定すると、エラー値 #NUM! が返されます。関数を入れたセルの表示形式は変更されませんので、通常はシリアル値が表示されます。別途、セルの表示形式を設定する必要があります。
  使用例
A列 数式 結果
1 2016/8/1 =EOMONTH(A1,1) 2016/9/30
2 2016/8/15 =EOMONTH(A2,2) 2016/10/31
3 2016/8/31 =EOMONTH(A3,3) 2016/11/30
4 2016/8/1 =EOMONTH(A4,-1) 2016/7/31

  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.WEEKDAY関数(曜日に変換)

エクセル入門 > 数式 > 数式.WEEKDAY関数(曜日に変換)
 日付に対応する曜日を返します。既定では、戻り値は 1 (日曜) から 7 (土曜) までの範囲の整数となります。
  書式
  WEEKDAY(シリアル値,[種類])
  シリアル値
 曜日を求める日付を指定します。
  種類
 省略すると1になります。戻り値の種類を数値で指定します。
種類 戻り値
1 または省略 1 (日曜) ~ 7 (土曜) の範囲の整数
2 1 (月曜) ~ 7 (日曜) の範囲の整数
3 0 (月曜) ~ 6 (日曜) の範囲の整数
11 1 (月曜) ~ 7 (日曜) の範囲の整数
12 1 (火曜) ~ 7 (月曜) の範囲の整数
13 1 (水曜) ~ 7 (火曜) の範囲の整数
14 1 (木曜) ~ 7 (水曜) の範囲の整数
15 1 (金曜) ~ 7 (木曜) の範囲の整数
16 1 (土曜) ~ 7 (金曜) の範囲の整数
17 1 (日曜) ~ 7 (土曜) の範囲の整数

 シリアル値が現在の日付基準値の範囲外の場合、#NUM! エラーが返されます。種類が上の表に示す範囲外の場合、#NUM! エラーが返されます。
  使用例
A列 数式 結果
1 2016/8/1(月) =WEEKDAY(A1) 2
2 2016/8/1(月) =WEEKDAY(A2,2) 1
3 2016/8/2(火) =WEEKDAY(A3) 3
4 2016/8/7(日) =WEEKDAY(A4) 1
5 2016/8/7(日) =WEEKDAY(A5,2) 7

 曜日の文字、「月火水木金土日」を表示したい時は、 TEXT関数
 数値(日付・時刻を含む)を、特別な書式文字列を使用して表示書式を指文字列し、文字列に変換します。この関数は、数値を読みやすい書式で表示 したり、数値を文字列や記号と結合する場合に便利です。TEXT関数を使用すると、数値が文字列に変換されるため、結果を数値として計算できなくなりま す。
 またはセルの 表示形式
 日付は多くの指定書式があり、いろいろな表示形式を指定できます。設定するセルを選択 Ctrl+1または、右クリックから「セルの書式設定」表示形式(一番左のタブ) 分類から「ユーザー定義」を選択 「種類」のすぐ下のボックスに 以下のいずれかを入力し「OK」記号の意味 書式記号 表示結果 yy 00~99(西暦の年) yyyy 1900~9999(西暦の年) …
 で、"aaa"等を指定してください。
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.WEEKNUM関数(その年の何週目)

エクセル入門 > 数式 > 数式.WEEKNUM関数(その年の何週目)
 日付がその年の第何週目に当たるかを返します。 書式
  WEEKNUM(シリアル値,[週の基準])
  シリアル値
 日付を指定します。日付は、DATE 関数を使って入力するか、他の数式または他の関数の結果を指定します。たとえば、2008 年 5 月 23 日を入力する場合は、DATE(2008,5,23) を使用します。日付を文字列として入力した場合、エラーが発生することがあります。
  週の基準
 週の始まりを何曜日とするかを数値で指定します。省略すると 1になります。
 たとえば、1月1日を含む週がその年の最初の週で、第 1 週になります。
種類 週の始まり システム
1 または省略 日曜日 1
2 月曜日 1
11 月曜日 1
12 火曜日 1
13 水曜日 1
14 木曜日 1
15 金曜日 1
16 土曜日 1
17 日曜日 1
21 月曜日 2

 この関数で使用されるシステムには、次の 2 種類があります。システム1:1月1日を含む週がその年の最初の週であり、第1週です。システム2:その年の最初の木曜日を含む週がその年の最初の週であり、第1週です。
 シリアル値 が現在の日付基準値の範囲外の場合、#NUM! エラーが返されます。週の基準 が上の表に示す範囲外の場合、#NUM! エラーが返されます。
  使用例
A列 数式 結果
1 2016/8/1(月) =WEEKNUM(A1) 32
2 2016/8/7(日) =WEEKNUM(A2) 33
3 2016/12/31(土) =WEEKNUM(A3) 53
4 2016/8/1(月) =WEEKNUM(A4,2) 32
5 2016/8/7(日) =WEEKNUM(A5,2) 32
6 2016/12/31(土) =WEEKNUM(A6,2) 53

 開始日が月末の場合、指定月数前後の月に該当日が無い場合は、その月の月末になります。
  応用例
 3/31決算として、期の第何週かを求める場合、このWEEKNUM関数を使って求める方法と、WEEKDAY関数、INT関数で求める方法があります。
 A1セルに期首に日付(2016/4/1等)が入っているとして、A2セルの日付の週番号(月曜起点、4/1を含む週を第1週)を求めます。
  WEEKNUM関数を使う方法 =WEEKNUM(A2,2)-WEEKNUM($A$1,2)+1
  WEEKDAY関数と四則演算 =INT((A2-($A$1-WEEKDAY($A$1,2)+1))/7)+1この計算式は、他にも書き方はいろいろ考えられます。
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.ROUND関数(数値を四捨五入して指定桁数に)

エクセル入門 > 数式 > ROUND関数(数値を四捨五入して指定桁数に)
 数値を四捨五入して指定された桁数にします。
  書式
  ROUND(数値, 桁数)
  数値 四捨五入の対象となる数値を指定します。
  桁数 数値を四捨五入した結果の桁数を指定します。
  正の数 を指定:
 数値は小数点の右側 (小数点以下) で四捨五入され、小数点以下の桁数が桁数に等しくなります。 0 を指定:
 数値は最も近い整数として四捨五入されます。 負の数 を指定:
 数値は小数点の左側 (整数部分) の指定した桁 (1 の位を 0 とする) に四捨五入されます。
  使用例
 セルA1に17.46と入っている場合
 =ROUND(A1,0) … 17(小数1位で四捨五入)
 =ROUND(A1,1) … 17.5(小数2位で四捨五入)
 =ROUND(A1,-1) … 20(整数1位で四捨五入)
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.ROUNDUP関数(数値を切り上げて指定桁数に)

エクセル入門 > 数式 > ROUNDUP関数(数値を切り上げて指定桁数に)
 数値を指定された桁数に切り上げます。
  書式
  ROUNDUP(数値, 桁数)
  数値 四捨五入の対象となる数値を指定します。
  桁数 数値を切り上げた結果の桁数を指定します。
  正の数を指定:
 数値は小数点の右 (小数点以下) の指定した桁に切り上げられます。
  0 を指定:
 数値は最も近い整数に切り上げられます。
  負の数を指定:
 数値は小数点の左 (整数部分) の指定した桁 (1 の位を 0 とする) に切り上げられます。
  使用例
 セルA1に17.46と入っている場合
 =ROUND(A1,0) … 18(小数1位で切り上げ)
 =ROUND(A1,1) … 17.5(小数2位で切り上げ)
 =ROUND(A1,-1) … 20(整数1位で切り上げ)
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.ROUNDDOWN関数(数値を切り捨てて指定桁数に)

エクセル入門 > 数式 > ROUNDDOWN関数(数値を切り捨てて指定桁数に)
 数値を指定された桁数に切り捨てます。
  書式
  ROUNDUP(数値, 桁数)
  数値 切り捨ての対象となる数値を指定します。
  桁数 数値を切り捨てた結果の桁数を指定します。
  正の数を指定:
 数値は小数点の右 (小数点以下) の指定した桁に切り捨てられます。
  0 を指定:
 数値は最も近い整数に切り捨てられます。
  負の数を指定:
 数値は小数点の左 (整数部分) の指定した桁 (1 の位を 0 とする) に切り捨てられます。
  使用例
 セルA1に17.46と入っている場合
 =ROUND(A1,0) … 17(小数1位で切り捨て)
 =ROUND(A1,1) … 17.4(小数2位で切り捨て)
 =ROUND(A1,-1) … 10(整数1位で切り捨て)
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.SUMPRODUCT関数(配列の対応する要素の積の合計)

エクセル入門 > 数式 > 数式.SUMPRODUCT関数(配列の対応する要素の積の合計)
 引数として指定した配列の対応する要素間の積をまず計算し、さらにその和を返します。 書式
  SUMPRODUCT(配列 1, [配列 2], [配列 3], ...)
  配列 1
 計算の対象となる要素を含む最初の配列引数を指定します。
  配列 2, 配列 3,...
 省略可能です。計算の対象となる要素を含む配列引数を指定します。引数は最大 255 個まで指定できます。
 引数となる配列は、行数と列数が等しい配列である必要があります。行数と列数が等しくない場合、エラー値 #VALUE! が返されます。数値以外の配列要素は、0 であると見なされます。
  使用例
 以下の表で、合計金額を求めます。
A列 B列
数量 単価
2 180
4 230
1 120
3 160
5 220

  =SUMPRODUCT(A2:A6,B2:B6) … 2980
 SUMPRODUCT関数においては、列指定は避けて下さい。 =SUMPRODUCT(A:A,B:B) これでも問題はありませんが、多用するとExcelの再計算がとても遅くなります。
 このような合計を求める場合、本来は、C列に各行の金額を求める計算式(単価 * 数量)を入れて、その金額をSUMします。従って、SUMPRODUCT関数を使用する機会は、極めて少ないと言えます。
 Excel2003までは、 COUNTIFS 関数や SUMIFS 関数が無かったため、 COUNTIFS SUMIFS のような集計をする手段として、SUMPRODUCT関数が使われることがありました。
  複数条件の合計・件数
 複数条件の合計、複数条件の件数を求める関数式です。以下の表で説明します。複数条件の合計 「みかん」の「M」の合計売上は まず、2007以降ならSUMIFSが使えますので、問題はないと思います。=SUMIFS(C2:C10,A2:A10,"みか ん",B2:B10,"M") SUMIFS(合計範囲,
 しかし、Excel2007移行で、COUNTIFS関数やSUMIFS関数ができたことで、 SUMPRODUCT関数の必要性は、ほとんどなくなったと言っても良いでしょう。
 そもそも、作業列(途中計算をするセル、上記の例でC列の金額)を使う事で、同じ結果を得られます。2003以前でのSUMIFS関数代わりに使っている場合でも、作業列(複数条件をまとめる列)を使う事で解決できるものです。
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.INT関数(指定数値を最も近い整数に切り捨て)

エクセル入門 > 数式 > INT関数(指定数値を最も近い整数に切り捨て)
 指定した数値を超えない最大の整数を返します。
  書式
  INT(数値)
 
  数値 切り捨てて整数にする実数を指定します。
  使用例
 セルA1に19.5と入っている場合
 =INT(A1) … 19
 セルA1に-19.5と入っている場合
 =INT(A1) … -20
 指定の数値を超えない最大整数になります。「指定の数値を超えない最大整数」という言葉が分かりずらいかもしれません。-19は-19.5より も大きい、つまり指定の数値を超えてしまいます。※超えるとは、正の数値に向かっての比較です。したがって、-20が、指定の数値を超えない最大整数とい う事です。
 -19としたいならTRUNC関数またはROUNDDOWN関数を使います。
 正の実数の小数部分だけを求めたい場合
 =A1-INT(A1)
 負の実数の小数部分だけを求めたい場合はTRUNC関数またはROUNDDOWN関数を使います。
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.MAX関数(範囲に含まれる最大の数値)

エクセル入門 > 数式 > MAX関数(範囲に含まれる最大の数値)
 引数リストに含まれる最大の数値を返します。
  書式
  MAX(数値 1[, 数値 2], ...)
  数値 1 ,数値 2,...
 数値 1 は必ず指定しますが、それ以降の数値は省略可能です。
 最大の数値を見つけるため、1 ~ 255 個までの数値を指定することができます。
  使用例
 A1 5
 A2 4
 A3 7
 A4 9
 A5 3
 であるとして、
 =MAX(A1:A5) … A4セルの 9
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.MIN関数(範囲に含まれる最小の数値)

エクセル入門 > 数式 > MIN関数(範囲に含まれる最小の数値)
 引数リストに含まれる最小の数値を返します。
  書式
  MIN(数値 1[, 数値 2], ...)
  数値 1 ,数値 2,...
 数値 1 は必ず指定しますが、それ以降の数値は省略可能です。
 最小の数値を見つけるため、1 ~ 255 個までの数値を指定することができます。
  使用例
 A1 5
 A2 4
 A3 7
 A4 9
 A5 3
 であるとして、
 =MIN(A1:A5) … A5セルの 3
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.LARGE関数(範囲の中でk番目に大きなデータ)

エクセル入門 > 数式 > LARGE関数(範囲の中でk番目に大きなデータ)
 1 組のデータの中で順位番目に大きなデータを返します。相対的な順位に基づいて、データの中から特定の値を選択することができます。
  書式
  LARGE(範囲, 順位)
  範囲
 抽出の対象となるデータが入力されているセル範囲または配列を指定します。
  順位
 抽出する値の、大きい方から数えた順位を数値で指定します。
  使用例
 A1 5
 A2 4
 A3 7
 A4 9
 A5 3
 であるとして、
 =LARGE(A1:A5,2) … A3セルの 7
 =LARGE(A1:A5,4) … A2セルの 4
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.SMALL関数(範囲の中でk番目に小さな値)

エクセル入門 > 数式 > SMALL関数(範囲の中でk番目に小さな値)
 1 組のデータの中で順位番目に小さなデータを返します。相対的な順位に基づいて、データの中から特定の値を選択することができます。
  書式
  SMALL(範囲, 順位)
  範囲
 抽出の対象となるデータが入力されているセル範囲または配列を指定します。
  順位
 抽出する値の、小さい方から数えた順位を数値で指定します。
  使用例
 A1 5
 A2 4
 A3 7
 A4 9
 A5 3
 であるとして、
 =SMALL(A1:A5,2) … A2セルの 4
 =SMALL(A1:A5,4) … A3セルの 7
  応用例
  複数条件で検索し、複数データを取得する方法
 各種条件でデータを絞る場合は、オートフィルタが一般的に使用されますが、元のデータがあるシートで作業する為、間違ってデータを消してしまったり、使用する上で制約があります。また、VLOOKUPでは、単一条件のみであり、しかも1件しか取得できません。
  誕生日一覧から、指定誕生月の人を全員取り出す
 配列数式を使って、誕生日が指定月の該当者全員を取り出します。各種条件でデータを絞る場合は、オートフィルタが一般的に使用されますが、日付の中の、月だけの指定になると、お手上げです。(出来ない事はありませんが、かなり面倒です。
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.RANK関数(範囲の中で指定数値の序列)

エクセル入門 > 数式 > RANK関数(範囲の中で指定数値の序列)
 順序に従って範囲内の数値を並べ替えたとき、数値が何番目に位置するかを返します。
  書式
  RANK(数値,範囲,[順序])
  数値
 範囲内での順位 (位置) を調べる数値を指定します。
  範囲
 数値の範囲の配列またはその範囲への参照を指定します。
 参照に含まれる数値以外の値は無視されます。
  順序
 範囲内の数値を並べる方法を指定します。
  0または省略
 範囲内の数値が ...3、2、1 のように降順に並べ替えられます。
  0以外を指定(通常は1を指定)
 範囲内の数値が 1、2、3、... のように昇順で並べ替えられます。
  使用例
 A1 5
 A2 4
 A3 7
 A4 5
 A5 3
 であるとして、
 =RANK(A1,$A$1:$A$5,1) … 3 (同順位あり)
 =RANK(A2,$A$1:$A$5,1) … 2
 =RANK(A3,$A$1:$A$5,1) … 5 (4が抜ける)
 =RANK(A4,$A$1:$A$5,1) … 3 (同順位あり)
 =RANK(A5,$A$1:$A$5,1) … 1
 3番目に大はい値の5(A1とA4)が2つあるので、
 A1とA4は3となり、4が抜けて、次の順位(A3)が5となります。
  応用例
  関数で他シートへ並べ替える方法(サンプル:ABC分析)
 通常、並べ替えは元データが変更されれば、毎回、並べ替えを行う必要がありますが、, これが、結構面倒な場合もあります。出来れば、マクロを組みたいところですが、マクロはちょっとと言う人もいるでしょう。そこで、関数で他シートへ並べ替える方法です。
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.MOD関数(除算したときの剰余)

エクセル入門 > 数式 > 数式.MOD関数(除算したときの剰余)
 数値を除数で割ったときの剰余を返します。割り算の余りです。 書式
 MOD(数値, 除数)
  数値
 割り算の分子となる数値を指定します。
  除数
 割り算の分母となる数値を指定します。
 戻り値は除数と同じ符号になります。除数に0を指定すると、エラー値 #DIV/0! が返されます、0で割ってはいけません。
  MOD関数 INT関数 で書き表せます。
 指定した数値を超えない最大の整数を返します。書式 INT(数値) 数値 切り捨てて整数にする実数を指定します。使用例 セルA1に19.5と入っている場合 =INT(A1)…19 セルA1に-19.5と入っている場合 =INT(A1)…-20 指定の数値を超えない最大整数になります。
 MOD(分母, 分子) = 分母 - 分子*INT(分母/分子)
 商を求める関数は、 QUOTIENT関数 ですが、QUOTIENT関数は、商の余り (小数部) を切り捨てる場合に使うものです。
 使用例を参考に、各関数の商と余りについて確認してください。
  使用例
A B 数式 結果 
1 10 3 =MOD(B2,C2) 1
2 10 3 =MOD(B3,C3) 1
3 -10 3 =MOD(B4,C4) 2
4 10 -3 =MOD(B5,C5) -2

 割り算の余りですので、正の数値については問題ないでしょう。しかし、どうも負の数値が納得いかないと思います。 INT関数 で計算してみましょう。
 指定した数値を超えない最大の整数を返します。書式 INT(数値) 数値 切り捨てて整数にする実数を指定します。使用例 セルA1に19.5と入っている場合 =INT(A1)…19 セルA1に-19.5と入っている場合 =INT(A1)…-20 指定の数値を超えない最大整数になります。
 3行目なら、-10 - 3*INT(-10/3)
 です。では、INT(-10/3) の結果はというと、-4になります。INT関数は、指定の数値を超えない最大整数を返します。つまり、-3.33333…なので、これを超えない最大整数 なので、-4になります。-3では-3.35よりも大きい、つまり指定の数値を超えてしまいます。※超えるとは、正の数値に向かっての比較です。結果とし て、-10-(3*-4) = 2となります。
 直観的な結果と違う感じがするかもしれません。
  -10÷3の答えとして、-3余り-1としたければ 、以下の数式を使ってください。商をQUOTIENT関数、またはROUNDDOWN関数で求めるようにします。商: QUOTIENT(分母,分子)ROUNDDOWN(分母/分子, 0) 余り: 分母-分子*QUOTIENT(分母,分子)分母-分子*ROUNDDOWN(分母/分子, 0)
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.MROUND関数、CEILING関数、FLOOR関数(指定値の倍数)

エクセル入門 > 数式 > 数式.MROUND関数、CEILING関数、FLOOR関数(指定値の倍数)
 MROUND関数:指定された値の倍数になるように,、0から遠い方の値に丸めます。CEILING関数:指定された値の倍数のうち、最も近い値に数値を切り上げます。FLOOR関数:指定された値の倍数のうち、最も近い値に数値を切り捨てます。 書式
 MROUND(数値,倍数の基準値)CEILING(数値,倍数の基準値)
 FLOOR(数値,倍数の基準値)
 ※第二引数の用語について ヘルプでは、MROUNDは倍数、CEILINGとFLOORは基準値と記されています。
  数値
 丸めの対象となる数値を指定します。
  倍数の基準値
 倍数の基準となる数値を指定します。
 数値と倍数の符号が異なる場合は、計算結果はエラー値になります (#NUM!)
  MROUND関数 数値を倍数で割った剰余が倍数の半分以上である場合は、0 から遠い方の値に丸められます。
  CEILING関数 指定された基準値の倍数のうち、最も近い値に数値を切り上げます。
  FLOOR関数 数値の符号が正の場合、切り捨てられた値の絶対値は数値より小さくなります。数値の符号が負の場合、切り捨てられた値の絶対値は、数値より小さくなります。
  使用例
 MROUND関数、CEILING関数、FLOOR関数の結果は以下のようになります。
数値 基準値 MROUND CEILING FLOOR
1 10 3 9 12 9
2 -10 -4 -12 -12 -8
3 13.3 2.5 12.5 15 12.5
4 16:22 0:15 16:15 16:30 16:15
5 16:28 0:15 16:30 16:30 16:15

 負の数値の場合は、注意してください。金額に関する計算であれば、FLOOR関数が良く使われるのではないでしょうか。残業時間計算では就業規 則により、FLOOR関数かCEILING関数を使い分けることになります。(残業時間で、CEILING関数を使う会社は稀だとは思いますけど)
  実践例
  時間計算で困ったときの確実な対処方法
 Excelで非常に多い質問の一つが時間計算です。日付・時刻はエクセルのデータ形式の一つですが、特に時間計算は面倒で対処方法も書籍・ネッ トでもあまりみかけません。日付に関しては便利な関数も用意されていますし、なにより、1日が数値の1(これをシリアル値と言います)で表されているの で、大抵はなんとかなっているようです。
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.RAND関数、RANDBETWEEN関数(乱数)

エクセル入門 > 数式 > 数式.RAND関数、RANDBETWEEN関数(乱数)
 RAND関数:0 以上で 1 より小さい実数の乱数を発生させます。RANDBETWEEN関数:指定された範囲内の整数の乱数を返します。
 いずれも、ワークシートが再計算されるたびに、新しい乱数が返されます。 書式
 RAND()RANDBETWEEN(最小値, 最大値)
 ※RAND関数には引数はありません。
  最小値
 乱数の最小値を整数で指定します。
  最大値
 乱数の最大値を整数で指定します。
 ワークシートが再計算されるたびに、新しい乱数が返されます。したがって、 ブックを開いたときセルの値を変更した時 等々、ワークシートが再計算されるたびにRAND関数の値は変更されます。
 RAND関数は、発生する桁数を考えると重複はほぼありえませんが、RANDBETWEEN関数の場合は、指定範囲内の数値である為、通常は重複が発生します。 指定範囲内の重複の無い整数を発生させたい時 は、 RAND関数とRANK関数を組み合わせ て下さい。RAND関数の乱数を、RANK関数で順位をつけるという事です。
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.CELL関数(セルの書式、位置、内容の情報)

エクセル入門 > 数式 > 数式.CELL関数(セルの書式、位置、内容の情報)
 セルの書式、位置、または内容に関する情報を返します。 書式
 CELL(検査の種類, [対象範囲])
  検査の種類
検査の種類 戻り値
address 対象範囲の左上隅にあるセルの参照を表す文字列。
col 対象範囲の左上隅にあるセルの列番号。
color 負の数を色で表す書式がセルに設定されている場合は 1、それ以外の場合は 0 (ゼロ)。
contents 対象範囲の左上隅にあるセルの値 (数式ではない)。
filename 対象範囲を含むファイルのフル パス名 (文字列)。対象範囲を含むワークシートが保存されていなかった場合は、空白文字列 (")。
format セルの表示形式に対応する文字列定数。文字列定数については、次の表を参照してください。セルが負数に対応する色で書式設定されている場合、文字 列定数の末尾に "-" が付きます。正数またはすべての値をかっこで囲む書式がセルに設定されている場合、結果の文字列定数の末尾に "()" が付きます。
Excel の表示形式 戻り値
全般 G
0 F0
#,##0 ",0"
000 F2
#,##0.00 ",2"
$#,##0_);($#,##0) C0
$#,##0_);[赤]($#,##0) C0-
$#,##0.00_);($#,##0.00) C2
$#,##0.00_);[赤]($#,##0.00) C2-
0% P0
0.00% P2
0.00E+00 S2
# ?/? または # ??/?? G
m/d/yy または m/d/yy h:mm または mm/dd/yy D4
d-mmm-yy または dd-mmm-yy D1
d-mmm または dd-mmm D2
mmm-yy D3
mm/dd D5
h:mm AM/PM D7
h:mm:ss AM/PM D6
h:mm D9
h:mm:ss D8
parentheses 正の値またはすべての値をかっこで囲む書式がセルに設定されている場合は 1。それ以外の場合は 0。
prefix セルの "文字位置" に対応する文字列定数。セルが左詰めの文字列を含むときは単一引用符 (')、右詰めの文字列を含むときは二重引用符 (")、中央揃えの文字列を含むときはキャレット (^)、両揃えの文字列を含むときは円記号 (?)、また、セルにそれ以外のデータが入力されているときは空白文字列 (") になります。
protect セルがロックされていない場合は 0、ロックされている場合は 1。
row 対象範囲の左上隅にあるセルの行番号。
type セルに含まれるデータのタイプに対応する文字列定数。セルが空白の場合は "b" (Blank の頭文字)、セルに文字列定数が入力されている場合は "l" (Label の頭文字)、その他の値が入力されている場合は "v" (Value の頭文字) になります。
width 小数点以下を切り捨てた整数のセル幅。セル幅の単位は、既定のフォント サイズの 1 文字の幅と等しくなります。

  対象範囲
 情報が必要なセル。省略可能です。この引数を省略した場合、最後に変更されたセルについての情報が返されます。対象範囲がセル範囲の場合、その範囲の左上隅のセルに関する情報だけが返されます。
 シート名を取得する場合は、この関数を使います。これ以外の目的で使用することは、滅多に無いと思われます。
  シート名を取得する
  =RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1)))
 A1はシート名を取得するセルを指定します。この数式を入れるシート以外も指定できます。A1の指定が、シート名!A1となります。
  日付として表示されているか判定
  =IF(AND(ISNUMBER(A1),LEFT(CELL("format",A1),1)="D"),"日付","違う")
 A1セルが日付として表示されているかどうかを判定します。セル値がシリアル値(日付の数値)が入力されている、かつ、表示形式が日付。
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

Excelワークシート関数一覧(2010以降)

Excelワークシート関数の一覧と解説です。Excel2010以降に追加された関数一覧になります。
 2007までのワークシート関数一覧
  ワークシート関数の一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…
 引数、関数構文については
  Excelシートの複雑な計算式を解析するVBAの関数構文

Excel2010で追加されたワークシート関数

関数名 種類と説明 説明 追加Ver
ERF.PRECISE エンジニアリング 誤差関数を返します。 2010
ERFC.PRECISE エンジニアリング xから無限大の範囲で、相補誤差関数の積分値を返します。 2010
BETA.DIST 統計 β分布の累積分布関数の値を返します。 2010
BETA.INV 統計 指定されたベータ分布の逆累積分布関数を返します。 2010
BINOM.DIST 統計 二項分布の確率関数の値を返します。 2010
BINOM.INV 統計 累積二項分布の値が基準値以下になる最小値を返します。 2010
CHISQ.DIST 統計 累積ベータ確率密度関数の値を返します。 2010
CHISQ.DIST.RT 統計 カイ2乗分布の片側確率の値を返します。 2010
CHISQ.INV 統計 累積β確率密度関数の値を返します。 2010
CHISQ.INV.RT 統計 カイ2乗分布の片側確率の逆関数の値を返します。 2010
CHISQ.TEST 統計 独立性検定を行います。 2010
CONFIDENCE.NORM 統計 母集団に対する信頼区間を返します。 2010
CONFIDENCE.T 統計 スチューデントのt分布を使用して、母平均に対する信頼区間を返します。 2010
COVARIANCE.P 統計 共分散を返します。共分散とは、2組の対応するデータ間での標準偏差の積の平均値です。 2010
COVARIANCE.S 統計 標本の共分散を返します。共分散とは、2組の対応するデータ間での標準偏差の積の平均値です。 2010
EXPON.DIST 統計 指数分布関数を返します。 2010
F.DIST 統計 F分布の確率関数の値を返します。 2010
F.DIST.RT 統計 F分布の確率関数の値を返します。 2010
F.INV 統計 F分布の確率関数の逆関数値を返します。 2010
F.INV.RT 統計 F分布の確率関数の逆関数値を返します。 2010
F.TEST 統計 F検定の結果を返します。 2010
GAMMA.DIST 統計 ガンマ分布関数の値を返します。 2010
GAMMA.INV 統計 ガンマ累積分布の逆関数値を返します。 2010
GAMMALN.PRECISE 統計 ガンマ関数Γ(x)の値の自然対数を返します。 2010
LOGNORM.DIST 統計 対数正規分布の累積分布関数の値を返します。 2010
LOGNORM.INV 統計 対数正規型の累積分布関数の逆関数を返します。 2010
MODE.MULT 統計 配列またはセル範囲として指定されたデータの中で、最も頻繁に出現する値(最頻値)を縦方向の配列として返します。 2010
MODE.SNGL 統計 最も頻繁に出現する値(最頻値)を返します。 2010
NEGBINOM.DIST 統計 負の二項分布の確率密度関数値を返します。 2010
NORM.DIST 統計 正規分布の累積分布関数の値を計算して返します。 2010
NORM.S.DIST 統計 標準正規分布の累積分布関数の値を返します。 2010
NORM.S.INV 統計 標準正規分布の累積分布関数の逆関数値を返します。 2010
PERCENTILE.EXC 統計 特定の範囲に含まれるデータの第k百分位数に当たる値を返します(kは0より大きく1より小さい値)。 2010
PERCENTILE.INC 統計 特定の範囲に含まれるデータの第k百分位数に当たる値を返します。 2010
PERCENTRANK.EXC 統計 配列内での値の順位を百分率(0より大きく1より小さい)で表した値を返します。 2010
PERCENTRANK.INC 統計 配列内での値の順位を百分率で表した値を返します。 2010
POISSON.DIST 統計 ポアソン確率の値を返します。 2010
QUARTILE.EXC 統計 0より大きく1より小さい百分位値に基づいて、配列に含まれるデータから四分位数を返します。 2010
QUARTILE.INC 統計 配列に含まれるデータから四分位数を計算して返します。 2010
RANK.AVG 統計 数値のリストの中で、指定した数値の序列を返します。 2010
RANK.EQ 統計 数値のリストの中で、指定した数値の序列を返します。 2010
STDEV.P 統計 引数を母集団全体と見なし、母集団の標準偏差を返します。 2010
STDEV.S 統計 引数を正規母集団の標本と見なし、標本に基づいて母集団の標準偏差の推定値を返します。 2010
T.DIST 統計 スチューデントのt分布のパーセンテージ(確率)を返します。 2010
T.DIST.2T 統計 スチューデントのt分布のパーセンテージ(確率)を返します。 2010
T.DIST.RT 統計 スチューデントのt分布の値を返します。 2010
T.INV 統計 スチューデントのt分布のt値を、確率と自由度の関数として返します。 2010
T.INV.2T 統計 スチューデントのt分布の逆関数値を返します。 2010
T.TEST 統計 スチューデントのt検定における確率を返します。 2010
VAR.P 統計 引数を母集団全体と見なし、母集団の分散(標本分散)を返します。 2010
VAR.S 統計 標本に基づいて母集団の分散の推定値(不偏分散)を返します。 2010
WEIBULL.DIST 統計 ワイブル分布の値を返します。 2010
Z.TEST 統計 z検定の片側P値を返します。 2010
NETWORKDAYS.INTL 日時 週末がどの曜日で何日間あるかを示すパラメーターを使用して、開始日と終了日の間にある稼働日の日数を返します。 2010
WORKDAY.INTL 日時 週末がどの曜日で何日間あるかを示すパラメーターを使用して、開始日から起算して指定した稼働日数だけ前または後の日付に対応するシリアル値を返します。 2010
NORM.INV 互換性 正規分布の累積分布関数の逆関数値を計算して返します。 2010

Excel2013で追加されたワークシート関数

関数名 種類と説明 説明 追加Ver
ENCODEURL Web URL形式でエンコードされた文字列を返します。 2013
FILTERXML Web 指定されたXPathに基づいてXMLコンテンツの特定のデータを返します。 2013
WEBSERVICE Web Webサービスからデータを返します。 2013
BITAND エンジニアリング 2つの数値の'ビット単位のAnd'を返します。 2013
BITLSHIFT エンジニアリング shift_amountビットだけ左へシフトした数値を返します。 2013
BITOR エンジニアリング 2つの数値のビット単位のORを返します。 2013
BITRSHIFT エンジニアリング shift_amountビットだけ右へシフトした数値を返します。 2013
BITXOR エンジニアリング 2つの数値のビット単位の'ExclusiveOr'を返します。 2013
IMCOSH エンジニアリング 複素数の双曲線余弦を返します。 2013
IMCOT エンジニアリング 複素数の余接を返します。 2013
IMCSC エンジニアリング 複素数の余割を返します。 2013
IMCSCH エンジニアリング 複素数の双曲線余割を返します。 2013
IMSEC エンジニアリング 複素数の正割を返します。 2013
IMSECH エンジニアリング 複素数の双曲線正割を返します。 2013
IMSINH エンジニアリング 複素数の双曲線正弦を返します。 2013
IMTAN エンジニアリング 複素数の正接を返します。 2013
DBCS テキスト 文字列内の半角(1バイト)の英数カナ文字を全角(2バイト)の文字に変換します。 2013
NUMBERVALUE テキスト 文字列をロケールに依存しない方法で数値に変換します。 2013
UNICHAR テキスト 指定された数値により参照されるUnicode文字を返します。 2013
UNICODE テキスト 文字列の最初の文字に対応する番号(コードポイント)を返します。 2013
FORMULATEXT 検索/行列 指定された参照の位置にある数式をテキストとして返します。 2013
PDURATION 財務 投資が指定した価値に達するまでの投資期間を返します。 2013
RRI 財務 投資の成長に対する等価利率を返します。 2013
ISFORMULA 情報 数式が含まれるセルへの参照がある場合にTRUEを返します。 2013
SHEET 情報 参照されるシートのシート番号を返します。 2013
SHEETS 情報 参照内のシート数を返します。 2013
BASE 数学/三角 指定された基数(底)のテキスト表現に、数値を変換します。  
CEILING.MATH 数学/三角 指定された基準値の倍数のうち、最も近い値に数値を切り上げます。 2013
COMBINA 数学/三角 2013
CSCH 数学/三角 角度の双曲線余割を返します。 2013
DECIMAL 数学/三角 指定された底の数値のテキスト表現を10進数に変換します。 2013
FLOOR.MATH 数学/三角 指定された基準値の倍数のうち、最も近い値に数値を切り捨てます。 2013
MUNIT 数学/三角 指定された次元の単位行列を返します。 2013
SECH 数学/三角 角度の双曲線正割を返します。 2013
ACOT 数学/三角 数値の逆余接を返します。 2013
ACOTH 数学/三角 数値の双曲線逆余接を返します。 2013
ARABIC 数学/三角 ローマ数字をアラビア数字に変換します。 2013
COT 数学/三角 数値の双曲線余弦(ハイパーボリックコサイン)を返します。 2013
COTH 数学/三角 角度の双曲線余接を返します。 2013
CSC 数学/三角 角度の余割を返します。 2013
ISO.CEILING 数学/三角 最も近い整数、または倍数に切り上げた値を返します。 2013
SEC 数学/三角 角度の正割を返します。 2013
BINOM.DIST.RANGE 統計 二項分布を使用した試行結果の確率を返します。 2013
GAMMA 統計 ガンマ関数値を返します。 2013
GAUSS 統計 標準正規分布の累積分布関数より0.5小さい値を返します。 2013
PERMUTATIONA 統計 指定した数の対象から、指定された数だけ(重複あり)抜き取る場合の順列の数を返します。 2013
PHI 統計 標準正規分布の密度関数の値を返します。 2013
SKEW.P 統計 人口に基づく分布の歪度を返します。歪度とは、分布の平均値周辺での両側の非対称度を表す値です。 2013
DAYS 日付と時刻 2つの日付間の日数を返します。 2013
ISOWEEKNUM 日付と時刻 指定された日付のその年におけるISO週番号を返します。 2013
IFNA 論理 式が#N/Aに解決される場合は、指定した値を返します。それ以外の場合は、式の結果を返します。 2013
XOR 論理 すべての引数の排他的論理和を返します。 2013

Excel2016以降で追加されたワークシート関数

関数名 種類と説明 説明
CONCAT テキスト 複数の範囲や文字列からのテキストを結合しますが、区切り記号またはIgnoreEmpty引数は提供しません。
TEXTJOIN テキスト 複数の範囲や文字列からのテキストを結合し、結合する各テキスト値の間に、指定した区切り記号を挿入します。区切り記号が空の文字列の場合は、範囲が連結されます。
FORECAST.ETS 統計 指数平滑化(ETS)アルゴリズムのAAAバージョンを使って、既存の(履歴)値に基づき将来価値を返します。
FORECAST.ETS.CONFINT 統計 特定の目標日の予測値について信頼区間を返します。
FORECAST.ETS.SEASONALITY 統計 Excelが検出する特定の時系列の反復パターンの長さを返します。
FORECAST.ETS.STAT 統計 時系列予測の結果として統計値を返します。
FORECAST.LINEAR 統計 既存の値に基づいて、将来価値を返します。
MAXIFS 統計 条件セットで指定されたセルの中の最大値を返します。
MINIFS 統計 条件セットで指定されたセルの中の最小値を返します。
IFS 論理値 1つ以上の条件が満たされているかどうかをチェックして、最初のTRUE条件に対応する値を返します。
SWITCH 論理値 値の一覧に対して式を評価し、最初に一致する値に対応する結果を返します。いずれにも一致しない場合は、任意指定の既定値が返されます。
FILTER Lookupとreference フィルターは定義した条件に基づいたデータ範囲です。
SORT Lookupとreference 範囲または配列の内容を並べ替えます。
SORTBY Lookupとreference 範囲または配列の内容を、対応する範囲または配列の値に基づいて並べ替えます。
UNIQUE Lookupとreference 一覧表または範囲内から重複データを削除した一覧を返します。
RANDARRAY 数学/三角法 0から1までのランダムな数値の配列を返します。
SEQUENCE 数学/三角法 1、2、3、4など、配列内の連続した数値の一覧を生成します。
XLOOKUP 検索/行列 範囲または配列を検索し、見つかった最初の一致に対応する項目を返します。一致が存在しない場合、XLOOKUP は最も近い (概算) 一致を返すことができます。
XMATCH 検索/行列 配列またはセル範囲内の項目の相対的な位置を返します。

数式.CONCAT関数(複数の範囲や文字列を結合)

エクセル入門 > 数式 > CONCAT関数(複数の範囲や文字列を結合)
 CONCAT関数は、複数の範囲や文字列からのテキストを結合します。ただし、区切り記号は指定できません。
  書式
  CONCAT(テキスト1, [テキスト2],…)
  テクスト1
 必須です。結合するテキスト項目。文字列またはセル範囲などの文字列の配列。
  [テキスト2, ...]
 省略可能です。結合する追加のテキスト項目。テキスト項目には最大253のテキスト引数を設定可能です。各引数には、文字列、またはセル範囲などの文字列の配列を指定できます。
 結合するテキストの間に区切り記号を含める場合はTEXTJOIN関数を使用します。結果の文字列が32767文字 (セルの上限) を超えると、CONCAT関数は#VALUE!エラーを返します。
  CONCAT関数の使用例
 A1セルからF1セルまで以下のように入っている場合、
a b c d e f

 =CONCAT(A1:C1,E1:F1) … abcef
 CONCAT関数はセル範囲を指定出来ることに特に意味があります。セル範囲を指定しなければ以前のCONCATENATE関数や&結合と同じ使い方になります。
 =CONCAT(A1,",",B1,",",C1) … a,b,cこれは以下と同じです。CONCATENATE(A1,",",B1,",",C1)(A1&","&B1&","&C1)
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.TEXTJOIN関数(区切り記号を指定できる文字列結合)

エクセル入門 > 数式 > TEXTJOIN関数(区切り記号を指定できる文字列結合)
 TEXTJOIN関数は、複数の範囲や文字列を結合し、各文字列の間に区切り記号を挿入します。区切り記号が空の文字列の場合は、範囲または文字列がそのまま連結されます。
  書式
  =TEXTJOIN(区切り文字,空のセルは無視,テキスト1,[テキスト2],...)
  区切り文字
 必須です。結合する各文字列の間に挿入する区切り記号を指定します。セルおよび固定の文字列(空の文字列を含む)が指定できます。数値が指定されている場合は、テキストとして扱われます。
  空のセルは無視無視
 必須です。TRUE の場合、空のセルは無視されます。
  テキスト1
 必須です。文字列、またはセル範囲などの文字列の配列。
  [テキスト2],...
 省略可能です。結合する追加の文字列またはセル範囲。引数として最大252を指定することができます。各テキストには、文字列、またはセル範囲などの文字列の配列を指定できます。
 CONCAT関数との一番の違いは区切り記号を指定できる点にあります。結果の文字列が32767文字 (セルの上限) を超えた場合、TEXTJOIN は#VALUEを返します。
  TEXTJOIN関数の使用例
 A1セルからF1セルまで以下のように入っている場合、
a b c   e f

 =TEXTJOIN(",",TRUE,A1:F1) … a,b,c,e,f=TEXTJOIN("-",FALSE,A1:F1) … a-b-c--e-f
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.MAXIFS関数、MINIFS関数(条件付き最大値最小値)

エクセル入門 > 数式 > MAXIFS関数、MINIFS関数(条件付き最大値最小値)
 MAXIFS関数は、条件を満たす条件範囲に対応する最大範囲の中から最大値を返します。MINIFS関数は、条件を満たす条件範囲に対応する最小範囲の中から最小値を返します。
  書式
  MAXIFS(最大範囲, 条件範囲1, 条件1, [条件範囲2, 条件2], ...)MINIFS(最小範囲, 条件範囲1, 条件1, [条件範囲2, 条件2], ...)
  最大範囲/最小範囲
 必須です。最大値/最小値を求めるセル範囲です。
  条件範囲1
 必須です。条件で評価するセルの範囲です。
  条件1
 必須です。
 最大として評価されるセルを定義する、数値、式、またはテキストの形式での条件です。
  [条件範囲2, 条件2], ...)
 省略可能です。追加の範囲と対応する条件を指定します。最大126個の範囲/条件ペアを入力できます。
 最大範囲/最小範囲と条件範囲Nのサイズおよび形状は同じでなければなりません。最大範囲/最小範囲と条件範囲に違うサイズを指定した場合#VALUE!エラーを返します。
  MAXIFS関数とMINIFS関数の使用例
 A1セルからB9セルまで以下のように入っている場合、
a 1
b 2
c 3
a 4
b 5
c 6
a 7
b 8
c 9

 =MAXIFS(B1:B9,A1:A9,"a") … 7=MINIFS(B1:B9,A1:A9,"b") … 2
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.IFS関数(複数条件)

エクセル入門 > 数式 > IFS関数(複数条件)
 IFS関数は、1つ以上の条件が満たされているかどうかをチェックして、最初のTRUE条件に対応する値を返します。複数のネストしたIFステートメントを置き換えることができるため、複数の条件指定ではより簡単に記述できます。
  書式
  =IFS(論理式1,真の場合1,[論理式2, 真の場合2]…)
  論理式1
 必須です。TRUE または FALSE に評価される論理式です。
  真の場合1
 必須です。論理式1がTRUEに評価された場合に返される結果です。空にすることができます。
  [論理式2, 真の場合2]…
 省略可能です。
 論理式と、対応する値をペアで指定します。各論理式N は、真の場合N に対応します。空にすることができます。
 IFS関数では、最大127個の条件を指定することができます。ただし、IFまたはIFS関数であまりにも多くの条件をネストすることはお勧め しません。複数の条件は正確な順序で入力する必要があり、かつ、構築、テスト、更新を行うのが大変難しい場合があるためです。このような場合は、 VLOOKUP関数等での代替方法を検討してください。
  IFS関数の使用例
 A1セルから以下のように入っている場合、
86 =IFS(A1>=95,"S",A1>=80,"A",A1>=60,"B",A1>=40,"C",TRUE,"D") A
53 =IFS(A2>=95,"S",A2>=80,"A",A2>=60,"B",A2>=40,"C",TRUE,"D") C
97 =IFS(A3>=95,"S",A3>=80,"A",A3>=60,"B",A3>=40,"C",TRUE,"D") S
69 =IFS(A4>=95,"S",A4>=80,"A",A4>=60,"B",A4>=40,"C",TRUE,"D") B
35 =IFS(A5>=95,"S",A5>=80,"A",A5>=60,"B",A5>=40,"C",TRUE,"D") D

 条件にTRUEを指定した場合は、常に真となるため対応する値が常に選択されます。つまり、最後の条件にTRUEを指定することで、ELSEとして残りの全ての条件とすることができます。上記数式の場合、,TRUEは<40を指定したことと同じになります。
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.SWITCH関数(複数値での切替)

エクセル入門 > 数式 > SWITCH関数(複数値での切替)
 SWITCH関数は、1つの値に対して値の一覧を評価し、最初に一致する値に対応する結果を返します。いずれにも一致しない場合は、任意指定の既定値が返されます。
  書式
  SWITCH(式,値1,結果1,[既定値または値2, 結果2],…[既定値または値126, 結果126])
 
 必須です。セル、数値、日付、文字列などの 値です。
  値1
 必須です。式に対して比較される値です。
  結果1
 必須です。対応する値1が式と一致したときに返される値です。
  値2,結果2…
 値Nと結果Nはペアで指定します。結果Nは、対応する値Nが式と一致したときに返される値です。
 結果N は、対応する各値Nに対して指定する必要があります。
  既定値
 既定値は、値Nの式で一致する項目が見つからなかった場合に返される値です。既定値の引数は、対応する結果Nの式が指定されていないことで識別されます。既定値は関数内の最後の引数である必要があります。
 関数の引数は254個に制限されているため、値と結果の引数の最大数は126個のペアになります。一致する値がなく、既定の引数も指定されていない場合、SWITCH 関数は#N/A! エラーを返します。
  SWITCH関数の使用例
 A1セルから以下のように入っている場合、
1 =SWITCH(A1,1,"A",2,"B",3,"C","D") A
2 =SWITCH(A2,1,"A",2,"B",3,"C","D") B
3 =SWITCH(A3,1,"A",2,"B",3,"C","D") C
4 =SWITCH(A4,1,"A",2,"B",3,"C","D") D
=SWITCH(A54,1,"A",2,"B",3,"C") #N/A

 1,"A"2,"B"3,"C"これらがペアとなっています。ペアになっていない最後の指定がある場合に既定値として識別されます。
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

数式.スピルについて

エクセル入門 > 数式 > スピルについて
 2019年にOffice365のExcelに実装された革新的な機能としてスピルがあります。スピルとは何か、その概要について説明します。
 以下で、「従来」または「旧」と呼んでいるのはスピルしないエクセルを指しています。

スピルとは

スピルを説明するには、まず配列についての説明が必要になります。まずは、従来のエクセルでの「配列数式」と「共通部分の参照」について説明します。

従来のエクセルの挙動

配列数式
 複数の値を返す数式(配列数式)は結果を表示する全てのセルを選択し、 Ctrl + Shift + Enter で数式を一括入力することで、{=数式}のように{}で囲まれた配列数式となります。この配列数式は CSE と略されます。例えば、B1:B3を選択し、=A1:A3を Ctrl + Shift + Enter で入力すると、数式は {=A1:A3} となり、B1:B3はA1:A3を参照するようになります。
  共通部分の参照
 暗黙的に共通部分を参照する機能があります。これは、同一行または同一列の値のみが返される機能です。
 B1セルに=A1:A3と入力すると、A1セルが参照されます。B2セルに=A1:A3と入力すると、A2セルが参照されます。B3セルに=A1:A3と入力すると、A3セルが参照されます。
  A2セルに=A1:C1と入力すると、A1セルが参照されます。B2セルに=A1:C1と入力すると、B1セルが参照されます。C2セルに=A1:C1と入力すると、C1セルが参照されます。
 

スピルとは

スピル(spill)とは、こぼれる、あふれる、と言うような意味です。数式を入力したセルから結果があふれて隣接したセルにも出力されるのがスピルです。
 スピルは 動的配列数式 とも呼ばれます。スピルは数式の結果の複数の値が隣接するセルに自動的に出力されます。複数の値を返す配列数式を該当セル範囲の先頭(左上セル)に入力すると、結果の複数の値が入力したセルからこぼれ出して隣接するセルに出力されます。
 従来なら配列数式として CSE で入力しなければならなかったものが、数式をEnter入力することで、該当セル範囲(スピルする範囲)に結果が出力されます。スピルする範囲 は、数式の結果データの縦横(行列)の大きさによって決まります。したがって、数式が変更されれはスピル範囲も変わりますし、数式が参照しているセル値に よっても大きさが動的に変化します。

スピルによって新しく追加された関数

関数名 説明
FILTER フィルターは定義した条件に基づいたデータ範囲です。
SORT 範囲または配列の内容を並べ替えます。
SORTBY 範囲または配列の内容を、対応する範囲または配列の値に基づいて並べ替えます。
UNIQUE 一覧表または範囲内から重複データを削除した一覧を返します。
RANDARRAY 0から1までのランダムな数値の配列を返します。
SEQUENCE 1、2、3、4など、配列内の連続した数値の一覧を生成します。
XLOOKUP 範囲または配列を検索し、見つかった最初の一致に対応する項目を返します。一致が存在しない場合、XLOOKUP は最も近い (概算) 一致を返すことができます。
XMATCH 配列またはセル範囲内の項目の相対的な位置を返します。

スピルの数式例

数式の結果が複数の値を返すものはスピルになります。
  =A1:A3
  =A1:C1
  =A2:A10*B1:J1
  複数の値(配列)を返す数式はスピルします!

従来のスピルしないエクセルで開いたとき

=A1:A3この数式を従来のエクセルで開いたときは、{=A1:A3}このように配列数式に変更されます。スピルするエクセルで開き直すと、配列数式ではなく元のスピル数式で表示されます。
 ただし、従来のスピルしないエクセルで配列数式として入れ直してしまうと、スピルするエクセルで開いた時にも配列数式のままとなります。
  ・スピル数式をスピルしないエクセルで開くと配列数式で表示・配列数式(CSE)で入力した数式は新旧どちらでも配列数式

ゴースト

スピルによってこぼれだした先のセルを選択すると、数式が薄く表示されます。
  上記ではD2およびD3セルを選択して数式バーをみると薄くなっているのが分かるはずです。これはゴーストと呼ばれています。そして、このゴーストのセルを編集状態にすると、数式も値も何も入っていないことが確認できます。
  このゴーストのセルに数式や数値・文字列を入れると、スピル数式を入れたセルが#SPILL!のエラーとなります。

スピル範囲での独特な挙動について

スピル範囲(つまりスピルでこぼれだした範囲)では、他のセル範囲とは違う動きになるものがあります。

値貼り付け

スピル範囲に文字数値をいれると#SPILL!となります。では、スピル範囲の一部を値貼り付けするとどうなるか…
 スピル範囲の一部を値貼り付けすることはできません。元のスピルした状態に強制的に戻されてしまいます。スピル範囲全体でしか値貼り付けできません。
 

範囲の選択ショートカット

スピル範囲は枠線で囲まれて分かり易くなっていますが、このスピル範囲を選択したい場合のショートカットがあります。
  Ctrl + A
 または Ctrl + Shift + Space
 スピル範囲以外では連続セル範囲が選択されますが、スピル範囲内においてはスピル範囲だけが選択されます。

スピルのエラー表示

#SPILL!

・スピル範囲が空でない場合に発生します。・結合されたセルにスピルすることはできません。・シートの端を超えてスピルすることはできません。・テーブル内でスピルさせることはできません。
 
 
 

#CALC!

公式ドキュメントには、Excelの計算エンジンが配列で指定されていない計算エラーを検出した場合に発生します。そのほか、配列の配列や空の配列等々が記載されています。
 実際に発生しうる簡単な例としては、FILTER関数が空の場合になります。
 

スピル範囲演算子

スピルによってこぼれる範囲(スピル範囲)は数式およびデータにより変化します。このスピル範囲の全体を他の数式で参照する場合は、スピルの数式を入れたセル番地に # を付けて参照できます。この # を「 スピル範囲演算子 」と呼びます。
  C1セルにスピル数式が入っています。スピル範囲を参照するには、数式において C1# とします。
 

従来のスピルしないエクセルで開いたとき(_xlfn.ANCHORARRAY)

=SUM(C1#)この数式を従来のエクセルで開いたときは、=SUM( _xlfn.ANCHORARRAY (C1))このように変更されて表示されます。
 値はいったんは表示されますが、当該セルが再計算されると#NAME?のエラーとなります。かつ、この再計算を元に戻して値を表示し直すこともできません。ただし、スピルするエクセルで開き直せば正しく再計算されます。

暗黙的なインターセクション演算子

従来のエクセルでは、「共通部分の参照」として=A1:A3のような数式を入れることが出来ました。しかし、スピルするエクセルでは、この数式 はスピルしてしまいます。つまり従来では、「共通部分の参照」として同一行や同一列を参照していたものが、勝手にスピルしてしまいます。そこで、従来のよ うに「共通部分の参照」としてセル範囲指定を使いたい場合は、セル範囲の先頭に @ を付けます。つまり、 @ をつけることで従来通りの動作となりスピルしなくなります。この @ を「 暗黙的なインターセクション演算子 」と呼びます。
 
 

従来のスピルしないエクセルで開いたとき

=@A1:A3この数式を従来のエクセルで開いたときは、=A1:A3このように変更されて表示されます。そして、従来のエクセル で、=A1:A3と入力してあるものは、スピルするエクセルでは、=@A1:A3このように変更されます。つまり、従来の「共通部分の参照」と@演算子は 相互変換されるという事です。

従来のエクセルと互換性が無い使い方の警告


  このような警告メッセージが表示されます。これは、=@(A1:A3+B1:B3)このように数式をいれています。@が無ければスピルします。それをスピルさせないようにしたものです。このような場合、ほとんどの場合は「はい」で良いはずです。
 「はい」で意図した結果にならない場合は、従来の「共通部分の参照」では使えない使い方になっていると思われます。簡単な例としては、上記数式 を別の行、例えばD4セルにいれているような場合です。スピルするエクセルでは、それでも正しく計算されますが、行がずれているので「共通部分の参照」に なっていないため従来のエクセルではエラヘとなります。さすがに、このような使い方は避けたほうが良いと思います。

従来のスピルしないエクセルとの互換性についての注意点

新しく追加された関数を使った場合に、旧エクセルでエラーになるのは仕方ありませんし今までも常にそうでした。しかし、問題はスピルです。関数 ではないので、特に意識せずにスピルを使ってしまう事はありえます。そして、旧エクセルでは配列で表示されるため気づかずに運用してしまう事もこれからは 発生しうる思われます。
 インターセクション演算子@は、「共通部分の参照」の使い方をしている限りは問題なく機能しているようです。しかし、スピル範囲演算子#は、ス ピルしない旧エクセルでは正しく変換されませんし使う事が出来ません。セルの数式に使っていれば、_xlfn.ANCHORARRAYが見て取れてすぐに 気が付きますが、名前定義、条件付き書式、入力規則、これらで#演算子を使ってしまうと、従来のエクセルで開いたときに原因を特定するのが難しくなってし まうと思われます。この点は特に気を付けておくべきでしょう。

数式.FILTER関数(範囲をフィルター処理)

エクセル入門 > 数式 > FILTER関数(範囲をフィルター処理)
 FILTER関数は、定義した条件に基づいてデータ範囲をフィルター処理した結果を返します。FILTER関数は スピル 専用の関数となります。
 2019年にOffice365のExcelに実装された革新的な機能としてスピルがあります。スピルとは何か、その概要について説明します。以下で、「従来」または「旧」と呼んでいるのはスピルしないエクセルを指しています。
 最後の方では、 表示する列を選択する方法も掲載 しています。

FILTER関数の書式

=FILTER(配列,含む,空の場合)
  配列
 必須です。フィルター処理する元データを指定します。セル範囲または配列です。
  含む
 必須です。フィルター条件を指定します。元データの配列の縦または横の大きさと同じ真偽値(TRUE,FALSE)の1次元配列を指定します。
  空の場合
 省略可能。フィルター結果が空の場合に表示する値を指定します。フィルター結果が空の場合にこの引数を省略していると、 #CALC! となります。

FILTER関数使用例のサンプルデータ

使い道の広い関数です。配列を意識して使いこなすと、かなり便利なことができます。以下のFILTER関数使用例で使う表は以下になります。
  なんちゃって個人情報です。50件用意しました。
 以下では、上表を元にFILTER関数を使用した場合を例示しています。

FILTER関数の基本

数値でフィルター

30歳未満でフィルター
  =FILTER(A2:E51,C2:C51<30)
 

文字でフィルター

"東京都"でフィルター
  =FILTER(A2:E51,E2:E51="東京都")
 

フィルター結果が0件の場合

フィルター結果が0件の場合に、引数「空の場合」を省略していると、 #CALC! のエラーとなります。
  引数「空の場合」を適宜指定します。
 

空白セルを0ではなく空白にする場合

エクセル関数全般での問題ですが、空白セルを参照すると0になってしまいます。
  =FILTER(A2:E51,B2:B51="女")
  空白セルを空白にしたい場合、いろいろな方法がありますが、&""を付け加える方法が最も簡単だと思います。
  =FILTER(A2:E51,B2:B51="女")&""
 

複数条件のフィルター

AND条件

"女" AND "東京都"でフィルター
  =FILTER(A2:E51,(B2:B51="女")*(E2:E51="東京都"))
 AND条件は、 *演算子 を使います。引数「含む」には、真偽値(TRUE,FALSE)の配列を指定するので、個々の 真偽値の掛け算がAND条件 になります。AND関数は使えません。

OR条件

"女" OR "東京都"でフィルター
  =FILTER(A2:E51,(B2:B51="女")+(E2:E51="東京都"))
 OR条件は、 +演算子 を使います。引数「含む」には、真偽値(TRUE,FALSE)の配列を指定するので、個々の 真偽値の足し算がAND条件 になります。OR関数は使えません。

関数を使ってフィルター

四則演算

ここだけ少し違うデータ例になります。C列とD列の足し算の結果でフィルターする場合。
  =FILTER(A2:E51,C2:C51+D2:D51>100)
 論理式として評価できる式であればどんな四則演算でも構いません。

文字列関数

LEFT,MID,RIGHT等の文字列関数が使えます。"京都府"と"大阪府"でフィルターしています。
  =FILTER(A2:E51,RIGHT(E2:E51)="府")

日付・時刻関数

YEAR,MONTH,DAY等の日付・時刻関数が使えます。10月生まれでフィルターしています。
  =FILTER(A2:E51,MONTH(D2:D51)=10)
 ただし、FILTER出力結果の日付の表示形式は自動では設定されません。適宜表示形式を設定してください。
 

関数使用時の注意

引数「含む」の計算結果が1行でもエラーを含んでいる場合、FILTER関数全体がエラーとなります。
  =FILTER(A2:E51,FIND("京",E2:E51)>0)
  FIND関数は、検索値が無い場合はエラーとなるため、上記ではFILTER関数全体がエラーとなっています。このような場合は、IFERROR関数でくるみます。
  =FILTER(A2:E51,IFERROR(FIND("京",E2:E51),0)>0)
  したがって、 見出し列を範囲に含めたり列全体で指定したりする場合は、IFERROR関数が必要 になる場合が多くなります。

横(列)でフィルター

ここまで、縦のデータによってフィルターしましたが、横(列)のデータによってフィルターすることもできます。
  =FILTER(A1:E51,A1:E1="年齢")
  ある特定の文字列を含む見出し列でフィルターするといった使い方ができます。しかし実務的には、この機能だけを単発で使う事は少ないように思います。むしろ、この下の布石になります。

表示する列を選択する

引数「含む」は真偽値(TRUE,FALSE)の配列を指定するものです。 1次元の配列であれば、縦・横どちらでも受け付けてくれます。

配列リテラルの書き方

縦の配列
  {} の中に ;セミコロン で区切って各要素を入れます。
  {1;2;3}
1
2
3

  横の配列
  {} の中に ,カンマ で区切って各要素を入れます。
  {1,2,3}
1 2 3

 そこで、ここまでの例で示した「含む」のほとんどは縦の配列であることを理解してください。 E2:E51="東京都" これは、 {FALSE;FALSE;…;TRUE,FALSE;…} 行数分の縦の配列になります、条件に合致した行はTRUE、それ以外はFALSEです。そして、TRUEは1、FALSEは0として代用できま す。そこで、「含む」に直接この配列を指定してみましょう。「含む」の行数は元配列と同じ行数にしなければならないので、ここでは5行だけにしました。
  =FILTER(A2:E6,{1;0;1;0;1})
  「含む」に指定した配列の1(TRUE)の行だけが出力されました。とはいえ、このような使い方をすることはまずないでしょう。では、横の配列を指定してみましょう
  =FILTER(A2:E6,{1,0,1,0,1})
  見事に元範囲の1,3,5列だけが出力されました。これは使えそうです。FILTER関数の結果をFILTERすれば、 条件で絞り込んだ後に必要な列だけに絞り込めます。

FILTER関数をネストして表示する列を選択

=FILTER(FILTER(A2:E51,C2:C51<30),{1,0,1,0,0})
  外側のFILTER関数に指定した配列通りの列のみ出力されました。これを使えば、 元表から欲しい列だけにすることができます。 注意点としては、「含む」に指定する 配列の大きさは、元表の列数に必ず合わせる ことです。
  表示する列の選択を自動化する
 配列 {1,0,1,0,0} を自動的に作成すれば良いだけです。FILTER関数を入れる上の行に事前に見出し文字列を入れておくことで、配列 {1,0,1,0,0} を見出し文字列から自動生成します。 =COUNTIF(G1:H1,A1:E1) この数式はスピルして、
1 0 1 0 0

 このようになりますので、これをそのま引数に指定できます。
  =FILTER(FILTER(A2:E51,C2:C51<30),COUNTIF(G1:H1,A1:E1))
 

FILTER関数の結果を他の関数で使う

FILTER関数が返すものは配列です。したがって、配列を受け入れる関数の引数として使う事が出来ます。
 "東京都"の"男"の平均年齢を出して見ましょう。もちろん、AVERAGEIFSで簡単に求められます。=AVERAGEIFS(C2:C51,B2:B51,"男",E2:E51,"東京都")あくまで、ここまでの総復習としてやってみましょう。
  =AVERAGE(FILTER(FILTER(A2:E51,(B2:B51="男")*(E2:E51="東京都")),COUNTIF(C1,A1:E1)))
 この数式は解読してみてください。ここまでに説明してきたことを組み合わせて使っているだけです。この数式が読めれば、FILTER関数はほぼ確実に理解できたと言えるでしょう。
 スピル導入によって、エクセルの使い方が大きく変わろうとしています。FILTER関数は、その中核となる関数と言えるでしよう。
  ワークシート関数一覧
 Excelワークシート関数の一覧と解説です。詳細解説ページへのリンクもあります。Excel2007までの関数です。2010以降追加の関 数一覧 ワークシート関数の一覧(2010以降) 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 文字列関数…27 日付と時刻の関数…21 情報関数…17 論理関数…7 検索/行列関数…1…

日付、時刻に関するあれこれ(「元年」表記追加)

1.曜日の表示方法
  2.数値を日付にする方法
  3.24時以降(26時等)の表示書式
  4.日付と日付の間隔(年齢等)の求め方、DATEDIFに関して
  5.日付、時刻のシリアル値(数値)
  6.和暦表示について 「元年」表記」

数値の書式あれこれ

1.千単位、百万単位
  2.不要な0を表示せずに、小数点位置を揃える
  3.ユーザー定義書式で条件付き書式を使う
  4.Excel2003で、条件によりフォント色を5段階で表示する方法

ひらがな⇔カタカナの変換

「ひらがな」を「カタカナ」に、「カタカナ」を「ひらがな」に変換する方法の説明です。

ひらがな→カタカナ変換

A1セル「にっぽん たろう」 、これを B1セルに「ニッポン タロウ」 と表示するには、B1セルに、 =PHONETIC(A1) これで、「カタカナ」で表示されたと思います。
 さらに、「半角カタカナ」にしたい場合は、B1セルに、 =ASC(PHONETIC(A1)) これで、「ニッポン タロウ」と表示されます。

カタカナ→ひらがな変換

では、 A2セル「ニッポン タロウ」 、これを B2セルに「にっぽん たろう」 と表示するには、まず、「ふりがなの設定」を変更します。2007以降なら、「ホーム」タブ→フォントグループ右下の「亜(ア)」のアイコン2003なら、「書式」→「ふりがな」→「設定」
  ここで、「ひらがな」を選択し、OKB2セルに、 =PHONETIC(A2) これで、「ひらがな」で表示されたと思います。

PHONETIC関数の問題点

PHONETIC関数を使った場合、例えばA3セルに、 「東京ハ首都デス」 と入っている場合、B3セルに =PHONETIC(A3) これは 「とうきょうはしゅとです」 と表示されてしまいます。
  PHONETIC 関数は、ふりがなを取得する関数ですから、漢字もセルに「ふりがな」データがあれば「ひらがな」もしくは「カタカナ」で表示されてしまいます。これは都合が悪いです。(これで良いと言う場合もあると思いますが)できたら、 「東京は首都です」 と表示したいですね。
 PHONETIC関数はセルの「ふりがな」を取得するので、漢字に「ふりがな」データが無ければ漢字のままになります。例えば、他ソフトで入力した文字の場合は漢字のままになります。これを利用すれば、漢字を除いて変換できそうです。

漢字は変換しない方法

A3セルに、 「東京ハ首都デス」 と入っている場合、C3セルに =A3 & "" と入力します。(元の文字列のままになればどんな関数でも良いです。)C3セルをコピーし、同じC3セルに値の貼り付けをします。そして、B3セルに
  =PHONETIC(C3) これで、正しく 「東京は首都です」 と表示されたと思います。
 ただし、この方法は、他ソフト(ワード等)に貼り付けて、変換後に戻すことと同じです。ただ、他ソフトを起動するより少し早く、貼り付け等の操作が簡単だということです。 注意 .
 元のデータのセルに値の貼り付をしてしまうと、セルの漢字の「ふりがな」が失われてしまいます。
 貼り付けしなければならないのは少々面倒です。そこで、関数だけでできないものかという要望になります。
  漢字は変換しない方法 …関数だけでやる方法
 かなり難しい数式になりますが、なんとかできます。A3セルに、 「東京ハ首都デス」 と入っているとして、B3セルに、
 =CONCAT(CHAR(CODE(MID(A3,ROW(OFFSET($A$1,0,0,LEN(A3),1)),1))-IF((CODE(MID(A3,ROW(OFFSET($A$1,0,0,LEN(A3),1)),1))>=9505)*(CODE(MID(A3,ROW(OFFSET($A$1,0,0,LEN(A3),1)),1))<=9587),256,0)))
 数式を入れるときに Ctrl+Shif+Enter で配列数式として入れます。{=数式}というように、{}で数式がかこまれて入力されます。
  これだけでB3セルに、 「東京は首都です」 と表示されたと思います。
 配列数式は非常に難しく、この詳細を解説しているととても長くなってしまいますので、ここでは省略します。あくまで、こんなこともできますよ、ということで見てもらえれば結構です。やはり、以下のマクロで処理するのが最も良いと思います。
 使用用途にもよりますが、関数の場合は、数式を入れて変換内容を確認後に値貼り付けしておく必要があります。

やはりマクロ(VBA)で

一回だけなら、上記操作でも問題ないと思われますが、たびたび、このような変換が必要な場合は、やはりマクロを使用して下さい。マクロが使える人には説明が不要な気もしますが、 StrConv(テキストデータ, vbHiragana) 'ひらがな変換StrConv(テキストデータ, vbKatakana) 'カタカナ変換 これだけでできます。変換したいセル範囲をループさせれば直ぐに完成です。
Sub Kana2Hiragana() Dim myRange As Range For Each myRange In Range("A2:A10") myRange.Offset(, 1).Value = StrConv(myRange.Value, vbHiragana) NextEnd Sub
A2~A10セルの「カタカナ」を「ひらがな」に変換しています。

関数入力のショートカット

関数入力時に使う、ショートカットです。
 例えば、
  =IF
 ここまで入れて、
  Ctrl + Shift + A (CtrlキーとShiftキーを押したまま、A)
 すると、
  =IF(論理式,真の場合,偽の場合)
 と自動で入力されます。
 こけは、関数名に対応する引数が、日本語名で表示されるものです。
 ウィザードや、数式パレットと違って、これは、このまま入力する事が出来ます。
 結果は、「#NAME?」となりますが、数式は残ります。
 だから、ゆっくり1つづつ入れていけるのです。
 関数をネスト(入れ子)するときには、重宝しますよ。
 また、
  =IF
 ここまで入れて、
  Ctrl + A (Ctrlキーを押したまま、A)
 すると、
  数式パレット(数式入力のウインドウ)が開きます。
 
 これは、
 
  =IF(
 
 ここで、
 
  Shift + F3
 
 と同一になりますが、
 
  (
 
  が不要 なのです。
 
 
 関数には、いろいろな入力方法があります。
 一番使いやすい方法を、みつけましょう。

セルの表示形式のショートカット

セルの表示形式に関するショートカットはたくさんあります。
 まずは、
 「セルの書式設定」ダイアログを表示する、 Ctrl+1
 ただ、このダイアログ、エクセル起動後に初めて表示する場合は、
 2007から表示に時間かかるようになってしまいました。
 この時間が結構いらいらするものです。
 ショートカットなら一瞬で設定できますので、かなりの時間短縮になります。
 しかし、このショートカットが多すぎて、なかなか覚えられないと思います。
 以下、表示書式に関する、ショートカットの一覧です。
Ctrl + 1 [セルの書式設定] ダイアログ ボックスを表示する
Ctrl + 2 太字の書式の設定と解除を切り替える
Ctrl + 3 斜体の書式の設定と解除を切り替える
Ctrl + 4 下線の設定と解除を切り替える
Ctrl + 5 取り消し線の設定と解除を切り替える
Ctrl + 7 [標準] ツールバーの表示と非表示を切り替える
Ctrl + ^ [指数] 表示形式 (小数点以下の桁数 2) を設定する
Ctrl + @ [時刻] 表示形式 (hh:mm、24 時間表示) を設定する
Ctrl + Shift + 1 桁区切りの表示形式を設定する
Ctrl + Shift + 3 [日付] 表示形式 (yyyy/mm/dd) を設定する
Ctrl + Shift + 4 [通貨] 表示形式 (\-1,234) を設定する
Ctrl + Shift + 5 [パーセンテージ] 表示形式 (小数点以下の桁数 0) を設定する
Ctrl + Shift + 6 外枠の罫線を設定する
Ctrl + Shift + ~(^) 標準の表示形式に設定する
Ctrl + I 斜体の書式の設定と解除を切り替える
Ctrl + B 太字の書式の設定と解除を切り替える
Ctrl + U 下線の設定と解除を切り替える
Ctrl + Alt + TAB セル書式の横位置を「左詰(インデント)」にし、押すごとにインデント数を+1する
Ctrl + Alt + Shift + TAB Ctrl + Alt + Shift + TAB で押すごとにインデント数を-1する

 良く使いそうなものを、太字にしました。
 人によって、良く使うものは違うと思います、自身で良く使うものは覚えておきましょう。
 この中でも、私は、
  Ctrl + Shift + ~(^) : 標準の表示形式に設定する
 これを結構使います。
 間違って、9/10とか入れてしまうと、日付形式に自動で設定されてしまいます。
 =5-3と入れるつもりが、5-3と入れてしまい、日付になってしまったりとか。
 その後に、普通に数値を入れても、日付形式のままで困った…そんな事ありませんか。
 そんな時は、Ctrl+Shift+~(^)
 最後の文字は、チルダー(~、^、へ)です。
 とりあえず、覚えておいて損はありません。
 ちょっとした、時間短縮も、積もり積もれば結構な時間になってしまいます。
 ぜひ、ショートカットを活用して下さい。

可視セルのみコピーする(非表示の行・列を除く)

ツイッターを見ていて、ふと…
 そういえば、確か、
 範囲選択して、
 範囲内に、非表示の行・列があった時に、
 可視セル(表示されているセル)だけコピーする方法あったよね。
 ということで、
 ちょっと紹介します。
  範囲選択 したら、
  Alt + ;
  Alt キーを押しながら ; (セミコロン)を押して下さい。
 これで、 可視セルのみの選択 になります。
 そして、
  Ctrl + C
 でコピーすればOK
 簡単です。
 覚えておけば、使う機会もあるでしょう。

日付表示の桁位置を揃える

日付表示で月日が1桁の時に、/スラッシュの位置を揃える表示形式の指定方法です。
  12/1912/ 8
 この場合の、表示位置を揃えるというものです。
 そのサイトの案内では、
  m/d これを m/" "d
 このようにすれば良いと書いてありました。そもそも、ダブルクォーテーションも不要です。
  m/ d
 これで同じになります。
 しかし、これでは、 Pフォント の場合は、位置がずれてしまいます。つまり、半角空白の文字幅と数値の文字幅が違うからです。このページの最初の見た目と同じような感じで少しずれが生じます。つまり、そのサイトの内容は、説明不足感が否めません。
 では、 Pフォント でも位置が揃うようにするにはどうすれば良いかですが、
  m/_0d
 このように指定します。
 この「 _ 」アンダーバーは、
  「_」アンダーバーに続けて指定された文字幅分の間隔が空きます。
 つまり、ここでは、別に0が1でも同じことになります。ちょっとしたことなんですが、せっかく位置を揃えるなら、キチンと揃えたいですよね。
 ただし、上記方法は、
 12/8に対しての書式設定ですので、12/19とは別々の書式にするしかありません。
  Excel2003までですと、9日までと10日以上を別々に書式設定するしかないです。
 しかーし、 2007以降では、条件付き書式で表示形式を設定出来ます。
 まず、対象のセル全体の表示形式を、
  m/d
 としておき、
 次に、条件付き書式で、
 「 数式を使用して、書式設定するセルを決定
 「 次の数式を満たす場合に書式設定する 」に、
 「 =DAY(A1)<10 」 … A1は適宜変更して下さいね。(アクティブセルを指定するんですよ)
  書式→表示形式→ユーザー定義
 m/_0d

 これで完成。
 やってみて下さい。
 表示位置が揃って気持ち良いですね!

覚えておきたいエクセルの操作:Enter編

しっかり覚えておいてほしいエクセルの操作です。
 今回は
  Enter です。
 通常はEnterで下(オプションにより右)に移動します。
 そこで、
  Shift + Enter
 上(オプションにより左)に移動します。
 これは、値を入れた時も、何も入れなくても移動します。
 では、値をいれて、
  Alt + Enter
 セル内で改行します。
 セル内に、複数行のデータを入れる事が出来ます。
 これは、表示形式で折り返して表示するものとは違います。
 セル内に改行コードを挿入します。
 さらに、
  Ctrl + Enter
 複数の選択セルに一括で値を入れます。
 複数のセルに一度に同じ値を入れる場合に使います。
 複数セルを選択し、値を入力して、
  Ctrl + Enter
 これで、選択している全セルに同じ値が入ります。
 選択セルは移動しません。
 特殊なところでは、
 値を入れずに、そのまま
  Alt + Enter
 これは、直前の操作を繰り返します。
  F4
 と同一機能になります。
 また
 関数を入力して、
  Ctrl + Shift + Enter
 入力した関数を配列数式として入力します。
 配列数式はあまり使用しない方が良いでしょう。
 このように
  Enter にもいろいろ機能がありますが、
  セル内改行の、Alt + Enter
 と
  選択セルに一括入力の、Ctrl + Enter
 この二つは、しっかり覚えて下さい。

覚えておきたいエクセルの操作:入力・編集

まずはしっかり覚えておいてほしいエクセルの操作です。、
 今回は、
 入力・編集です。
 関数を入力する場合、
 =
 から入力を始めます。
 この時、エクセルのウインドウの左下は、
 
 

 このように、入力と表示されます。
 入力前は、コマンドと表示されている場所です。
 この状態では、矢印キー(↑→↓←)でセル参照が、数式に入るようになります。
 セル参照に移行した状態では、
 
 

 このように、参照と表示されます。
 ここで、カンマ(,)を入力して、次の引数の入力に移ったり、
 括弧や演算子の入力を行うと、
 再び、
  入力の表示に戻ります。
 このようにして、関数の引数を次々に入力していくのですが、
 途中で、マウスで数式内をクリックして移動すると、
 
 

 このように、編集と表示されます。
 この状態は、セルをダブルクリックまたはF2で編集する場合と同じ状態です。
 つまり、修正モードになります。
 この状態の時は、セル参照は、マウスを使う事になります。
 マウスで参照すべきセルを選択する訳です。
 セル参照した時点で、
  となり、
 カンマ(,)や演算子を入力すると、
 再び、
  入力に戻ります。
 編集モードから、強制的に入力モードに変えたい場合は、
 F2を押します。
 F2を押下で、交互に、編集モードと入力モードが変化します。
 矢印キーで、数式内を移動しようとして、数式が確定してしまうのは、
 入力モードの状態で、次にセル参照を入れるべき状態に無い時です。
 エクセルが、もうセル参照しないでしょって判断してしまうのです。
 なかなか直感的に解りずらいのですが、
 数式の入力途中で、ちらっと左下に目をやってみると良いでしょう。

覚えておきたいエクセルの操作:ジャンプ

しっかり覚えておいてほしいエクセルの操作です。今回は
 ジャンプのセル選択です。
 ジャンプは、ショーカットはCtrl+Gです。
 エクセル2003なら、「編集」→「ジャンプ」
 エクセル2007以降なら、「ホーム」→「検索と選択」→「ジャンプ」
 
 

 この画面自体は、何のためにあるのか???です。
 実際、ほとんど使う事はありません。
 ここで、「セル選択」で次の画面へ
 エクセル2007以降なら、直接、「ホーム」→「検索と選択」→「条件を選択してジャンプ」
 
 

 用途に応じて、いずれかを選択し、「OK」で、目的のセルが選択されます。
 良く使うものとして、
 ・定数・数式・空白セル・オブジェクト
 今回は、「空白セル」を使った応用技を紹介します。
  データを1行おきにする
 まず以下のようなデータがあったとして、
 
 

 このデータを1行おきにする場合、以下のようにします。
 ・D2セルに1、E3セルに1と入れる (1である必要はありません、数値・文字なら何でも良い)・D2セルからE3セルを選択し、オートフィルで最下行までコピー
 
 

 ここで、
 「ジャンプ」→「セル選択」→「空白セル」→「OK」
 すると、
 
 

 ここで、選択されているセルを右クリックから「挿入」
 
 

 「行全体」を選んで「OK」
 または、
 エクセル2003なら、「挿入」→「行」
 エクセル2007以降なら、「ホーム」→「挿入」→「シートの行を挿入」
 これで全て1行おきになります。
  空白行の削除
 では、上で空白行が出来た表から、空白行を削除する場合です。
 A列を選択して、
 「ジャンプ」→「空白セル」→「OK」
 選択されているセルを右クリックから「削除」→「行全体」→「OK」
 または、
 エクセル2003なら、「編集」→「削除」→「行全体」→「OK」エクセル2007以降なら、「ホーム」→「削除」→「シートの行を削除」
 ここはオートフィルターを使う事が多い場面ですが、
 1項目のみの空白判定で良ければ、こちらの方が速いでしょう。
 以上、ジャンプのセル選択での、空白セルの応用でした。
 場面場面でいろいろ活用ができますので、是非覚えておいて下さい。

覚えておきたいエクセルの操作:数式のコピー

しっかり覚えておいてほしいエクセルの操作です。今回は、数式のコピーです。エクセルでセルをコピーする場合、
 ・セルの全てをコピー・セルの値のみコピー・セルの数式のみコピー
 このあたりが一番多い操作になるでしょう。セルの全てをコピーは、普通のコピーですね、
 セルの値のみコピーは、定番の値貼り付けになります。
 今回は数式(計算式)のみコピーする場合の説明です。
 そんなの知っているって…本当に?
 まあ、確認も含めてお付き合いください。
  オートフィルの場合
 オートフィル後に
 
このような、貼り付けオプションが表示されます。(エクセルのオプションでこの機能は止める事が出来ます)ここで、「書式なしコピー」を選択すれば、数式のみコピーされます。
  コピー&ペースト Ctrl+Vの後に、
 
 
このような、貼り付けオプションが表示されます。(Enterで貼り付けた場合は表示されません)2番目の「Fx」のアイコンで、数式のみコピー されます。エクセル2007以前では、貼り付けオプション画面が少し違いますが、2番目の「貼り付け先の書式に合わせる」で数式のみコピーされます。
 貼り付けオプションも便利なのですが、やはり、古来からの定番としては、「形式を選択して貼り付け」です。コピー後に、コピー先のセルで右クリックメニューから 形式を選択して貼り付け
 
「数式」を選択して「OK」、これで数式のみコピーとなります。この画面の内容は、良く見て置く事をお勧め致します。
 では応用編です。
  数式の一括入力 複数セルに数式を一括で入力する方法です。
 
 
上図で金額に単価*数量の計算式を入れる場合、D3セル~D13セルを選択し、計算式を入力
 
 
ここで、 Ctrl+Enter で数式が一括で入力できます。もちろん、相対参照・絶対参照も有効です。セルコピーした場合と同様です。この機能を応用すれば、既に入力済の数式 を他のセルにコピーできます。上図の場合、D3セルだけに数式を入れた場合、D3セル~D13セルを選択し、F2でセル編集にします。この時点で、上図と 同じ状態になりますので、Ctrl+Enterで良い事になります。この応用は、飛び飛びのセルでも可能です。
 ・コピー先のセルを選択します。 飛び飛びのセル範囲の場合はCtrlを押しながら選択します。・コピー先のセル選択が終了したら、 最期にコピー元のセルをCtrlを押しながら選択します。・F2で編集状態にします・Ctrl+Enter
 これで数式のみコピーされます。まとめると、 最期にコピー元のセルを選択して、F2→Ctrl+Enter
 との方法が良いということではありません。
 シーンに合わせて使いこなせれば、エクセル操作が楽になります。

覚えておきたいエクセルの操作:文字列数値を数値化

しっかり覚えておいてほしいエクセルの操作です。今回は文字列数値を数値化です。本来は数値なのに、セルに文字列として入っている事があります。
 
このように、セルの左上にエラーチェックによる緑マークが付いている状態です。
 この文字列として入力されている数値を数値化する場合です。
 ちなみに、このエラー表示は非表示にすることが出来ます。
  エラー表示を非表示
 エクセルのオプションで・バックグラウンドでエラーチェックを外す
  (他のエラーも表示されなくなります)・文字列形式の数値のチェックを外す (バージョンにより文章表現が微妙に違います)
 上記のどちらかがOFFになっている場合はエラーインジケーターは表示されません。
  エラーインジケーターを使用
 対象セル範囲を選択すると、
 
 
エラーインジケーターが表示されますので、上から2番目の「数値に変換する」これを選択する事で数値化できます。文字列のセルはそのままです。全角数値も数値化されます。ただし、オプションで非表示にしている場合は使えません。
  関数を使う
 隣のセル(B1)に、=VALUE(A1)と入れてオートフィルする事で、B列が数値となります。関数を使わずに、
 =A1+0=A1*1これでも数値化されます。全角数値も数値化されます。ただし、元のデータに文字列が含まれていると#VALUEのエラーとなってしまいます。
  裏技もあります
 ・空白セルを、Ctrl+Cでコピー・対象セル範囲を選択・右クリックメニューから、「形式を選択して貼り付け」・演算で「加算」を選択して 「OK」…もちろん「減算」でも良い(1と入っているセルをコピーして、乗算でも良い)これで、半角・全角問わず数値化されて、文字列はそのままになりま す。この操作は、実はかなり奥が深いのです。例えば、セルに計算式が入っていて、その結果が文字列としての数値の場合、この操作を行うと、数式の後ろ に、+0が追加されます。先の関数による数値化で説明した事を自動でやってくれているのです。ただ、もともと数式の結果を数値化するのなら、最初から VALUE関数を組み込めば良いだけの話ではあります。しかし、複数の計算式がある場合は、一つ一つ修正するのも面倒なので、そのような場合には、裏技と して便利かもしれません。ただし、数式の結果がそもそも文字列の場合は、数式の後ろに+0が追加されるので、#VALUEとなってしまいますので、この点 のみ注意が必要です。
 若干強引な手法ではありますが、割と簡単で応用範囲の広い操作です。

覚えておきたいエクセルの操作:図形(オートシェイプ)

しっかり覚えておいてほしいエクセルの操作です。今回は、図形の操作です。
  ショートカット(Excel2010) まずは、ショートカットでの図形の移動・サイズ変更・回転です。キーボードの→↓←↑と、Ctrl,Shif,Altの組み合わせになります。エ クセル2007以前では、→↓←↑での移動のみ有効です。ところで、この→↓←↑キーは、・カーソルキー・十字キー・矢印キー・方向キーといろいろ呼び方 はありますが、正式名称はカーソルキー(CursorKey)ですね。ここでは、方向キーと書きます。こちらの方が直感的に解り易いと思いますので。
  図形を選択して →:右に移動します←:左に移動します↑:上に移動します↓:下に移動しますShift + →:左右に拡大しますShift + ←:左右に縮小しますShift + ↑:上下に拡大しますShift + ↓:上下に縮小しますCtrl + Shift + →:左右に細かく拡大しますCtrl + Shift + ←:左右に細かく縮小しますCtrl + Shift + ↑:上下に細かく拡大しますCtrl + Shift + ↓:上下に細かく縮小しますAlt + →:右に回転しますAlt + ←:左に回転しますCtrl + Alt + →:右に細かく回転しますCtrl + Alt + ←:左に細かく回転します 数が多く感じるかもしれませんが、 方向キー:移動Shift + 方向キー:拡大縮小Alt + 方向キー:回転 これに、 Ctrlを追加すると細かい動作 になります。何故かエクセルでは、方向キーによる移動にCtrlの組み合わせがありません。マイクロソフト製品の基本としては、
 方向キーで大きく移動し、Ctrl+方向キーで小さく移動するというのが基本なのですが、なぜかエクセル・ワードでは、方向キーだけで小さく移 動になっていますので、Ctrl+方向キーの意味がなくなっています。パワーポイント・アクセスのフォームでは、方向キーで大きく移動し、Ctrl+方向 キーで小さく移動します。もっともエクセルのユーザーフォームでは、そもそも方向キーで移動もしないという、なんともお粗末な状態ではあります。 マウス操作Shift + 四隅をドラッグ:縦横比を固定しての拡大縮小Ctrl + ドラッグ:図形の中心位置をずらさずに拡大縮小Alt + ドラッグ:セル境界に自動的に合わせます マウス操作時の動作は、文章で説明しても解りずらいと思います。
 ぜひ、ご自身でその動作を確認してみて下さい。
  図形の選択全選択
  ・ジャンプ(Ctrl+G)→セル選択→オブジェクト→OK・図形を1つ選択して、Ctrl+Shift+Space、2007以降ならCtrl+Aでも可範囲選択
  ・2007以降:ホーム→検索と選択→オブジェクトの選択、マウスで範囲選択・2003以前:表示→図形描画→オブジェクトの選択、マウスで範囲選択 数が多くなければ、 ・Ctrlを押してマウスで次々にクリック
 エクセルで図形を扱う事は、エクセル操作全般の中では少ない方かもしれません。それゆえ、扱い慣れずに時間がかかる事も多いと思います。ショートカットとマウス操作をしっかり覚えることで、操作時間を短縮できます。

ハイパーリンクを絶対パスで保存する方法

通常は、ハイパーリンクは相対パスで保存されますが、ファイルを移動したりすると、リンクが切れてしまいます、
 そこで、ハイパーリンクの起点を変更して絶対パスで保存する方法になります。
 先日聞かれて、即答できませんでしたので、ここに覚書きの意味を含めて記載しておきます。
 この指定は、各バージョン毎に全く違った場所にあるので、バージョン毎に記載します。
 説明は必要ないので、手順の画像を載せます。
  Excel2003
 ファイル → プロパティ
  ファイルの概要
  「ハイパーリンクの起点」に\(円記号)を入れます。
  Excel2007
 Officeボタン → 配布準備 → プロパティ
  ドキュメントのプロパティ → 詳細プロパティ
  ファイルの概要
  「ハイパーリンクの起点」に\(円記号)を入れます。
  Excel2010
 ファイル → 情報
  右の方にある、プロパティ → 詳細プロパティ
  ファイルの概要
  「ハイパーリンクの起点」に\(円記号)を入れます。
 通常は、あまり使う事が無いはずです。
 というか、
 配布が必要なシステムでは、フォルダ構成はなるべく限定するようにすべきです。
 とはいえ、やはり必要な場合も出てきますので、その時には思い出して下さい。

入力時に勝手に付くハイパーリンクを消す方法

セルにURLやメールアドレスを入力すると、勝手にハイパーリンクが付きますが、この時、ショートカットでハイパーリンクのみ消す事が出来ます。
 ・セルにURLやメールアドレスを入力 … ハイパーリンクが付く
 ・Ctrl+Z(元に戻す) … ハイパーリンクのみ消えます。
 つまりは、Excelはこれを2段階で処理しているということになります。・セルへの値入力・ハイパーリンクを設定
 そこで、後からのハイパーリンクの部分だけ元に戻すことができるわけです。
 このような理屈なので、
 コピペでいきなりセルそのものに貼り付けてしまうと戻せません。
 テキスト等から貼り付ける場合は、セルを編集状態にしてセル内にアドレスを貼り付けてやればこれが使えます。
 もちろん、ハイパーリンクは一切付いてほしくないのなら、オプションを変更して下さい。
 ファィル→オプション↓文章校正↓オートコレクションのオプション↓入力オートフォーマット↓インターネットとネットワークアドレスをハイパーリンクに変更する↓このチェックを外す
 ハイパーリンクが付いて良いときと、つけたくない時がある場合は、
 このCtrl+Zを覚えておくと、ずっと操作が楽になります。

重複削除しユニークデータ作成(フィルターオプションの設定)

エクセル作業においては、データの重複を排除して、ユニークなデータを作成する必要がある場合は多々あります。
 そのような時の操作として、以下の方法があります。
  ・COUNTIF関数で重複を判定して削除・ピボットテーブルで重複を削除・重複の削除で重複を削除・フィルタの詳細設定(フィルターオプションの設定)で重複を削除
 どれも一長一短はありますが、個人的には、一番スマートなのは、フィルタの詳細設定だと思っています。
 ここでは、フィルタの詳細設定について操作方法について詳しく解説いたします。他の方法については、ごく簡単な説明にとどめます。
 以下の表で説明します。
  上表で、「会社」の一覧を作成します。
  COUNTIF関数で重複を判定して削除
 C2セルに、
  =COUNTIF($A$2:A2,A2)
 と入れて、最終行までコピーします。
 オートフィルタで、「1」のみで絞り込めば、目的の重複のない会社だけになります。
  この方法の場合、どうしても関数の入力が必要で少々面倒です。また、 会社と支社でユニークにしたい場合 などは、さらに 文字列を結構する数式をいれる必要があり 、かなり面倒になります。
 
 
  ピボットテーブルで重複を削除
 表内のどこでも良いので、一つのセルを選択し、
  挿入→ビポットテーブル→「OK」
 ピボットが作成されたら、「会社」にチェック
  この方法の場合、操作は簡単なので、手っ取り早い方法と言えます。ただし、 会社と支社でユニークにしたい場合 などは、 ピボットの形式を変更して、さらに会社の空欄を埋めたり しないといけないので、こうなるとかなり面倒になってしまいます。
 
 
  重複の削除で重複を削除
 表内のどこでも良いので、一つのセルを選択し、
  データ→重複の削除
 列Aだけチェックを残して「OK」
 
  この方法は、非常に簡単でわかり易い操作だと言えます。
 ただし、最も重要な事として、結果が正しいかという点で疑念が残ります。 Excel2007のバグは有名 ですし、 Excel2010でも、全てのバグが解消されていない事が確認 されています。
 データ量が少ない場合(数千件等)であれば問題はありませんが、データ量が多い場合は、結果の正当性を確認するのが困難なので使う事をお勧めしません。
  フィルタの詳細設定(フィルターオプションの設定)で重複を削除
 この記事の本題になります。
 フィルターオプションの設定は、非常に便利な機能なのですが、使い方が難しいため、あまり使われていない機能のようです。しかし、使い慣れればとても便利な機能です。
 表内のどこでも良いので、一つのセルを選択し、
  データ→フィルタの詳細設定
  このようなダイアログが表示されます。
  ・選択した範囲 チェックする・リスト範囲 データの列(下方に余分なデータが無ければ列を指定で良い)・出力範囲 重複の無いデータの出力する場所の先頭を指定・重複するレコードは無視する チェックする
 これで「OK」
  会社、支社でユニークにする場合は、リスト範囲で、A:BとA列とB列を指定すれば良いだけです。
 これだけなので、簡単な操作なのですが、実は、 出力先(出力範囲)を別のシートにする場合の操作に注意 が必要なのです。
 別のシートに出力する場合は、出力先のシートを選択した状態で「フィルタの詳細設定」を起動する必要があります。
 ・出力先のシートを選択・データ・フィルタの詳細設定
 出力先のシートを先に選択しておかないと、
  このようなエラーメッセージが表示されてしまいます。
 重複の削除は、エクセル操作としては基本になります。ここで紹介した方法は、一通りできるようになっておきましょう。

1年後の日付、○か月後の日付

起算日からの一年間の最後の日の求め方です。
 起算日が2011/4/1なら、2012/3/31の求め方です。
 セルA1に起算日が入っており、セルA2に一年間の最終日を設定する場合。
  一年後の日付
 よくみかけるのは、
  =DATE(YEAR(A1)+1,MONTH(A1),DAY(A1))-1
 DATEは、DATE(年,月,日)で、指定の年月日の日付を返す関数です。
 通常は、これでもOKだと思われます。
 ただし、特殊な場合、起算日が2008/2/29の場合、結果が2009/2/28になります。正しいように思えますが、本当は、2009/2/27です。
 なぜこのような結果になるかというと、DATE関数=DATE(2009,2,29)は、2009/3/1を返すからです。
 よく役所関係では、「応答日」という言い方をします、つまりその月の同じ日付なのですが、「応答日」が無い場合は、前日にするとの規定が多いです。
 ですから、2008/2/29の一年後の応答日は、2009/2/28になりますので、2008/2/29からの一年間では、2009/2/27が正しいです。
 では、どうすればよいか
 最も簡単な方法は
  =EDATE(A1,12)-1
 EDATEは、EDATE(起算日,月数)で、起算日の月数後の日付を返す関数です。
 こちらの方が、ずっと簡単です。
 しかし、注意が必要です。
  注). このEDATEはアドイン「分析ツール」を入れないと使えません。「分析ツール」は、2003なら、ツール-アドイン、2007以降は、EXCELのオプション-アドインまた、セルの書式が日付に自動設定されませんので、自分で日付の書式に変更する必要があります。
  ○か月後の日付
 例えば、3か月後(4か月間)を求める場合
 =DATE(YEAR(B3),MONTH(B3)+3,DAY(B3))-1

 これで大丈夫でしょうか?
 大抵の場合はOKなのですが、起算日が月末の場合は、正しく求められません。
 2011/3/31から4か月間では、2011/6/30になってしまいます。
 これは、2011/6/29になる必要があります。
 月末が起算日になる事はあまりないとおもわれますが、ハローワーク等の申請においては頻発します。
 では、どうすればよいか
 最も簡単な方法は
  =EDATE(A1,3)-1
 上記、注)を参照
 結論から言えば、EDATE関数を使うべきだと思います。
 しかし、「分析ツール」はどうしても使いたくないと言う人の為に、以下にその方法を紹介します。
  =MIN(DATE(YEAR(A1), MONTH(A1)+3, DAY(A1)),DATE(YEAR(A1), MONTH(A1)+4,0))-1
 DATE関数は、日付が0の場合、前月末日を返します。
 MINは、MIN(値1,値2…)で、値1,値2…の中から最小値を返す関数です。
 少し解説しますと
 3か月後の同一日と3か月後の末日の小さい方の日付を求めています。
 つまり、起算日が2011/3/31の場合、MIN(DATE(2011,6,31),DATE(2011,7,0))→MIN(2011/7/1,2011/6/30)→2011/6/30
 上記は一例で、これ以外にも、IF関数を使った方法等も色々考えられます。

複数条件の合計・件数

複数条件の合計、複数条件の件数を求める関数式です。
 以下の表で説明します。
A B C
1 品名 サイズ 売上
2 りんご L 180
3 みかん S 150
4 りんご L 300
5 りんご M 200
6 みかん M 450
7 りんご S 200
8 みかん L 280
9 みかん M 200
10 みかん L 120

  複数条件の合計
 「みかん」の「M」の合計売上は
 まず、 2007以降 ならSUMIFSが使えますので、問題はないと思います。 =SUMIFS(C2:C10,A2:A10,"みかん",B2:B10,"M")
 SUMIFS(合計範囲,条件範囲1,条件値1,条件範囲2,条件値2),
 しかし、 2003 ではSUMIFSは使えません。では、どうするか、 =SUMPRODUCT((A2:A10="みかん")*(B2:B10="M")*C2:C10)
 SUMPRODUCT(配列1,配列2,…)は、配列を乗算しその合計を求めます。
 さらに別の方法も、配列を使用します。 {=SUM(IF((A2:A10="みかん")*(B2:B10="M"),C2:C10))} =SUM(IF((A2:A10="みかん")*(B2:B10="M"),C2:C10))を入力し、 Ctrl+Shift+Ente rで、
 Ctrl+Shift+Enterは、配列数式の入力です。
 SUMIFS以外は、ちょっと理解しずらいと思います。
 エクセルでは、論理値は、真(true)は1、偽(False)は0です。つまり、1つでも条件を満たさない行は、*0が入るので、全て真の行のみ合計される訳です。まあ、そんなものだと理解しておくのが良いと思います。
  複数条件の件数
 合計とほぼ同様です。「みかん」の「M」の件数は
 まず、 2007以降 ならCOUNTIFSが使えますので、問題はないと思います。 =COUNTIFS(A2:A10,"みかん",B2:B10,"M")
 しかし、 2003 ではCOUNTIFSは使えません。では、どうするか、 =SUMPRODUCT((A2:A10="みかん")*(B2:B10="M"))
 SUMPRODUCT(配列1,配列2,…)は、配列を乗算しその合計を求めます。
 さらに別の方法も、配列を使用します。 {=COUNT(IF((A2:A10="みかん")*(B2:B10="M"),1))} =COUNT(IF((A2:A10="みかん")*(B2:B10="M"),1))を入力し、 Ctrl+Shift+Ente rで、
 売上の合計の代わりに、「1」を指定しています。

入力規則のリストを、追加・削除に自動対応で作成

一覧リストを使用して、「入力規則」の「リスト」を作成し、さらに、一覧リストへの追加・削除に自動対応させるものです。
 シート「リスト」の部署を使用して、シート「入力」に入力規則のリストを範囲可変で作成します。
 
  名前を定義します。
 シート「リスト」を選択します。
 Ctrl+F3で名前定義を起動する。メニュー等からの起動はバージョン毎に違います。
 「名前」に「部署」と入力。
 2007以降の場合、範囲は「ブック」、2003にはありません。
 「参照範囲」に「=OFFSET($A$2,0,0,COUNTA($A:$A)-1,1)」
 「OK」
  [入力規則]の[リスト]の設定です。
 シート「入力」のリストを設定する列またはセルを選択
 [データ]-[入力規則]
 [設定]の[入力値の種類]で[リスト]を選択
 [元の値] に「=部署」と入力。何も入れずにF3を押すと名前定義の一覧から選択できます。
 「OK」
 以上で完成です。
 シート「リスト」で、部署を追加・削除したものが、シート「入力」の[入力規則]に自動的に反映します。
 説明が必要な部分は、 =OFFSET($A$2,0,0,COUNTA($A:$A)-1,1) だけだと思います。
 まず、OFFSETは、 OFFSET(基準, 行数, 列数, 高さ, 幅) です。
  基準 のセルから指定の 行数 列数 だけシフトした位置にある、 高さ のセル範囲を返す関数です。
 また、 COUNTA は指定範囲の、 空白でないセルの個数 を返します。
 -1は、この例では1行目がタイトルになっているので、この行数を引いています。
 結果として、シート「リスト」のA2以降に入力されている範囲となります。

入力規則のリストを、2段階の絞り込みで作成1

一覧リストを使用して、「入力規則」の「リスト」を作成し、「リスト」の選択結果により、となりの「リスト」の内容を自動で変化させます、
 さらに、一覧リストへの追加・削除に自動対応させるものです。
  入力規則のリストを、追加・削除に自動対応で作成
 一覧リストを使用して、「入力規則」の「リスト」を作成し、さらに、一覧リストへの追加・削除に自動対応させるものです。シート「リスト」の部署を使用して、シート「入力」に入力規則のリストを範囲可変で作成します。名前を定義します。
 を理解した上でお読みください。
 リストの縦横を入れ替えたパターンは、
 「 入力規則のリストを、2段階の絞り込みで作成2
 一覧リストを使用して、「入力規則」の「リスト」を作成し、「リスト」の選択結果により、となりの「リスト」の内容を自動で変化させます、「入 力規則のリストを、2段階の絞り込みで作成1」こちらのリストの縦横を入れ替えたパターンになります。入力規則のリストを、追加・削除に自動対応で作成一 覧リストを使用して、「入力規則」の「リスト」を作成し、
 シート「リスト」の部署を使用して、シート「入力」に部署のリストを作成します。
 さらに、氏名のリストを、部署のリストに連動させます。つまり、選択した部署により、その部署の氏名にリストが自動連動します。
 
  部署の名前を定義します。
 シート「リスト」を選択します。
 Ctrl+F3で名前定義を起動する。メニュー等からの起動はバージョン毎に違います。
 「名前」に「部署」と入力。
 2007以降の場合、範囲は「ブック」、2003にはありません。
 「参照範囲」に「=OFFSET($A$1,0,0,1,COUNTA($1:$1))」
 「OK」
  氏名の名前を定義します。
 シート「入力」のセルB2を選択します。選択セルが違うと正しく設定できません。
 Ctrl+F3で名前定義を起動する。メニュー等からの起動はバージョン毎に違います。
 「名前」に「氏名」と入力。
 2007以降の場合、範囲は「ブック」、2003にはありません。
 「参照範囲」に「=OFFSET(リスト!$A$2,0,MATCH(!$A2,部署,0)-1,COUNTA(OFFSET(リスト!$A:$A,0,MATCH(!$A2,部署,0)-1))-1,1)」
 「OK」
  部署の[入力規則]の[リスト]の設定です。
 シート「入力」のA列を選択
 [データ]-[入力規則]
 [設定]の[入力値の種類]で[リスト]を選択
 [元の値] に「部署」と入力。F3を押すと名前定義の一覧から選択できます。
 「OK」
  氏名の[入力規則]の[リスト]の設定です。
 シート「入力」のB列を選択
 [データ]-[入力規則]
 [設定]の[入力値の種類]で[リスト]を選択
 [元の値] に「氏名」と入力。F3を押すと名前定義の一覧から選択できます。
 「OK」
 最初はエラーが表示される場合がありますが、「OK」を押して下さい。
 以上で完成です。
 A2の部署を入力選択すると、B2のリストにはその部署の氏名だけが表示されます。
 また、シート「リスト」の部署や氏名を追加・削除してものが、[入力規則]に自動的に反映します。
 説明が必要な部分は、
  =OFFSET(リスト!$A$2,0,MATCH(!$A2,部署,0)-1,COUNTA(OFFSET(リスト!$A:$A,0,MATCH(!$A2,部署,0)-1))-1,1) だけだと思います。
 まず、OFFSETは、 OFFSET(基準, 行数, 列数, 高さ, 幅) です。
  基準 のセルから指定の 行数 列数 だけシフトした位置にある、 高さ のセル範囲を返す関数です。
 また、MATCHは、 MATCH(検査値, 検査範囲, 照合の型) です。
  検査値 検査範囲 の中で何番目にあるかを返す関数です。
 結局、A列の値を、部署のリストの何番目かを探し、その列数分ずれた氏名のリストを使用している事になります。
 さらに、 MATCH(!$A2 ,の ! は間違いではありません、これが無いと正しく出来ません。
 あえて指定するなら、入力!となりますが、汎用性を持たせ他のシートでも使えるようにしています。
 

入力規則のリストを、2段階の絞り込みで作成2

一覧リストを使用して、「入力規則」の「リスト」を作成し、「リスト」の選択結果により、となりの「リスト」の内容を自動で変化させます、
 「 入力規則のリストを、2段階の絞り込みで作成1
 一覧リストを使用して、「入力規則」の「リスト」を作成し、「リスト」の選択結果により、となりの「リスト」の内容を自動で変化させます、さら に、一覧リストへの追加・削除に自動対応させるものです。入力規則のリストを、追加・削除に自動対応で作成 を理解した上でお読みください。
 こちらのリストの縦横を入れ替えたパターンになります。
  入力規則のリストを、追加・削除に自動対応で作成
 一覧リストを使用して、「入力規則」の「リスト」を作成し、さらに、一覧リストへの追加・削除に自動対応させるものです。シート「リスト」の部署を使用して、シート「入力」に入力規則のリストを範囲可変で作成します。名前を定義します。
 を理解した上でお読みください。
 シート「リスト」の部署を使用して、シート「入力」に部署のリストを作成します。
 さらに、氏名のリストを、部署のリストに連動させます、つまり、選択した部署により、その部署の氏名にリストが自動連動します。
 
  部署の名前を定義します。
 シート「リスト」を選択します。
 Ctrl+F3で名前定義を起動する。メニュー等からの起動はバージョン毎に違います。
 「名前」に「部署」と入力。
 2007以降の場合、範囲は「ブック」、2003にはありません。
 「参照範囲」に「=OFFSET($A$1,0,0,COUNTA($A:$A),1)」
 「OK」
  氏名の名前を定義します。
 シート「入力」のセルB2を選択します。選択セルが違うと正しく設定できません。
 Ctrl+F3で名前定義を起動する。メニュー等からの起動はバージョン毎に違います。
 「名前」に「氏名」と入力。
 2007以降の場合、範囲は「ブック」、2003にはありません。
 「参照範囲」に「=OFFSET(リスト!$B$1,MATCH(!$A2,部署,0)-1,0,1,COUNTA(OFFSET(リスト!$1:$1,MATCH(!$A2,部署,0)-1,0))-1)」
 「OK」
  部署の[入力規則]の[リスト]の設定です
 シート「入力」のA列を選択
 [データ]-[入力規則]
 [設定]の[入力値の種類]で[リスト]を選択
 [元の値] に「部署」と入力。F3を押すと名前定義の一覧から選択できます。
 「OK」
  氏名の[入力規則]の[リスト]の設定です。
 シート「入力」のB列を選択
 [データ]-[入力規則]
 [設定]の[入力値の種類]で[リスト]を選択
 [元の値] に「氏名」と入力。F3を押すと名前定義の一覧から選択できます。
 「OK」
 以上で完成です。
 A2の部署を入力選択すると、B2のリストにはその部署の氏名だけが表示されます。
 また、シート「リスト」の部署や氏名を追加・削除してものが、[入力規則]に自動的に反映します。
 説明が必要な部分は、 =OFFSET(リスト!$B$1,MATCH(!$A2,部署,0)-1,0,1,COUNTA(OFFSET(リスト!$1:$1,MATCH(!$A2,部署,0)-1,0))-1) だけだと思います。
 まず、OFFSETは、 OFFSET(基準, 行数, 列数, 高さ, 幅) です。
  基準 のセルから指定の 行数 列数 だけシフトした位置にある、 高さ のセル範囲を返す関数です。
 また、MATCHは、 MATCH(検査値, 検査範囲, 照合の型) です。
  検査値 検査範囲 の中で何番目にあるかを返す関数です。
 結局、A列の値を、部署のリストの何番目かを探し、その列数分ずれた氏名のリストを使用している事になります。
 さらに、 MATCH(!$A2 ,の ! は間違いではありません、これが無いと正しく出来ません。
 あえて指定するなら、入力!となりますが、汎用性を持たせ他のシートでも使えるようにしています。

ピポットテーブルの参照範囲を、追加・削除に自動対応で作成

ピボットテーブルの参照範囲を可変に設定し、データの追加・削除に自動で対応させます。
 以下の表で説明します。
A B C
1 番号 点数 金額
2 2 12 200
3 2 13 300
4 3 21 250
5 4 24 350
6 5 28 280
7 6 20 160
8 7 6 180
9 5 16 290

  名前を定義します。
 シート「リスト」を選択します。
 Ctrl+F3で名前定義を起動する。メニュー等からの起動はバージョン毎に違います。
 「名前」に「データ1」と入力。
 2007以降の場合、範囲は「ブック」、2003にはありません。
 「参照範囲」に「=$A$1:INDEX($C:$C,COUNTA($A:$A))」または、「=OFFSET($A$1,0,0,COUNTA($A:$A),3)」、どちらでも良い。
 「OK」
  ピボットテーブルの設定です。
 ピボットテーブルを起動する。
 テーブル/範囲に「データ1」を入力。F3を押すと名前定義の一覧から選択できます。
 他の設定はご自由にどうぞ
 以上で完成です。
 データの追加・削除に自動的に対応されます。もちろん、ピボットテーブルの「更新」は必要です。もし、「更新」も自動にしたい場合は、マクロを作成します。ここの下部で簡単に説明しています。
 説明が必要な部分は、
  =$A$1:INDEX($C:$C,COUNTA($A:$A)=OFFSET($A$1,0,0,COUNTA($A:$A),3)
 だけだと思います。
 まず、INDEXは、 INDEX(配列,行番号,列番号) です。
  配列 の中の 行番号 列番号 で指定される要素を返します、配列が列指定なので、列番号は省略しています。また、 COUNTA は指定範囲の、 空白でないセルの個数 を返します。つまり、A1からC列の入力されているセルの最終セルの範囲を指定しています。
 さらに、OFFSETは、 OFFSET(基準, 行数, 列数, 高さ, 幅) です。
  基準 のセルから指定の 行数 列数 だけシフトした位置にある、 高さ のセル範囲を返す関数です。つまり、A1から3列データ行数の範囲になります。
  マクロで「更新」を自動化
 データのあるワークシートのシートモジュールに以下を作成します。
Private Sub Worksheet_Change(ByVal Target As Range)<BR> Application.EnableEvents = False<BR> Worksheets(ピボットテーブルのあるシート名).PivotTables(ピボットテーブル 名).PivotCache.Refresh<BR> Application.EnableEvents = True<BR>End Sub
EnableEvents = Falseを忘れると、イベントが連鎖してしまいます。
 これで、データを変更すると直ちにピボットテーブルも更新されます。

関数を使って行列を入れ替える方法

行列を入れ替える方法として、一般には、「形式を選択して貼り付け」ですが、これでは、元のデータを更新しても入れ替え先にデータ反映されません。
 そこで、関数を使って行列を入れ替えることにより、直接データが反映するようにします。
 以下の表で説明します。シート「店部」のデータをシート「部店」に行列を入れ替えて反映させます。
 
  方法1、TRANSPOSE関数を配列で使用する。
 シート「部店」の「B2:E6」を選択する。
 「=TRANSPOSE(店部!B2:F5)」を入力
 Ctrl+Shift+Enter
 以上で完成です。TRANSPOSE関数は配列の行列を入れ替えた配列を返す関数です。また、 Ctrl+Shift+Enter 配列数式 の入力になります。
 ここでの問題点は、手順の1.です。正確に、行列を入れ替え後の範囲を選択する必要があります。
  方法2、INDEX、CELL、COLUMN、ROW関数の組み合わせる。
 シート「部店」の「B2」を選択する。
 「=INDEX(店部!$B$2:$F$5,COLUMN()-CELL("col",部店!$B$2)+1,ROW()-CELL("row",部店!$B$2)+1)」を入力
 他のセルへ数式をコピー貼り付けする。
 以上で完成です。INDEXは、 INDEX(配列,行番号,列番号) です。 配列 の中の 行番号 列番号 で指定される要素を返します。そこで、CELL、、COLUMN、ROW関数を使い、シート「部店」内の位置情報の行列を入れ替えて、シート「店部」よりデータを取得しています。CELL、、COLUMN、ROW関数に関しては、ヘルプを参照して下さい。
 どちらの方法でもよいのですが、方法1では配列を使用していますので、行、列の追加・削除時に操作が不便になります。
 従って、行列の数が不変なら方法1、行列の数が頻繁に変化するなら方法2が良いでしょう。

複数条件で検索し、複数データを取得する方法

各種条件でデータを絞る場合は、オートフィルタが一般的に使用されますが、元のデータがあるシートで作業する為、間違ってデータを消してしまったり、使用する上で制約があります。
 また、VLOOKUPでは、単一条件のみであり、しかも1件しか取得できません。
 DGETでも1件しか扱えません。
 これらの問題を解決する為の方法です。
  IF関数ISERROR関数COUNTIF関数ROW関数SMALL関数MATCH関数INDEX関数
 これらの関数を配列関数として組み込みます。
 以下の表で説明します。
 
  シート「データ」のデータを、シート「検索」2行目の指定条件で取得し、5行目以降に表示します。
  「姓」「名」は完全一致、住所は部分一致で検索 します。
  シート「データ」に作業列を作成
 セルD2を選択
  =IF(検索!$A$2<>"",IF($A2=検索!$A$2,1,0),1)*IF(検索!$B$2<& gt;"",IF($B2=検索!$B$2,1,0),1)*IF(検索!$C$2<>"",IF(ISERROR(FIND(検 索!$C$2,$C9)),0,1))
 D3以降に、D2の数式をコピーする。
 IF(ISERROR(FIND(検索!$C$2,$C9)),0,1)は、,IF(COUNTIF(C2,"*" &検索!$C$2 & "*")>0,1,0))でも良い。
 IF(検索!$A$2<>"",…で、条件が指定されている項目のみ条件対象としています。また、住所は部分一致で検索する為、FINDまたはCOUNTIFを使用します。
 これで、検索対象は「1」、対象外は「0」となります。各関数の使用方法は、ヘルプを参照して下さい。
  シート「検索」に数式を設定
 セルA5を選択
  {=IF(COUNTIF(データ!$D$2:$D$10,1)<ROW(データ!$A1),"",INDEX(デー タ!$A$2:$C$10,SMALL(IF(データ!$D$2:$D$10=1,ROW(データ!$A$2:$A$10)-1),ROW(デー タ!$A1)),MATCH(A$4,データ!$A$1:$C$1,0)))} {}を入力し、Ctrl+Shift+Enter。配列数式の
 A5の数式をB5,C5にコピーする。
 A5:C5の数式を6行目以降に、必要行数までコピーする。
 以上で完成です。
 シート「検索」のA2:C2に入力した条件で、5行目以降に複数データが表示されます。
 まず、IF(COUNTIF(データ!$D$2:$D$10,1)<ROW(データ!$A1),"",…で、取得件数以上の行は空白にしています。
 INDEXは、 INDEX(配列,行番号,列番号) で、 配列 の中の 行番号 列番号 で指定される要素を返します。
  配列 =データ!$A$2:$C$10 行番号 =SMALL(IF(データ!$D$2:$D$10=1,ROW(データ!$A$2:$A$10)-1),ROW(データ!$A1)) 列番号 =MATCH(A$4,データ!$A$1:$C$1,0)
  配列 は、シート「データ」のデータ範囲です。
  行番号 は、 SMALL(範囲,順位) で、範囲のなかで指定の順位に小さい値を返します。また、ROW(データ!$A1)は5行目なら1、6行目はA2になるので2となります。つま り、シート「データ」のD列が1の中から、1番目、2番目と、順にデータを取得しています。さらに、IF(データ!$D$2:$D$10=1,…の部分が 配列を使用していますので、配列数式として入力します。
  列番号 は、 MATCH(検査値, 検査範囲, 照合の型) で、 検査値 検査範囲 の中で何番目にあるかを返す関数です。シート「検索」の4行目の項目名でシート「データ」の項目名の位置を探し、その列のデータを取得するようにしています。
 単一条件なら、作業列がなくてもできますが、複数条件の場合は、作業列を使用することで、変更しやすくなります。
 また、作業列をさらに増やしたりすれば、シート「検索」の数式ももっと簡単にすることができます。
 ここでは、いろいろなテクニックの紹介ということで、現実的で、極端に難しくない程度の数式になるようにしています。
 ここで使用したエクセルの サンプル です。
 はっきり言って、結構面倒です。
 オートフィルタで済むならそれに越したことはありません。
 また、マクロを使用すれば、さらに細かい指定も可能ですし、保守性も良いと思います。
 ただ、関数を組み合わせることで、こんなこともできるという例とお考えください。

関数で銀行型丸め(最近接偶数への丸め)を行う方法

エクセルの関数で、ROUNDは四捨五入です。
 しかし、VBAでのRoundは、銀行型丸め(最近接偶数への丸め)で、Accessも銀行型丸めとなっています。
 四捨五入では、どうしても大きくなる傾向があるようです。
 そこで、関数で銀行型丸めをする場合についての説明です。
  上記のように、四捨五入と、銀行型丸めでは、.5のときに違いが発生します。
 銀行型丸めでは、.5の時は偶数に丸めます。
 計算式です。
  B2=ROUND(A1,0)C2=IF(MOD(ABS(A2),1)=0.5,EVEN(ABS(A2)-0.5)/SIGN(A2),ROUND(A2,0))
 MODは、剰余を返す関数。EVENは、最も近い偶数に切り上げる関数。ABSは、絶対値を返す関数。SIGNは、数値の符号を返す関数。
 上記では、整数で丸めています。
 小数以下で丸める場合も多いと思いますので、その場合の数式を以下に示しておきます。
  C2=IF(MOD(ABS(A2)*10^桁数,1)=0.5,EVEN(ABS(A2)*10^桁数-0.5)/10^桁数*SIGN(A2),ROUND(A2,桁数))
 桁数は、小数第2に丸める場合は、「2」を指定します。

関数で他シートへ並べ替える方法(サンプル:ABC分析)

通常、並べ替えは元データが変更されれば、毎回、並べ替えを行う必要がありますが、 これが、結構面倒な場合もあります。
 出来れば、マクロを組みたいところですが、マクロはちょっとと言う人もいるでしょう。そこで、関数で他シートへ並べ替える方法です。 
 ここでは、構成比で並べ替えて、ABC分析を作成します。
 以下の表で説明します。
 
 
  シート「元データ」を金額>点数で並べ替え、シート「並び替え」に表示し、ABCランクをつけています。
 シート「並び替え」の黄色セルは変更が可能です。
「点数」「金額」の順にすれば、点数> 金額で並び、点数でのABC分析となります。
 行数や、見出しは、極力可変対応していますが、一部可変対応しきれていない部分もあるかもしれません。
 行挿入した場合、適時数式のコピーと同時に範囲等の確認をして下さい。
 「金額」「点数」の並び順を指定可能としている為、数式がかなり複雑になっています。
 また、サンプルとして、多彩な関数をわざと使用している部分もありますので、数式が理解出来たら、より簡単な数式への変更に挑戦してみて下さい。
 ソートキーが1つで固定なら、結構簡単にできるはずです。
 全ての数式を説明するのは、かなり大変ですので、要所の数式のみ解説します。
  シート「ワーク」
  A2=IF(元データ!$A2<>"",RANK(OFFSET(元データ!$A$1,0,MATCH(A$1,元デー タ!$A$1:$D$1,0)-1,ROW(),1),OFFSET(元データ!$A$2,0,MATCH(A$1,元デー タ!$A$1:$D$1,0)-1,COUNTA(元データ!A:A)-1,1),0),0)
  OFFSET(基準, 行数, 列数, 高さ, 幅) 基準 のセルから指定の 行数 列数 だけシフトした位置にある、 高さ のセル範囲を返す関数です。 MATCH(検査値, 検査範囲, 照合の型) 検査値 検査範囲 の中で何番目にあるかを返す関数です。
 MATCH(A$1,元データ!$A$1:$D$1,0)で、見出しの「金額」が「元データ」のどの位置にあるか検索しています。 COUNTA(元データ!A:A)-1で、データ行数を求めています。これらを基に、OFFSETにて、「金額」データの範囲を決定し、RANK関数でラ ンク付けしています。
  シート「並び替え」
  B2=IF(ISERROR(MATCH($A2,ワーク!$E$2:$E$21,0)),"",INDEX(元データ!$A$2:$D$21,MATCH($A2,ワーク!$E$2:$E$21,0),MATCH(B$1,元データ!$A$1:$D$1,0)))
 MATCH($A2,ワーク!$E$2:$E$21,0)で、A列の順位をシート「ワーク」の順位より検索しています。MATCH(B$1,元 データ!$A$1:$D$1,0)で、見出しの「金額」が「元データ」のどの位置にあるか検索しています。これらを基に、「元データ」より指定の順位の データを取得しています。
 エクセルの サンプル (ダウンロード可能)です。
 かなり多くの関数を使っていて、複雑に感じるかもしれませんが、一度理解してしまえば結構単純です。
 また、数式が多いので、どこかに間違い等があるかもしれません。
 使いたいが、上手く使えない等があれば問い合わせに応じます。
 ただ、いずれにしても拡張性や保守性を考えると、結構ぎりぎりな気もします。
 できれば、マクロを作成し、ボタン一発で処理するようにした方が望ましいと思います。

VLOOKUPを他の関数でやる方法

VLOOKUPは便利な関数ですが、以下のような問題点がある場合は、これを使うことができません
  問題点1.検索列より左側の列を取り出す場合2.検索値が255文字を超える時
 そこで、他の関数で、これを実現する方法を検討します。
  方法1=INDEX(範囲,MATCH(検索値,検索範囲,0),列番号)
  方法2{=IF(MIN(IF(検索範囲=検索値,ROW(検索範囲)-1))=0,"検索値なし",INDEX(範囲,MIN(IF(検索範囲=検索値,ROW(検索範囲)-1)),列番号))}{} は配列数式です。 Ctrl+Shift+Enter で入力します。
 以下の表で検証します。
  A2、A5、D2には、256文字以上が入力されています
  E2=VLOOKUP(D2,$A$2:$B$7,2,FALSE)
  F2=INDEX($A$2:$B$7,MATCH(D2,$A$2:$A$7,0),2)
  G2=IF(MIN(IF($A$2:$A$7=D2,ROW($A$2:$A$7)-1))=0,"検索値なし",INDEX($A$2:$B$7,MIN(IF($A$2:$A$7=D2,ROW($A$2:$A$7)-1)),2))Ctrl+Shit+Enter で、 {} 配列数式 での入力になります
 この結果が上図になります。しかし、それぞれに長短があります。
  方法1 範囲と検索範囲が別々に指定できるので、問題点1.は解決します。しかし、問題点2.は、依然として解決されていません。
  方法2 範囲と検索範囲が別々に指定できるので、問題点1.は解決します。問題点2.もIFの配列を使う事で解決しています。
 ただし、式がかなり複雑です。外側のIFで、存在確認をせずに、 {=INDEX($A$2:$B$7,MIN(IF($A$2:$A$7=D2,ROW($A$2:$A$7)-1)),2)}としてしまうと、検索値が 無い場合には、先頭行が返されてしまいます。また、完全一致以外の検索方法が指定できません。
 問題点1のみなら方法1、問題点2なら方法2を使えば良いでしょう。
 

誕生日一覧から、指定誕生月の人を全員取り出す

配列数式を使って、誕生日が指定月の該当者全員を取り出します。
 各種条件でデータを絞る場合は、オートフィルタが一般的に使用されますが、日付の中の、月だけの指定になると、お手上げです。(出来ない事はありませんが、かなり面倒です。)
 以下では、配列数式を使って、誕生日が指定月の該当者全員を取り出します。
 「 複数条件で検索し、複数データを取得する方法
 各種条件でデータを絞る場合は、オートフィルタが一般的に使用されますが、元のデータがあるシートで作業する為、間違ってデータを消してしまったり、使用する上で制約があります。また、VLOOKUPでは、単一条件のみであり、しかも1件しか取得できません。
 の応用編です。
 以下の表で説明します。
  セルD2に、対象月を数値で指定します。
  数式の設定方法です。
 セルD4を選択
  {
 =IF(ISERROR(SMALL(IF(MONTH($B$2:$B$11)
 =$D$2,ROW($A$1:$A$10)),ROW($A1))),"",INDEX($A$2:$A$11,SMALL(IF(MONTH($B$2:$B$11)
 =$D$2,ROW($A$1:$A$10)),ROW($A1))))
 }
{}を除いた部分を入力し、Ctrl+Shift+Enter。{}が付加され配列数式になります。
 D4の数式を5行目以降に、必要行数までコピーする。
 以上で完成です。
 INDEXは、 INDEX(配列,行番号,列番号) で、 配列 の中の 行番号 列番号 で指定される要素を返します。
  配列 =データ!$A$2:$A$11 行番号 =SMALL(IF(MONTH($B$2:$B$11)=$D$2,ROW($A$1:$A$10))) 列番号 は1列なので省略しています。
  行番号 は、 SMALL(範囲,順位) で、範囲のなかで指定の順位に小さい値を返します。また、ROW(データ!$A1)は2行目なら1、3行目はA2になるので2となります。つま り、B列の月が一致する中から、1番目、2番目と、順にデータを取得しています。さらに、IF(MONTH($B$2:$B$11)=$D$2…の部分が 配列を使用していますので、配列数式として入力します。
 前半の、IF(ISERROR(SMALL(IF(MONTH($B$2:$B$11)=$D$2,ROW($A$1:$A$10)),ROW($A1))), "" ,…は、該当件数以上の場合は、""にする為のIF文です。COUNTIFにMONTHを組みこめなかったので、このようにしています。
 ここで使用したエクセルの サンプル です。
 はっきり言って、結構面倒です。
 作業列を作成すれば、ずっと簡単な数式になりますし、理解しやすくなります。
 ただ、関数を組み合わせることで、こんなこともできるという例とお考えください。

徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)

検索されるキーワードで最も多いのが、
  MATCH関数
 セルの範囲内で指定された項目を検索し、その項目の相対的な位置を返します。セル範囲は、縦方向・横方向のどちらでも指定可能です。MATCH 関数の書式 MATCH(検査値,検査範囲,照合の型) 検査値 値(数値、文字列、または論理値)、またはこれらの値に対するセル参照を指定できます。
  INDEX関数
 セル範囲から、指定された行と列が交差する位置にあるセルの参照を返します。INDEX関数の書式 INDEX(範囲,行番号[,列番号]) 範囲 セル範囲を指定します。セル範囲が1行または1列である場合、行番号または列番号はそれぞれ省略することができます。
  OFFSET関数
 基準のセルまたはセル範囲から指定された行数と列数だけシフトした位置にある、指定の高さと幅のセル範囲の参照を返します。つまり、基準セルか ら、指定数だけ移動したセルを起点として、指定の大きさのセル範囲を取得出来ます。書式 OFFSET(基準,行数,列数,[高さ],[幅]) 基準 基準となるセル範囲の参照を指定します。
  VLOOKUP関数
 検索値で、セル範囲の最初の列を検索し、その範囲の同じ行にある任意のセルから値を返します。Vは縦方向(vertical)の意味です。つま り縦方向の表に対して使用します。VLOOKUP関数の書式 =VLOOKUP(検索値,範囲,列番号,検索方法) 検索値 表または範囲の左端の列で検索する値を指定します。
 この4つの関数ですそこで、これらの関数を徹底解説します。
 まず、以下の表で説明します。
  D2の検索値で、A列を検索し、一致した行のB列を取り出します。
 この場合は、VLOOKUPを使用する事が通常です。
 VLOOKUPが使用出来ないような場合に、他の関数を使って同様の機能を実現する必要が出てきます。
 その時の基本として、VLOOKUPを他の関数で実現する、さまざまな方法を紹介します。
 まずは、 基本のVLOOKUP関数 の説明をした後で、
  INDEXとMATCHの組み合わせ
  OFFSETとMATCHの組み合わせ
 順に説明します。
  VLOOKUP関数
  =VLOOKUP($D$2,$A$2:$B$7,2,FALSE) VLOOKUP関数は、
 指定された範囲の 1 列目で特定の値を検索し、その範囲内の別の列の同じ行にある値を返します。
  VLOOKUP(検索値,範囲,列番号,検索の型)
  検索値 範囲の左端の列で検索する値を指定します。検索値には、値またはセル参照を指定します。
  範囲 セル範囲を指定します。範囲の左端の列の値が、検索値で検索される値です。
  列番号 範囲内で目的のデータが入力されている列を、左端からの列数で指定します。
  検索の型 TRUEまたは 省略すると、検索値未満の最大値 が使用されます。昇順に並べ替えておく必要があります。 FALSEを指定すると、検索値と完全に一致する値 だけが検索されます。検索値と一致する値が見つからない場合は、#N/Aエラー値が返されます。
 上の数式は、
 検索値"B02"(D2の値)で、
 範囲(A2~B7)の左端の列(A列)を検索し、一致した行の、2列目のデータを取得しています。
 つまり、
  "B02"(D2)で、A列を探し、一致した5行目(A5)の、2列目(B5)を取得しています。
  INDEX関数とMATCH関数の組み合わせ
  =INDEX($A$2:$B$7,MATCH($D$2,$A$2:$A$7,0),2)
 MATCH関数は、
 指定された照合の型に従って検査範囲内を検索し、検査値と一致する要素の、配列内での相対的な位置を表す数値を返します。
  MATCH(検査値,検査範囲,照合の型)
  検査値 表の中で必要な項目を検索するために使用する値を指定します。
  検査範囲 検査する隣接したセル範囲を指定します。
  検索の型 -1、0、1 の数値のいずれかを指定します。 1 を指定すると、 検査値以下の最大の値 が検索されます。 0 を指定すると、 検査値に一致する値 のみが検索の対象となります。 -1 を指定すると、 検査値以上の最小の値 が検索されます。 省略すると1 を指定したものと見なされます。
 上の数式は、
 検索値"B02"(D2の値)で、範囲(A2~A7)を検査し、一致した行の、A2からの位置(A2が1、A3が2)である4が返されます。
 つまり、
  "B02"(D2)で、A列を探し、一致した5行目(A5)の、A2からの位置である4を返します。
 この 4 を使用して、以下のINDEX関数で値を取得します。
  INDEX関数は、
 行番号と列番号で指定されるテーブルまたは配列の要素の値を返します。
  INDEX(配列,行番号,列番号)
  配列 セル範囲または配列定数を指定します。配列が1行または1列のみの場合、それぞれ行番号または列番号を省略することができます。
  行番号 配列の中にあり、値を返す行を数値で指定します。行番号を省略した場合は、必ず列番号を指定する必要があります。
  列番号 配列の中にあり、値を返す列を数値で指定します。列番号を省略した場合は、必ず行番号を指定する必要があります。
 上の数式は、
 範囲(A2~A7)の、4(MATCHの結果)番目の行、2番目の列、セルB5の値が取得されます。
 つまり、
  A2~A7の範囲で、上から4番目、左から2番目のセル(B5)を取得します。
  OFFSET関数とMATCH関数の組み合わせ
  =OFFSET($A$2,MATCH($D$2,$A$2:$A$7,0)-1,1,1,1)
 MATCH関数は、INDEXとMATCHの組み合わせと同じです。
  OFFSET関数は、
 基準のセルまたはセル範囲から指定された行数と列数だけシフトした位置にある高さと幅のセルまたはセル範囲の参照 (オフセット参照) を返します。
  OFFSET(基準,行数,列数,高さ,幅)
  基準 基準となるセル範囲の参照を指定します。
  行数 基準の左上隅のセルを上方向または下方向へシフトする距離を行数単位で指定します。
  列数 基準の左上隅のセルを左方向または右方向へシフトする距離を列数単位で指定します。
  高さ オフセット参照の行数を指定します。高さは正の数である必要があります。
  オフセット参照の列数を指定します。幅は正の数である必要があります。
 上の数式は、
 基準(A2)から、3(MATCHの結果4-1)下方向へシフトし、1右にシフトした、B5の値が取得されます。
 つまり、
  A2から、下に3、右に1ずれた、B5を取得します。
 ここでは、 高さ1、幅1を指定 していますので、 1つのセル が取得されています。
 OFFSETの使い方としては特殊な使い方になっています。
  通常は、高さ、幅を指定して、セル範囲を返す関数として使用します。
 ただし、OFFSET関数は、単独で使う事はほとんど無いでしょう、
 他の関数との組み合わせで力を発揮する関数です。
 VLOOKUPと同様の事を他の関数で実現する方法としては、
 上記以外では、配列を使用した方法もあります。
 配列による方法は、「 VLOOKUPを他の関数でやる方法 」をご覧下さい。
 VLOOKUPは便利な関数ですが、以下のような問題点がある場合は、これを使うことができません 問題点 1.検索列より左側の列を取り出す場合 2.検索値が255文字を超える時 そこで、他の関数で、これを実現する方法を検討します。方法1 =INDEX(範囲,MATCH(検索値,検索範囲,0),列番号) 方法2 {=IF(MIN(IF(検索範囲=検索値,
  MATCH関数INDEX関数OFFSET関数
 この3つの関数が自在に使いこなせれば、作成するエクセルの幅がぐっと広がります。
 特に、 OFFSET関数とCOUNTA関数を組み合わせ 、検査するセル範囲を可変にすることで、
 さらに次の次元のエクセルへと進む事が出来ます。
 OFFSET関数とCOUNTA関数の組み合わせは、
  セルの参照範囲を可変にする(OFFSET、COUNTA、MATCH )
 数式の参照範囲を可変対応させます、つまり、入力データにより自動で拡張・縮小されるように関数を設定します。エクセルの表には、集計等の計算 式を入れますが、その集計範囲は固定になっているため、データの追加時には、計算範囲外になってしまったりするので注意が必要になります。

セルの参照範囲を可変にする(OFFSET,COUNTA,MATCH)

数式の参照範囲を可変対応させます、つまり、入力データにより自動で拡張・縮小されるように関数を設定します。エクセルの表には、集計等の計算 式を入れますが、その集計範囲は固定になっているため、データの追加時には、計算範囲外になってしまったりするので注意が必要になります。
 数式が参照しているセル範囲の途中に、行挿入、列挿入した場合は、計算式の参照範囲は自動で拡張されますが、数式が参照しているセル範囲の直ぐ 下にデータを追加した場合は、セルの参照範囲は広がってくれません。これは非常に都合が悪いです。入っている数式を意識しなければ、データの追加もままな らないという事になってしまいます。
 そこで、数式のセル参照範囲を可変にして、参照範囲を自動的に拡張・出苦笑されるようにしたくなります。セルの参照範囲を可変にする為に使用する関数は、
  OFFSET関数
 基準のセルまたはセル範囲から指定された行数と列数だけシフトした位置にある、指定の高さと幅のセル範囲の参照を返します。つまり、基準セルか ら、指定数だけ移動したセルを起点として、指定の大きさのセル範囲を取得出来ます。書式 OFFSET(基準,行数,列数,[高さ],[幅]) 基準 基準となるセル範囲の参照を指定します。
  COUNTA関数
 セル範囲に含まれる、空白ではないセルの個数を数えます。引数には、セル参照、またはセル範囲が指定できます。書式 COUNTA(値1[,値2,…]) ※[]で囲まれている部分は省略可能です。エラー値や空の文字列("")を含め、すべての種類のデータを含むセルが計算の対象となります。
  MATCH関数
 セルの範囲内で指定された項目を検索し、その項目の相対的な位置を返します。セル範囲は、縦方向・横方向のどちらでも指定可能です。MATCH 関数の書式 MATCH(検査値,検査範囲,照合の型) 検査値 値(数値、文字列、または論理値)、またはこれらの値に対するセル参照を指定できます。
 これらを組み合わせることで、セルの参照範囲を可変にする事ができます。以下の解説は、上記の関数についてある程度理解していることを前提にしていますのでねこれらの関数が良く分からない場合は、まずは上記のページをお読みください。また、
  徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)
 検索されるキーワードで最も多いのが、MATCH関数 INDEX関数セル範囲から、指定された行と列が交差する位置にあるセルの参照を返します。INDEX関数の書式INDEX(範囲,行番号[,列番号]) 範囲セル範囲を指定します。セル範囲が1行または1列である場合、行番号または列番号はそれぞれ省略することができます。
 こちらも参考にして下さい。

説明で使用するエクセル表


  E2には、全期間の売上合計E3、E4には、日付の、入力規則のリストを設定E5には、指定期間の売上合計
 これらを、12行目以降にデータを追加しても、自動で参照範囲が変更されるように設定します。
 まずは、使用する関数の簡単な説明からです。

OFFSET関数

基準のセルまたはセル範囲から指定された行数と列数だけシフトした位置にある高さと幅のセルまたはセル範囲の参照 (オフセット参照) を返します。
  OFFSET(基準,行数,列数,高さ,幅)
  基準
 基準となるセル範囲の参照を指定します。
  行数
 基準の左上隅のセルを上方向または下方向へシフトする距離を行数単位で指定します。
  列数
 基準の左上隅のセルを左方向または右方向へシフトする距離を列数単位で指定します。
  高さ
 オフセット参照の行数を指定します。高さは正の数である必要があります。
 
 オフセット参照の列数を指定します。幅は正の数である必要があります。

MATCH関数

指定された照合の型に従って検査範囲内を検索し、検査値と一致する要素の、配列内での相対的な位置を表す数値を返します。
  MATCH(検査値,検査範囲,照合の型)
  検査値
 表の中で必要な項目を検索するために使用する値を指定します。
  検査範囲
 検査する隣接したセル範囲を指定します。
  検索の型
 -1、0、1 の数値のいずれかを指定します。 1 を指定すると、 検査値以下の最大の値 が検索されます。 0 を指定すると、 検査値に一致する値 のみが検索の対象となります。 -1 を指定すると、 検査値以上の最小の値 が検索されます。 省略すると1 を指定したものと見なされます。

COUNTA関数

セル範囲に含まれる空白ではないセルの個数を返します。COUNTA 関数では、エラー値や空の文字列 ("") を含め、すべての種類のデータを含むセルが計算の対象となります。
  COUNTA(値1, [値2], ...)
  値1
 必須。計算対象として含める値を表す 1 つ目の引数。
  値2, ...
 省略可能。計算対象として含める値を表す追加の引数。引数は、最大 255 個まで指定できます。

セルの参照範囲を可変にする数式の解説

では、実際に 全合計(E3)開始日(E4)終了日(E5)期間合計(E5) それぞれの設定方法について、以下で順に説明します。。

全合計(E3)の数式

全合計なので単純に=SUM(B:B)これでもちろん良いのですが、今回セル範囲を可変にする方法の解説として、データ範囲だけをSUMするようにしてみました。
  =SUM(OFFSET($B$2,0,0,COUNTA($A:$A)-1,1))$B$2,0,0 B2から、下に0、右に0移動、つまり、B2になります。
  COUNTA($A:$A) A列にあるデータの個数です。1行目が見出しになっていますので、1引いています。 上の図では、11 になります。従って 11-1=10が、OFFSETの高さ になります。B列でもよいです。ここでは日付を基準にしているだけです。つまり、 B2から、高さ10、幅1のセル範囲になります。 つまり、 B2~B11になります。 結局は、 =SUM(B2:B11) となるわけです。
 COUNTAでデータの個数を取得し、セル範囲を決定していますので、データの追加・削除に自動で対応されるようになります。

開始日(E4)と終了日(E5)に名前定義とリストを設定

日付の範囲に名前定義を作成

「数式」タブの「名前定義」
 Ctrl+F3で名前定義を起動し、新規作成。
 「名前」に「 日付 」と入力。
 2007以降の場合、範囲は「ブック」、2003にはありません。
 「参照範囲」に「 =OFFSET($A$2,0,0,COUNTA($A:$A)-1,1)
 OK」
  =OFFSET($A$2,0,0,COUNTA($A:$A)-1,1)
 COUNTAでA列のデータの個数を取得し、A2からデータ個数分のセル範囲を決定しています。

E4とE5にリストを設定

入力規則を設定します。
 E4、E5セルを選択
 [データ]-[入力規則]
 [設定]の[入力値の種類]で[リスト]を選択
 [元の値] に「 日付 」と入力。 F3を押すと名前定義の一覧から選択できます。
 「OK」
 

期間合計(E5)の数式

=SUM(OFFSET(B2,MATCH(E3,日付,0)-1,0,MATCH(E4,日付,0)-MATCH(E3,日付,0)+1,1))
 少々長い数式ですね。この一番外側の OFFSET は、 B2のセルを、開始日までずらし、終了日までの高さのセル範囲を求めています。
 作成手順を詳しく見てみましょう。作る時は、以下のように順番に作成します。 =SUM(B4:B8)
 まずは、手作業で、SUM関数を入れてみます。このB4:B8を可変にすれば良いわけです。B4:B8のセル範囲は適当で良いです。この範囲を可変にするのですから。
 =SUM( B4:B8 ) =SUM( OFFSET(B2,2,0,5,1) )
  B4:B8をOFFSETに 置き換えます。引数は、とりあえず定数で入れてみます。計算結果を見て、正しいことを確認しておきます。
 =SUM(OFFSET(B2, 2 ,0,5,1)) =SUM(OFFSET(B2, MATCH(E3,A2:A11,0)-1 ,0,5,1))
 OFFSETの引数で開始位置である 2をMATCHに 置き換えます。つねに、計算結果を見て、正しいことを確認します。
 =SUM(OFFSET(B2,MATCH(E3,A2:A11,0)-1,0, 5 ,1)) =SUM(OFFSET(B2,MATCH(E3,A2:A11,0)-1,0, MATCH(E4,A2:A11,0)-MATCH(E3,A2:A11,0)+1 ,1))
 OFFSETの引数で開始位置である 5をMATCHに 置き換えます。 5=終了日の位置-終了日の位置+1
 =SUM(OFFSET(B2,MATCH(E3,A2: A11 ,0)-1,0,MATCH(E4,A2: A11 ,0)-MATCH(E3,A2: A11 ,0)+1,1)) =SUM(OFFSET(B2,MATCH(E3, 日付 ,0)-1,0,MATCH(E4, 日付 ,0)-MATCH(E3, 日付 ,0)+1,1))
  A2:A11 を、日付の可変範囲指定に変更します。日付の可変範囲の数式は、 OFFSET(A2,0,0,COUNTA(A:A)-1,1) ですが、これは、 日付の範囲に名前定義を作成 ここで、「 日付 」と名前定義してあります。つまり、 A2:A11 日付 に置き換えてやれば良いという事になります。
 これで期間合計(E5)の数式が完成です。
 上記説明では、数式を見やすくするために、絶対参照である$を省略しています。絶対参照は、最初から入れられれば良いですが、$をいれると、どうしても数式が見づらくなるので後回しにしても良いでしょう。数式が完成した後に、まとめて$を入れても良いでしょう。

短く易しい数式で

途中の数式では、長く複雑に感じる場合も出てきますが、関数のネスト(入れ子)が多いだけで、一つ一つの関数は難しいものではありません。エク セルを使う一人一人にとって必要な関数は、そんなに多くないはずです。必要なことは、その関数をいかに組み合わせるかにかかっています。整理して、順序よ く、考えれば、難しいく見える数式も作成できるようになります。
 ただし、難しく長い数式を作ったからと言って、決してそれがすごい事ではありません。本来は、難しい数式を作らなくても良いようにシートを工夫 するべきことです。同じことを行っているのなら、なるべく短く易しい数式の方が良いはずです。その為には、作業列を使って数式を細かい単位で完成させる等 の工夫をしてください。
  数式.作業セル、計算セル
 関数の引数に、さらに関数を入れ、関数をネスト(入れ子)にしますが、このネストが多くなると、数式が複雑になりすぎてしまい、他人が見たとき に数式の意味するところが分からなくなってしまいます。数式を書いた本人であっても、時が経つと解読が困難になる場合もあります。

グラフのデータ範囲を可変にする

データの範囲に合わせて、自動的にグラフのデータ範囲が変更されるようにします。
 グラフのデータ個数が増えるたびに、
 「データの選択」(2003は元データ)を変更するのは、いかにも面倒です。
 できれば、マクロでやりたいところですが、マクロはちょっという人用に解説します。
 一応、マクロも最後に載せています。
 以下の表で説明します。
  作成するグラフは、以下になります。
  グラフはなんでも結構です。
 ていっても限度がありますけど、上記の表なら折線か棒グラフくらいでしょう。
 まず、名前定義をします。シート「リスト」を選択します。
 データのあるシートを選択
 Ctrl+F3で名前定義を起動する。メニュー等からの起動はバージョン毎に違います。
 新規作成(追加)
 「名前」に「 グラフ軸」 と入力。
 「参照範囲」に「 =OFFSET($A$2,0,0,COUNTA($A:$A)-1,1)
 「OK」
 新規作成(追加)
 「名前」に「 グラフデータA」 と入力。
 「参照範囲」に「 =OFFSET($B$2,0,0,COUNTA($A:$A)-1,1)
 「OK」
 新規作成(追加)
 「名前」に「 グラフデータB」 と入力。
 「参照範囲」に「 =OFFSET($C$2,0,0,COUNTA($A:$A)-1,1)
 「OK」
 2007以降の場合は、「範囲」は、「ブック」にして下さい。
 では、グラフの設定です。
 2007以降は、「データの選択」
  ここで、「軸ラベル」の「編集」
  範囲に、「 ブック名!グラフ軸 」と入れます。
 ブック名は、拡張子も含めて正しく設定する必要があります。
 続いて、「系列」の「編集」
  これを、全ての系列に対して行います、ここでは2系列です。
 名前定義したデータ列と一致するように、注意してください。
 2003では、「元のデータ」
  上図のように設定して下さい。
 全ての系列に対して、行って下さい。
 以上で完成です。
 少し面倒ですが、一度設定してしまえば、データ個数に自動対応されますので、
 その後は保守が楽になります。
 しかし、この方法はいかにも面倒です。
 系列が増えるたびに、名前定義からやらなければなりません。
 やはり、できれば、マクロでやる事をお勧めします。
 以下に、そのコードを一例を示しておきます。
Sub test() Dim i As Long, F As String, lngMax As Long lngMax = Cells(Rows.Count, 1).End(xlUp).Row With ActiveSheet.ChartObjects(1).Chart For i = 1 To .SeriesCollection.Count .SeriesCollection(i).Formula = _ "=SERIES(" & _ Cells(1, i + 1).Address(External:=True) & "," & _ Cells(2, 1).Resize(lngMax - 1, 1).Address(External:=True) & "," & _ Cells(2, i + 1).Resize(lngMax - 1, 1).Address(External:=True) & "," & _ i & ")" Next i End WithEnd Sub
このマクロは、系列のデータが連続したセルにあることを前提にしています。 今回は、関数としての紹介なので、VBAの説明は省略します。
 しかし、このマクロを実行すれば、
 直ちにデータ範囲も変更されますし、系列が増えても、このマクロは変更が必要ありません。

セルの個数を数える関数

セルの個数を数える関数を解説します
  COUNT関数COUNTA関数COUNTBLANK関数COUNTIF関数
 になります。
 以下の表で説明します。
  COUNT関数 これは、数値のみカウントします。セルの書式や、先頭に「 ' 」等があっても数値ならカウントされます。
  COUNTA関数 空白ではないセルの個数をカウントします。空白に見えても、数式が入っている場合はカウントされます。
  COUNTBLANK関数 空白セルの個数をカウントします。COUNT関数の反対機能なのですが、なぜか、数式が入っていても、空白ならカウントされます。
  COUNTIF関数 条件に一致するセルの個数をカウントします。数値の場合は、">0"、">=0"のように、比較演算子を含めることが出来ます。さらに、ワイルドカード(「*」や「?」)が使えます。
  ワイルドカードについて
  ? (疑問符) 任意の 1 文字"a?"なら、"a1"、"ab"等、"a"の後ろに1文字のみの場合に対象となります。
  * (アスタリスク) "a*"なら、"a1"、"abc"等、"a"の後ろに何文字あっても対象となります。

【奥義】大量データでの高速VLOOKUP

大量データからのVLOOKUPを大量行に設定すると再計算がなかなか終わらなくなります…
 そんな経験したことがある人は、少なからずいると思います、
 そんな場合に、高速にVLOOKUPを実行する方法です。
 以下の表で説明します。
 
  Sheet1は、A列で昇順に並び変えておきます。 並べ替えては困る場合は、事前に順序番号を振っておき、後で並べ替えし直して下さい。
 Sheet2のA列で、Sheet1のA列を検索し、B列を、Sheet2のB列に取り出します。
 それぞれ20万件のデータを入れています。
 では、 Sheet2のB2セルの計算式
  =IF(INDEX(Sheet1!$A$2:$A$200001,MATCH($A2,Sheet1!$A$2:$A$200001,1),1)=$A2,VLOOKUP($A2,Sheet1!$A$2:$B$200001,2,TRUE),NA())
 少々長い計算式になっています。
  全体としてのロジックの流れ
 MATCHで近似値検索するMATCHの返り値を元に、INDEXで値を取得INDEXの帰り値が、本来の検索値と一致しているかの判定ここまでが存在確認になります一致している場合、VLOOKUPを近似値で実行一致していない場合、#NA
 以下で、個別の関数を分解して説明していきます。
  IF(存在確認,VLOOKUP実行,NA())
 一番外側のIF関数です。検索値の存在確認をしています。MATCHで近似値の行を取得し、その行の値をINDEXで取得します。その結果が、検索値と一致しているかを判定しています。NA()は、「#N/A」です。
  上記の存在確認
  INDEX(Sheet1!$A$2:$A$200001,MATCH($A2,Sheet1!$A$2:$A$200001,1),1)=$A2
 近似値検索のMATCH関数で探した行の値をINDEXで取得します。その結果が、本来の検索値と同一がを判定しています。
 近似値検索なので、同値がない場合でもMATCHが取得されてしまうので、完全一致しているかの判定になります。
 近似値検索は非常に高速に動作します。しかし、あくまで近似値検索なので、検索値がない場合の判定が必要になるということです。
  MATCH($A2,Sheet1!$A$2:$A$200001,1)
  第3引数が1がポイント です。近似値(以下)での検索をしています。この場合は、検索範囲が昇順に並んでいる必要があります。
  INDEX(Sheet1!$A$2:$A$200001,MATCHの結果,1)=$A2
 MATCHの結果(何番目か)を使用し、INDEXで値を取り出します。その結果が、本来の検索値と一致しているかの判定です。MATCHが近似値検索なので、完全一致の行が存在しない場合は、直前の値が取得されるのです。
  VLOOKUP($A2,Sheet1!$A$2:$B$200001,2,TRUE)
 検索値が存在している場合に、VLOOKUPを実行しています。 第4引数がTRUEがポイント です。MATCHと同じく近似値(以下)での検索をしています。既に、存在確認ができているので、結果として完全一致での検索と同じになります。
  【注意】範囲指定は、列指定(A:Bのような)はしてはいけません!列指定した途端に時間がかかるようになってしまいます。Sheet1の並べ替え を元に戻す必要がある場合は、Sheet2のB列(計算式を入れた列)は、値の貼り付けで、計算式を削除してから行ってください。
 MATCH、VLOOKUPともに、近似値での検索の場合は、二分検索(といわれている)しているので、とても高速に検索されます。
 そこで、検索範囲を並び替えし、近似値のみで実現したのが上記計算式になっています。
 上記の処理時間は、私の古いノートPCでも数秒で完了します。
 普通にVLOOKUPしたら何分かかるかわかりません。
 実際に、やり比べてみれば直ぐに実感できるはずです。

数値を時刻に変換

数値(例えば930)を、時刻・時間(9:30)に変換する方法です
 ・ 900 → 9:00・1230 → 12:30
 このように、単なる数値を時刻・時間に変換します。以下、A1セルに数値が入っているとします。

数値を時刻に変換:方法1

TIME関数を使います。TIME(時, 分, 秒)
  =TIME(INT(A1/100),A1-INT(A1/100)*100,0)

数値を時刻に変換:方法2

TIMEVALUE関数を使います。TIMEVALUE(時刻文字列)
  =TIMEVALUE(TEXT(A1,"0"":""00"))

数値を時刻に変換:方法3

計算のみで実現djr>エクセルでは、1日が1、つまり1時間は、1/241分は、1/24/60
  =INT(A1/100)/24 + (A1-INT(A1/100)*100)/24/60

数値を時刻に変換の注意点

上記方法のいずれが良いか、好みで使い分ければ良いと思いますが、ただし、実は、24時間を超える場合は、結果に多少の違いが出ます。
  2530 の場合、 方法1 → 1:30方法2 → 1:30方法3 → 25:30
 表示形式は、いずれも、 [h]:mm としてありる場合の表示です。。
 これは、関数の戻り値によるものです。 TIME関数とTIMEVALUE関数 の戻り値は、 0 ~ 0.99999999 の範囲にある値で、 0:00:00 (午前 0 時) から 23:59:59 (午後 11 時 59 分 59 秒) までの時刻を表します。 となっています。従って、これらの関数では、 24時間以内 しか扱えません。
 また、数値が、 75 のように、60分を超えている場合では、全ての方法において、 1:15 と正しく計算されます。
 個々の関数・数式の意味合いが解らない場合は、以下で勉強して下さい。
  数式.日付時刻のシリアル値
 エクセルの日付時刻は、シリアル値と呼ばれる数値で管理されています。日付時刻のシリアル値は、1900/1/1を基準にした数値です。 1900/1/1が1です。つまり1900/1/3は3です。シリアル値→日付 10000→1927/5/18 20000→1954/10/3 30000→1982/2/18 40000→ 2009/7/6 41000→2012/4…
  INT関数
 指定した数値を超えない最大の整数を返します。書式 INT(数値) 数値 切り捨てて整数にする実数を指定します。使用例 セルA1に19.5と入っている場合 =INT(A1)…19 セルA1に-19.5と入っている場合 =INT(A1)…-20 指定の数値を超えない最大整数になります。
  TIME関数
 引数の時,分,秒を時刻を表すシリアル値に変換します。セルにTIME関数を入力すると、セルの表示形式は自動的に時刻形式に設定されます。書式 TIME(時,分,秒) 時 時を表す数値を0~32767の範囲で指定します。
  TIMEVALUE関数
 文字列として格納された時刻を、Excelで時刻として認識できるシリアル値に変換します。書式 TIMEVALUE(時刻文字列) 時刻文字列 時刻を表す文字列を指定します。Excelの組み込みの時刻表示形式での時刻を表す文字列です。
 時刻・時間についての計算においては常に注意が必要です。
  時間計算で困ったときの確実な対処方法
 Excelで非常に多い質問の一つが時間計算です。日付・時刻はエクセルのデータ形式の一つですが、特に時間計算は面倒で対処方法も書籍・ネッ トでもあまりみかけません。日付に関しては便利な関数も用意されていますし、なにより、1日が数値の1(これをシリアル値と言います)で表されているの で、大抵はなんとかなっているようです。

関数のネスト方法

関数のネスト(入れ子)をする場合の、考え方です。
  IF関数 で説明します。
  ・80以上はA
  ・60以上はB
  ・40以上はC
  ・20以上はD
  ・20未満はE
 A1セルに値が入っているとして、
 この場合は、まず、
  =IF(A1>=80,"A","")
 これで、まずは確認。
 OKなら、
 数式バーにて、=の後ろを選択し、Ctrl+Cでクリップボードにコピー
 クリップボードには、 IF(A1>=80,"A","")
 続いて、数式バーにて、
  =IF(A1>=80,"A","") "" の部分を選択し、 Ctrl+V
 これで、
  =IF(A1>=80,"A",IF(A1>=80,"A",""))
 これが完成します。
 さらに続けて、 "" の部分を選択し、 Ctrl+V
 さらに、もう1回。
 出来上がりは、
  =IF(A1>=80,"A",IF(A1>=80,"A",IF(A1>=80,"A",IF(A1>=80,"A",""))))
 これを修正して、
  =IF(A1>=80,"A",IF(A1>=60,"B",IF(A1>=40,"C",IF(A1>=20,"D","E"))))
 これで完成。
 当たり前なのですが、これが関数をネストする場合の基本操作です。

ワイルドカードが使える関数

SUMIFCOUNTIFSEARCHMATCHHLOOKUPVLOOKUP
 データベース関数を除く、 2003までの関数 です。
  2007以降 なら、
  SUMIFSCOUNTIFSAVERAGEIFAVERAGEIFS
 これらでも使えます。
  ワイルドカードの使用例.
 以下の表で説明します。
  左の表から、
 E1セルの品名と、E2セルのサイズ
 この条件で、
 件数点数計品名(単価)単価金額
 を求める場合です。
 まずは、回答例です。
  ワイルドカード文字 ( ? )半角の疑問符: 任意の 1 文字 ( * )半角のアスタリスク: 任意の文字列
  件数 =COUNTIF($A:$A,$E$1 & "*" & $E$2 & "*")。
  点数計 =SUMIF($A:$A,$E$1 & "*" & $E$2 & "*",B:B)
  品名(単価) =VLOOKUP($E$1 & "*" & $E$2 & "*",$A:$A,1,FALSE)
 最期の、単価と金額は、ワイルドカードとは関係ないのですが、参考まで。
  $E$1 & "*" & $E$2 & "*" この部分は、 "みかん*M*" となり、 みかん○○M○○ このような文字列が対象となります
 
使用する機会は、そんなに多くはないと思いますが、
 一応は、押さえておきたい機能です。

グラフで特定の横軸の色を変更し基準線を引く

特定の横軸のみ色を変更する、つまり、基準値や下限・上限等に線を引く場合の手順です基準値や、下限・上限等に線を引きたい場合になります。
 結構面倒なので、いざやろうとすると、なかなか出来なかったりしますので、自分自身の覚書を兼ねて掲載しておきます。
 グラフの元データに線を引きたい数値の系列をシートに追加しておくと、もう少し楽にできますが、ここでは、シートには手を加えずに基準線を引いています。
 ここでの操作を自動で行うマクロVBAを以下に掲載しています。
  グラフで特定の横軸の色を変更し基準線を引くマクロ
 特定の横軸のみ色を変更する、つまり、基準値や下限・上限等に線を引きたい場合のVBAになります。手動でやろえとすると結構面倒なので、いざ やろうとするとなかなか出来なかったりします。グラフの元データに線を引きたい数値の系列をシートに追加しておくと、もう少し楽にできますが、ここでは、 シートには手を加えずに基準線を引いています。
 元々の記事はExcel2010で作成したものなので、改めてExcel2019で書き直ししました。エクセルのグラフ操作は、Excel2013以降でかなり変更されています。後半には、元記事のExcel2010以前の操作も残しています。

Excel2019でグラフで特定の横軸の色を変更し基準線を引く

具体的に、以下の1000の位置の赤線を追加する方法です。
  値1、値2の2系列の縦棒グラフは作ってあるとして
  系列を追加
  グラフを右クリックのメニューから「データの選択」→系列の「追加」
 
 
  系列名は任意の文字で構いません、ここでは 説明上「基準」 としました。系列値に、 ={1000,1000}
 系列値は、線を引く値を配列で指定します。2個以上の値が有ればよく、3個でも4個でも問題ありません。
  第3系列が追加されています。

追加系列を折れ線グラフに

続けて、追加した系列「規準」を折れ線グラフに変更します。操作手順は何通りかありますが、なるべくまぎれの無い確実な手順を選択したつもりです。
 グラフをクリック選択し、 リボン「グラフツール」→「デザイン」→「グラフの種類の変更」
 
 
  左側で「組み合わせ」を選択し、追加した系列「基準」のグラフを「折れ線」
 

追加系列を第2軸に

追加した系列「規準」を選択します。 グラフを右クリックし「グラフエリアの書式設定」
  「グラフエリアの書式設定」→「グラフオプション」→系列"規準" を選択
 
  このアイコンをクリック選択し、 第2軸をチェック します。
 
  このアイコンをクリック選択し、 「線」の色を選択 します。
 

第2軸縦の書式変更

第2軸縦(値)軸の書式設定をします。 「グラフエリアの書式設定」→「グラフオプション」→「第2軸縦(値)軸」 を選択
 
  このアイコンをクリック選択し、「軸のオプション」の 最小値・最大値を第1軸の最小値・最大値に 合わせます。
  「ラベル」の「ラベルの位置」を「なし」 に設定します。
  第2軸横(項目)軸を追加
 グラフツールの「デザイン」で左上の 「グラフ要素の追加」で「第2横軸(Z)」
 
  「グラフエリアの書式設定」→「グラフオプション」→「第2軸横(項目)軸」 を選択
 
  このアイコンをクリック選択し、 「軸のオプション」の「軸位置」を「目盛」
  「ラベル」の「ラベルの位置」を「なし」
 

特定の横軸の色を変更し基準線を引いたグラフの完成


  凡例の「基準」を消したい場合は、凡例の「―基準」を2回クリックします、ダブルクリックではなくゆっくり2回クリック
 
  ここで「Delete」キーを押します。
  追加した「基準」が折れ線グラフで、それを削除してしまうので、凡例のサンプル図が棒グラフの短いものに自動的に変更されます。

Excel2003でグラフで特定の横軸の色を変更し基準線を引く

具体的に、以下の10の位置の赤線を追加する方法です。
  以下、説明はExcel2010の画面になりますが、2003でも、同様の考え方で可能です。 a、bの2系列の縦棒グラフは作ってあるとして
  ・系列を追加
 「データの選択」→系列の「追加」
  系列名は、任意の文字を入れます。
 系列値は、線を引く値を配列で指定します。個以上の値が有ればよく、2個でも3個でも問題ありません。
  ・追加系列を折れ線グラフに
 続けて、追加した系列「規準」を折れ線グラフに変更します。
  ・追加系列を第2軸に
 系列「規準」を第2軸に変更します。
  ・第2軸縦の書式変更
 第2軸縦(値)軸の書式設定をします
  最小値・最大値を第1軸の最小値・最大値に合わせます。そして、軸ラベルを「なし」に設定します。
  ・第2軸横を追加
 
  「軸ラベル」を「なし」「軸位置」を「目盛」
 ・ これで完成
  と思ったら、線の色の変更を忘れてました。これは大丈夫ですね、好きな色に変更して下さい。

OFFSET関数 解説・応用・使用例

OFFSET関数 は、検索ワードで最頻出のひとつです。
 他の関数とは、かなり異質に感じるのかもしれません。
  機能 基準のセルまたはセル範囲から指定された行数と列数だけシフトした位置にある高さと幅のセル範囲の参照 を返します。 書式OFFSET(基準, 行数, 列数, 高さ, 幅)基準 基準となるセル範囲の参照を指定します。
  行数 基準の左上隅のセルを上方向または下方向へシフトする距離を行数単位で指定します。行数に正の数を指定すると下方向へシフトし、負の数を指定すると上方向へシフトします。 列数 基準の左上隅のセルを左方向または右方向へシフトする距離を列数単位で指定します。列数に正の数を指定すると右方向へシフトし、負の数を指定すると左方向へシフトします。 高さ オフセット参照の行数を指定します。高さは正の数である必要があります。
  オフセット参照の列数を指定します。幅は正の数である必要があります。
 関数の説明としては、以上なのですが、
 これだけでは分かりづらいからこそ、検索ワードで最頻出になっているのでしょう。
 以下、解説ページとその応用技についてのページになります。
 これらを全て読み解くことで、理解が進むはずです。
  エクセル入門.数式.OFFSET関数
 基準のセルまたはセル範囲から指定された行数と列数だけシフトした位置にある、指定の高さと幅のセル範囲の参照を返します。つまり、基準セルか ら、指定数だけ移動したセルを起点として、指定の大きさのセル範囲を取得出来ます。書式 OFFSET(基準,行数,列数,[高さ],[幅]) 基準 基準となるセル範囲の参照を指定します。
  徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)
 検索されるキーワードで最も多いのが、MATCH関数 INDEX関数セル範囲から、指定された行と列が交差する位置にあるセルの参照を返します。INDEX関数の書式INDEX(範囲,行番号[,列番号]) 範囲セル範囲を指定します。セル範囲が1行または1列である場合、行番号または列番号はそれぞれ省略することができます。
  セルの参照範囲を可変にする(OFFSET、COUNTA、MATCH)
 数式の参照範囲を可変対応させます、つまり、入力データにより自動で拡張・縮小されるように関数を設定します。エクセルの表には、集計等の計算 式を入れますが、その集計範囲は固定になっているため、データの追加時には、計算範囲外になってしまったりするので注意が必要になります。
  入力規則のリストを、2段階の絞り込みで作成1
 一覧リストを使用して、「入力規則」の「リスト」を作成し、「リスト」の選択結果により、となりの「リスト」の内容を自動で変化させます、さら に、一覧リストへの追加・削除に自動対応させるものです。入力規則のリストを、追加・削除に自動対応で作成 を理解した上でお読みください。
  入力規則のリストを、2段階の絞り込みで作成2
 一覧リストを使用して、「入力規則」の「リスト」を作成し、「リスト」の選択結果により、となりの「リスト」の内容を自動で変化させます、「入 力規則のリストを、2段階の絞り込みで作成1」こちらのリストの縦横を入れ替えたパターンになります。入力規則のリストを、追加・削除に自動対応で作成一 覧リストを使用して、「入力規則」の「リスト」を作成し、
  ピポットテーブルの参照範囲を、追加・削除に自動対応で作成
 ピボットテーブルの参照範囲を可変に設定し、データの追加・削除に自動で対応させます。以下の表で説明します。名前を定義します。シート「リスト」を選択します。Ctrl+F3で名前定義を起動する。メニュー等からの起動はバージョン毎に違います。
  グラフのデータ範囲を可変にする
 データの範囲に合わせて、自動的にグラフのデータ範囲が変更されるようにします。グラフのデータ個数が増えるたびに、「データの選択」 (2003は元データ)を変更するのは、いかにも面倒です。できれば、マクロでやりたいところですが、マクロはちょっという人用に解説します。
 このように、OFFSET関数は、
 セルの参照範囲を可変化するときに、その本領を発揮します。
 と言いますか、セルの参照範囲を可変化する時に使う為の関数です。。

MATCH関数 解説・応用・使用例

MATCH関数 は、検索ワードで最頻出のひとつです。
 非常に便利な関数です。
 少し込み入った事を関数でやろうとした時は、必ず必要になる関数です
  機能
 セルの範囲内で指定された項目を検索し、その項目の相対的な位置を返します。セル範囲は、縦方向・横方向のどちらでも指定可能です。
  書式
  MATCH(検査値, 検査範囲,照合の型)
  検査値 値 (数値、文字列、または論理値)、またはこれらの値に対するセル参照を指定できます。
  検査範囲
 
検索するセルの範囲を指定します。縦方向・横方向のどちらでも指定可能ですが、1列または1行のみになります。
  照合の型1: 検査値以下の最大の値が検索されます。このとき検査範囲のデータは、昇順に並べ替えておく必要があります。 0: 検査値に一致する値のみが検索の対象となります。このとき検査範囲を並べ替えておく必要はありません。完全に一致する値が見つからない場合は、エラー値 #N/A が返されます。※0の場合のみ、ワイルドカードが使用できます。 -1: 検査値以上の最小の値が検索されます。このとき検査範囲のデータは、降順に並べ替えておく必要があります。
 関数の説明としては、以上なのですが、
 これだけでは分かりづらいからこそ、検索ワードで最頻出になっているのでしょう。
 以下、解説ページとその応用技についてのページになります。
 これらを全て読み解くことで、理解が進むはずです。
  エクセル入門.数式.MATCH関数
 セルの範囲内で指定された項目を検索し、その項目の相対的な位置を返します。セル範囲は、縦方向・横方向のどちらでも指定可能です。MATCH 関数の書式 MATCH(検査値,検査範囲,照合の型) 検査値 値(数値、文字列、または論理値)、またはこれらの値に対するセル参照を指定できます。
  徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)
 検索されるキーワードで最も多いのが、MATCH関数 INDEX関数セル範囲から、指定された行と列が交差する位置にあるセルの参照を返します。INDEX関数の書式INDEX(範囲,行番号[,列番号]) 範囲セル範囲を指定します。セル範囲が1行または1列である場合、行番号または列番号はそれぞれ省略することができます。
  セルの参照範囲を可変にする(OFFSET、COUNTA、MATCH)
 数式の参照範囲を可変対応させます、つまり、入力データにより自動で拡張・縮小されるように関数を設定します。エクセルの表には、集計等の計算 式を入れますが、その集計範囲は固定になっているため、データの追加時には、計算範囲外になってしまったりするので注意が必要になります。
  入力規則のリストを、2段階の絞り込みで作成1
 一覧リストを使用して、「入力規則」の「リスト」を作成し、「リスト」の選択結果により、となりの「リスト」の内容を自動で変化させます、さら に、一覧リストへの追加・削除に自動対応させるものです。入力規則のリストを、追加・削除に自動対応で作成 を理解した上でお読みください。
  入力規則のリストを、2段階の絞り込みで作成2
 一覧リストを使用して、「入力規則」の「リスト」を作成し、「リスト」の選択結果により、となりの「リスト」の内容を自動で変化させます、「入 力規則のリストを、2段階の絞り込みで作成1」こちらのリストの縦横を入れ替えたパターンになります。入力規則のリストを、追加・削除に自動対応で作成一 覧リストを使用して、「入力規則」の「リスト」を作成し、
  【奥義】大量データでの高速VLOOKUP
 大量データからのVLOOKUPを大量行に設定すると再計算がなかなか終わらなくなります… そんな経験したことがある人は、少なからずいると思います、そんな場合に、高速にVLOOKUPを実行する方法です。以下の表で説明します。※ Sheet1は、A列で昇順に並び変えておきます。
  関数で他シートへ並べ替える方法(サンプル:ABC分析)
 通常、並べ替えは元データが変更されれば、毎回、並べ替えを行う必要がありますが、, これが、結構面倒な場合もあります。出来れば、マクロを組みたいところですが、マクロはちょっとと言う人もいるでしょう。そこで、関数で他シートへ並べ替える方法です。
  複数条件で検索し、複数データを取得する方法
 各種条件でデータを絞る場合は、オートフィルタが一般的に使用されますが、元のデータがあるシートで作業する為、間違ってデータを消してしまったり、使用する上で制約があります。また、VLOOKUPでは、単一条件のみであり、しかも1件しか取得できません。
 このように、MATCH関数は、
 使用範囲が広く、項目を検索する必要がある場合は、
 これしかないと言う関数です。

選択行の色を変える(条件付き書式,Worksheet_SelectionChange)

クリックまたはカーソルキーで選択セルを移動した場合に、
 当該行の色を変更して目立たせたせる方法で、
 条件付き書式と、シートのイベントであるWorksheet_SelectionChangeを使用します。
 Worksheet_SelectionChangeイベントのみでやろうとすると、
 直前の選択行の色を元に戻す必要がある為、
 未選択行の色を戻す必要があり、事前にセルに色を付けたりできなくなってしまいます。
 そこで、条件付き書式と、Worksheet_SelectionChangeイベントを組み合わせる事で、
 自動的に元の色にもどるようにすることが出来ます。
  条件付き書式
 設定したいシートの設定したい範囲を選んで、
  Excel2007以降
 「ホーム」→「条件付き書式」→「新しいルール」→「数式を利用して、書式設定するセルを決定」
 数式欄に、
  =CELL("row")=ROW()
  Excel2003
 「書式」→「条件付き書式」→「数式が」
 数式欄に、
  =CELL("row")=ROW()
  これだけですと、シートの再計算が行われると、
 選択行の色が変更されるのが確認できるはずです。
 再計算させるには、F9 または 適当なセルでDeleteキー押下で再計算されます。
 そこで、選択セルが変更されたら、再計算されるようにすれば良い事になります。
  Worksheet_SelectionChangeイベント
 Visual Basic Editor(Alt+F11)を開いきます。
 設定するシートを、ブロジェクトウインドウ(通常は左上のウインドウ)を、
 ダブルクリック または 右クリックでコード表示
  ここに、
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Application.ScreenUpdating = TrueEnd Sub
これで、選択行の色が変わるようになったはずです。
 ここでは、Application.ScreenUpdating = True
 これは、実際は何でも良く、再計算がされさえすれば良いのです。
 なので、
 Application.Calculation = xlCalculationAutomatic
 これでも、なんら問題はありません。
 まあ、一番影響のなさそうなものが、ScreenUpdatingかなーと言うだけです。
 設定自体は、さほど難しいものではありませんので、
 マクロ等が分からない方でも使えると思います。
 個人的な意見としては、標準機能が合っても良いとは思いますね。
 アクティブなセルの、列見出し・行見出しは色が変わりますので、
 これを拡張してくれれば良いのではと思っています。
 もっとも、Excel95までは、列見出し・行見出しの色も変わらなかったと記憶しています。

他ブックを参照できる関数、他ブックを参照できない関数

他のブックを参照する関数を入れた場合、そのブックが開いていないとエラーになってしまう関数があります。一方、ブックが開いていなくても、正しく結果取得できる関数があります。
 なぜかと言う理由は、作成者のMSに聞かないとわからないことですが、どの関数が使えて、どの関数がつかえないのか…
 使えない関数の場合、代用できる関数があるか等を考察してみました。

他ブックを参照できる関数、他ブックを参照できない関数

参照するブックが閉じた状態でも、正しく取得できているかどうか、代表的な関数を一つずつ確認してみましょう。以下、○×で表記します。○ … 正しく取得できている× … エラー(#VALUE)
 代表的な関数から順次試してみると、 SUM … ○これは問題ないです。
  IF … ○これも問題ありません。
  COUNTA … ○まったく問題なし。
  VLOOKUP … ○これも問題ないです。
  MATCH … ○ INDEX … ○いやー、結構大丈夫じゃないですか。
 と思いきや…
  SUMI F … ×ダメですね。
  COUNTIF … ×あれれ、という感じでしょうか。
 SUMとIFが大丈夫なのに、SUMIFがだめなんですね。では、データベース関数ならどうか。
  DSUM … × DCOUNTA … ×
 やはりダメです。では、とっておきのINDIRECTは、
  INDIRECT … ×まあ、これはそんな感じでしょうかね。
 全体としては、ある列を条件として、他の列から情報を得るといったものがダメだということになります。むしろ、VLOOKUPが別格な感じになります。

他ブックを参照できる関数、他ブックを参照できない関数のまとめ

参照できる関数と、参照できない関数をまとめると、
関数名 結果
SUM
IF
COUNTA
SUMIF ×
COUNTIF ×
VLOOKUP
MATCH
INDEX
DSUM ×
DCOUNTA ×
INDIRECT ×

 他のブックを参照したい関数としては、大体この辺りでしょうか。全ての関数を確認まではしていませんが、上記掲載以外の関数は、全て参照できないとお考え下さい。

他ブックを参照する最も簡単な方法

そもそも、単一のセル参照なら問題ありません。
 つまり、=セル番地これなら、他のブックを問題なく参照できます。
 解決策として、もっとも簡単なのは、データ範囲を全て、=セル番地、これでどこかのセルに取得しておけば良いです。そして、そのセルを使って計 算するようにしておけば問題ありません。しかし、これは、あまりにも無駄ですし、それなら、そもそも、別ブックである必要性がないですよね。

配列数式を使って、他ブックを参照する

上記に説明した関数のうち、SUMIFCOUNTIFこのあたりの関数については、出来たら他ブック参照したいと思う方も多いでしょう。なんとか他の関数で出来ないか…
 そこで考えたいのは、 SUM … ○ IF … ○この二つの関数で何とかならないかと考えたくなります。これらの関数の組み合わせなら参照出来るんじゃないでしょうか。
 =SUMIF(範囲,検索条件,合計範囲)これを{=SUM(IF(範囲=検索条件,合計範囲)}このように書き直します。{…}この{}は、 配列数式 であることを意味します。普通に関数を入力した後、最後に Ctrl+Shift+Enter で入力確定すると、数式が、{}で囲まれて、配列数式となります。これなら、他ブックの集計が可能です。
 少し難しいので、具体的な例を、自身のA1セルを条件として、Book1のA列を条件範囲としてB列を集計する場合、=SUMIF([Book1.xlsx]Sheet1!$A:$A,A1,[Book1.xlsx]Sheet1!$B:$B)↓ {=SUM(IF([Book1.xlsx]Sheet1!$A:$A=A1,[Book1.xlsx]Sheet1!$B:$B))} このようになります。※[Book1.xlsx]の部分は実際のシートではフルパスで表示されます。
 ほぼ同様ですが、=COUNTIF(範囲,検索条件,合計範囲)これを{=SUM(IF(範囲=検索条件,1)}つまり、条件に一致したら1に して、それを集計すれば件数になります。一応、例としては、自身のA1セルを条件として、Book1のA列を条件範囲として件数を数える場 合、=COUNTIF([Book1.xlsx]Sheet1!$A:$A,A1)↓ =SUM(IF([Book1.xlsx]Sheet1!$A:$A=A1,1))
 ※範囲指定について
 上記では、$A:$A、このように列全体として書いています。ただし、配列数式の場合、列全体を指定すると、データ量によっては膨大な再計算時 間がかかってしまう場合が出てきます。ここでは記述を簡略化するために列全体としましたが、配列関数を使う場合は、行数を限定するようにしたほうがパ フォーマンスが良くなります。

他ブックを参照することについて

ここまで、他ブックを参照できる関数、他ブックを参照できない関数として解説してきましたが、そもそも論として、 他のブックを参照することは、あまり望ましいことではありません。 常にリンク切れの問題がつきまといます。他ブックを参照する必要性がある場合は、 マクロVBAで処理したほうが良いでしょう。

時間計算で困ったときの確実な対処方法

Excelで非常に多い質問の一つが時間計算です。
 日付・時刻はエクセルのデータ形式の一つですが、
 特に時間計算は面倒で対処方法も書籍・ネットでもあまりみかけません。
 日付に関しては便利な関数も用意されていますし、
 なにより、1日が数値の1(これをシリアル値と言います)で表されているので、大抵はなんとかなっているようです。
 対して、時刻のシリアル値は小数以下になっていて、かつ、関数もあまり用意されていない為にどうしてよいか分からなくなってしまうことが多いのでしょう。
 以下で、確実に時間計算を行う鉄板の方法を紹介します。
 まずは、その前に、事前知識が必要になります。
 ちょっと難しい話になりますが、さくっと読み流してみてください。
  ・日付・時刻のシリアル値とは
 日付は、1900/1/1を1として、そこからの経過日数であらわされます。つまり、日付のシリアル値とは、1900/1/1の何日後かの数値ということになります。雑学話としては、「 エクセル雑感.エクセルの日付のお話 」をご覧ください。
 エクセルでの日付の扱いは特別です。では、エクセルでの日付についてのお話です。エクセルでの日付は1900/1/1を1として、そこからの日数になっています。通常、私もこのように説明するのですが、実は、ちょっとからくりがあります。
 1日が1なので、通常の足し引き計算はなんら問題がありませんので、あまり意識することはないと思います。年月の表記においてのみ問題があり、これらに対する関数は豊富に存在しています。
 時刻は、1日(24時間)を1として、その分数としてあらわされます。つまり、1時は1/24、2時は2/24です。同様に分は、さらに1/60となります。つまり、1分は1/24/60、2分は2/24/60です。
 ですので、2014/5/6 14:30は、1900/1/1の41765日後なので、=41765+14/24+30/24/60=41765.6041666667となります。そ して、Excelは整数部分を日付、小数以下を時刻として認識します。従って、通常の書式「hh」では小数部分の時刻のみを取り出します。整数部分の日付 も含めて時刻に(つまり24hを超して表示)する場合は、「[hh]」といった書式が必要になります。
 ここで、日付・時刻とは、特に 時刻とは、時計の針が指すその時刻 になります。 決して時間(時刻と時刻の間隔)ではない ということです。したがって、 マイナスは決して扱えません 、この事を理解していない場合が非常に多く見受けられます。
 シリアル値を日付・時刻の表示形式にする各種指定方法は、「 エクセル基本操作.日付、時刻に関するあれこれ
 1.曜日の表示方法 2.数値を日付にする方法 3.24時以降(26時等)の表示書式 4.日付と日付の間隔(年齢等)の求め方、DATEDIFに関して 5.日付、時刻のシリアル値(数値) 6.和暦表示について「元年」表記」1.曜日の表示方法 曜日の書式に関しては、「セルの書式設定」にサンプルが出ていない為、
 個別の関数等については、以下を参考にしてください。
  数式.日付時刻のシリアル値
 エクセルの日付時刻は、シリアル値と呼ばれる数値で管理されています。日付時刻のシリアル値は、1900/1/1を基準にした数値です。 1900/1/1が1です。つまり1900/1/3は3です。シリアル値→日付 10000→1927/5/18 20000→1954/10/3 30000→1982/2/18 40000→ 2009/7/6 41000→2012/4…
  数式.DATE関数(年,月,日を日付に)
 引数の年,月,日を日付を表すシリアル値に変換します。セルにDATE関数を入力すると、セルの表示形式は自動的に日付形式に設定されます。書式 DATE(年,月,日) 年 1~4桁で年を指定します。月 月を表す正または負の整数を指定します。
  数式.DATEVALUE関数(日付を表す文字列を日付に)
 文字列として格納された日付を、Excelで日付として認識できるシリアル値に変換します。書式 DATEVALUE(日付文字列) 日付文字列 日付を表す文字列を指定します。Excelの組み込みの日付表示形式での日付を表す文字列です。
  数式.YEAR関数(日付を年に)
 日付に対応する年を返します。引数に指定した日付の西暦年を、1900(年)~9999(年)の範囲の整数で返します。書式 YEAR(シリアル値) シリアル値 日付の入っているセル参照または、DATE関数等を指定します。
  数式.MONTH関数(日付を月に)
 日付に対応する月を返します。1(月)~12(月)の範囲の整数です。書式 YEAR(シリアル値) シリアル値 検索する月の日付を指定します。日付の入っているセル参照または、DATE関数等を指定します。使用例 セルA1に2013/5/15と入っている場合 =MONTH(A1)…5 応用例 1年後の日付、
  数式.DAY関数(日付を日に)
 日付に対応する日を返します。1~31の範囲の整数です。書式 YEAR(シリアル値) シリアル値 検索する日の日付を指定します。日付の入っているセル参照または、DATE関数等を指定します。使用例 セルA1に2013/5/15と入っている場合 =DAY(A1)…14 応用例 1年後の日付、○か月後の日付 ※ワークシート関数一覧Excelワークシート関数の一覧…
  数式.TIME関数(時,分,秒を時刻に)
 引数の時,分,秒を時刻を表すシリアル値に変換します。セルにTIME関数を入力すると、セルの表示形式は自動的に時刻形式に設定されます。書式 TIME(時,分,秒) 時 時を表す数値を0~32767の範囲で指定します。
  数式.TIMEVALUE関数(時刻を表す文字列を時刻に)
 文字列として格納された時刻を、Excelで時刻として認識できるシリアル値に変換します。書式 TIMEVALUE(時刻文字列) 時刻文字列 時刻を表す文字列を指定します。Excelの組み込みの時刻表示形式での時刻を表す文字列です。
  数式.HOUR関数(時刻を時に)
 時刻に対応する時を返します。0(時)~23(時)の範囲の整数です。書式 HOUR(シリアル値) シリアル値 時刻を指定します。時刻の入っているセル参照または、TIME関数等を指定します。使用例 セルA1に10:20:30と入っている場合 =HOUR(A1)…10 ※ワークシート関数一覧
  数式.MINUTE関数(時刻を分に)
 時刻に対応する分を返します。0(分)~59(分)の範囲の整数です。書式 MINUTE(シリアル値) シリアル値 時刻を指定します。時刻の入っているセル参照または、TIME関数等を指定します。使用例 セルA1に10:20:30と入っている場合 =MINUTE(A1)…20 ※ワークシート関数一覧
  数式.SECOND関数(時刻を秒に)
 時刻に対応する秒を返します。0(秒)~59(秒)の範囲の整数です。書式 SECOND(シリアル値) シリアル値 時刻を指定します。時刻の入っているセル参照または、TIME関数等を指定します。使用例 セルA1に10:20:30と入っている場合 =SECOND(A1)…30 ※ワークシート関数一覧
  数式.TODAY関数(現在の日付)
 現在の日付に対応する値を返します。セルにTODAY関数を入力すると、セルの表示形式は自動的に日付形式に設定されます。書式 TODAY() ※引数はありません。TODAY関数は、エクセルで再計算が行われない限り、関数を入力した日付のままになります。
  数式.NOW関数(現在の日付と時刻)
 現在の日付と時刻に対応するシリアル値を返します。セルにNOW関数を入力すると、セルの表示形式は自動的に時刻形式に設定されます。書式 NOW() ※引数はありません。NOW関数は、エクセルで再計算が行われない限り、関数を入力した日付時刻のままになります。
  数式.WORKDAY関数(稼動日数だけ前後の日付)
 開始日から起算して、指定された稼動日数だけ前または後の日付に対応する値を返します。稼動日とは、土曜、日曜、および指定された祭日を除く日のことです。書式 WORKDAY(開始日,日数,[祭日]) 開始日 必須です。
  数式.NETWORKDAYS関数(稼動日の日数)
 開始日から終了日までの期間に含まれる稼動日の日数を返します。稼動日とは、土曜、日曜、および指定された祭日を除く日のことです。書式 NETWORKDAYS(開始日,終了日,[祭日]) 開始日 必ず指定します。
  数式.DATEDIF関数(年齢・勤続年数)
 2つの日付の間の日数、月数、または年数を計算します。この関数は、Lotus1-2-3との互換性を提供するために用意されています。この関数は、関数ウイザード(数式パレット)が用意されていませんので、全て手入力する必要があります。
  ・Excelにおける小数の問題
 Excelに限ったことではなく、PC、いやコンピューター全般の問題点として小数の表現方法が存在します。詳しい解説は、ここでは省きます が、コンピューターが全て2進数で表現されているため、表現できない小数点数があったり、計算過程で誤差が生じてしまうというものです。これらの事は、 Microsoftの各種ページでも解説されていますので、興味があれば読んでみてください。 Excel で浮動小数点演算の結果が正しくない場合がある
  浮動小数点演算で丸め誤差を修正する方法
 ここでは、この問題がある為に発生する時間計算の誤差の対処方法を記します。
 さて、いよいよ本題に入ります。よくある(かどうかは別にして)出退勤の計算を例に話を進めます。
  ・どんな時に問題が発生するか
 ・出勤時刻・退勤時刻・休憩時間・所定時間ここから、遅刻・早退・残業時間を求める場合です。まっ、遅刻・早退は、望ましくないので(笑)、残 業時間の算出を例にとりましょう。・出勤時刻 8:15・退勤時刻 17:15・休憩時間 1:00・所定時間 8:00残業時間=17:15-7:15-1:00:8:00=0:00シート上で計算してみてください、正しく計算できています。
出勤時刻 退勤時刻 休憩時間 所定時間 残業時間
8:15 17:15 1:00 8:00 0:00
そう、普通は何も問題ないように思えます。では、その下に以下のようにいれて、さらにドラッグコピーをします。
出勤時刻 退勤時刻 休憩時間 所定時間 残業時間
8:15 17:15 1:00 8:00 0:00
8:16 17:16 1:00 8:00 0:00
この2行分のセル範囲を選択しドラッグコピーすると、
出勤時刻 退勤時刻 休憩時間 所定時間 残業時間
8:15 17:15 1:00 8:00 0:00
8:16 17:16 1:00 8:00 0:00
8:17 17:17 1:00 8:00 0:00
8:18 17:18 1:00 8:00 0:00
8:19 17:19 1:00 8:00 0:00
8:20 17:20 1:00 8:00 0:00
8:21 17:21 1:00 8:00 0:00
8:22 17:22 1:00 8:00 0:00
8:23 17:23 1:00 8:00 0:00
8:24 17:24 1:00 8:00 0:00
8:25 17:25 1:00 8:00 ##########
8:26 17:26 1:00 8:00 0:00
8:27 17:27 1:00 8:00 ##########
8:28 17:28 1:00 8:00 0:00
8:29 17:29 1:00 8:00 ##########
8:30 17:30 1:00 8:00 ##########
8:25のところから、なにやらおかしくなっています。手入力で、8:25と入れなおすと、正しく0:00となります。 これは、ドラッグコピーで作成された時刻が、手入力の時刻とわずかに違いがあるということです。手入力する前の8:25のシリアル値は、 0.350694444444445手入力した後の8:25のシリアル値は、0.350694444444444わずかに、最後で違いがあります。この違 いは、秒まで表示しても時刻形式では再が見て取れません。
 つまり、いくら眺めていても、この問題は解決しませんし、全て手入力し直していたのでは、何のためのExcelだかわからなまなってしまいま す。この問題は、何もドラッグコピー時だけの問題ではなく、何らかの計算結果を時刻表示しているときには、常に付きまとう問題となっています。ここでは、 簡単に再現でき、かつ、理解しやすいようにドラッグコピーで説明しました。
 分までなら、あまり計算誤差は発生しませんがも秒まで計算すると頻発します。
開始時刻 0:08:25 0:23:43
終了時刻 0:17:25 0:32:43
経過時間 0:09:00 0:09:00 FALSE
右下のFALSEは、2つ左の0:09:00と、1つ左の0:09:00を比較した結果です。同じ数値ではないということになります。秒までの計算式では、むしろ一致することの方が少ないくらいに違いが発生します。
 では、本当の本題です。このような問題を解決するための確実な方法です。
  ・確実な時間計算方法
 計算をExcelに任せて、 小数点数の2進数で計算するから問題 なのです。したがって、要は人間が頭のなかで行っているのと同様に、 10進計算すればよい のです。そのためには、まずは 10進計算できる数値に変換してから計算 します。つまり、小数点以下のシリアル値ではなく、整数としての独自シリアル値として扱うのです。話を分かりやすくするために、分単位で話を進めます。
 見た目で、 8:25 とあるなら、これをそのまま1分を1とした数値に変換します。つまり、 8*60+25=505 にします。その方法としては、何通りかありますが、元のシリアル値が、 1日=24時間=1 であることから、 A1セルに8:25 が入っているとして、 A1*60*24=505 となります。※計算結果のセルは表示形式を標準に変更してください。*60で1時間が1となり、*60で1分が1となります。また、少しややこしくなりますが、基本単位で割れば、基本単位を1とした数値になりますので、
  A1/Time(0, 1, 0)=505 これは、 8:25/(24/60)=8:25*60*24=505
 両者は同じことになります。
 さて、これで一見よさそうにみえますし、まずは問題が無いでしょう。しかし、小数以下の誤差が問題であるといっているのに、この計算式では、や はり誤差が出てしまうのではないかと不安があります。※この計算式で誤差がでてしまうかどうかの検証はしていません、 多分、ほとんど誤差が出ることはないと思うのですが、全ての数値で検証できませんので。さらには、実際のセル値が、 8:25:58 のように秒数が入ってしまっていて、 見た目が8:25 となっている場合は、結果が506となってしまいます。もちろん、小数以下を表示すれば、 505.983333333 のような数値となっているわけです。
 では、人間の見た目通りの計算をしたい場合は、どうしたら良いかです。それには、Excelで用意されている関数を使います。
  HOUR(A1)*60+MINUTE(A1)=505
 この計算式なら、実際は8:25:59とセルにはいっていて、見た目だけ8:25となっていても問題ありません。また、こんな計算方法もあります。
  TEXT(G18,"hh")*60+RIGHT(TEXT(G18,"hhmm"),2)
 計算式の意味としては理解しやすいかもしれませんが、やはり前者の計算式の方が良いと感じます。ちなみに、TEXT関数で分だけ取り出そうとし て、"mm"の指定は月を取り出してしまいます。(このTEXT関数で、分のみ指定する方法が無いのは、かなり痛い仕様と言えます)
 さて、この1分を1とした数値に変換できたら、後は普通に足し引きして問題ないことは説明が不要でしょう。でも、最後は、分かりやすいように時 間表示にしたくなります。計算結果が、75、これでは分かりずらい、やはり、1:15のように表示しておきたいところです。それには、既に登場している、 TIME関数を使えば一発で済みます。B1セルに1分を1とした数値に変換後の計算結果が入っているとして、
  TIME(0, B1, 0)
 これで、時刻表示に自動変換されます。TIME関数の引数には、60を超える分や秒を指定しても、正しく変換してくれます。
 これで、全ての時間計算に関する問題は解決します。ちなみに、秒で計算する場合は、
  HOUR(A1)*60*60+MINUTE(A1)*60+SECOND(A1)=30359TIME(0, 0, B1)
 このようにすれば良い事になります。
 実際には、実務での残業時間計算で1分単位で時間計算することは稀でしょう。(労基署の言い分としては、1分単位でやりなさいとなりますが、その辺は専門家に委ねるとして)例えば15分単位である場合、 出勤時刻は15分毎に切り上げ、つまり、8:25は8:30退勤時刻は15分単位に切り捨て、つまり、17:35は17:30 のようにしてから、残業時間を計算するというのは昔からよくあることです。このような場合は、
  CEILINGFLOOR
 
これらの関数を使って処理してから、足し引き計算をすることになります。ちなみに、出勤時刻は15分毎に切り上げた分単位にする場合は、 CEILING(HOUR(A1)*60+MINUTE(A1),15) のようになります。元の時刻を15分単位にしてからなら、 CEILING(A1,TIME(0,15,0)) としてから、分に変換しても良いですね。
  TIME関数の制限について
  TIME関数の引数 は、ヘルプにも書かれていますが、「 0~32767の範囲 で指定します。」つまり、秒数なら概ね9時間以上となる場合は制限値を超えてしまいます。そのような場合は、時と合わせて計算する工夫が必要になります。
  A1セルに秒数が入っているとして、単純に、 =TIME(0,0,A1) とすると、9時間を超える秒数の場合は、 #NUM となってしまいます。そこで、 A2=FLOOR(A1,60*60) これは、数値から、時間部分だけを取り出します。そして、 A3=A1-A2 これは、数値から、秒数部分だけを取り出します。上記をTIME関数に入れて、 =TIME(A2/60/60,0,A3) これで計算できます。(途中の計算方法は、色々な関数の使い方があります)
 また、そもそも、 TIME関数は24時間を超える値を返しません 。24時間以上は、DATE関数の範囲となります。この場合も、日(24時間)以上は別途取り出す工夫が必要になります。上記のように、A1セルに秒数が入っているとして、A2=FLOOR(A1,60*60*24)これは、数値から、日部分だけを取り出します。そして、 A3=A1-A2 これは、数値から、日(24時間未満)部分だけを取り出します。=A2/60/60/24これで、日数に戻せますし、日数に*24で時 間、*24*60で分数に戻せます。24時間未満の部分をTIME関数で処理して、24時間を超える部分は、別途加算するようにします。ちなみに、先に書 いているように、1日=1ですので、シリアル値計算としては、日数は単純に加算できます。
  ・単純化した結論
 時間計算に限らないのですが、まずはExcelの基本関数をうまく使うことを考えましょう。質問のほとんどは、基本関数の組み合わせでなんとかなります。時間計算なら、
  TIMETIMEVALUEHOURMINUTESECONDCEILINGFLOOR
 まずは、これらの関数を使って処理できないかを工夫してみてください。大抵(ほぼ全て)は、これらの関数と、文字列関数の一部を使うだけで解決できます。
 いろいろと時間計算が面倒なことはご理解いただけたかと思います。 本当の意味での結論としては、細かい時間にとらわれない仕事をしたいものだということです。

VLOOKUP 左側の列を取得(MATCH,INDEX,OFFSET)

エクセルの数ある関数の中でも頻繁に使われるVLOOKUP関数は非常に便利な関数ですが、 キー列(検索値を探す列)より左側にある列を取得できません。
 これは仕様で仕方ないのですが時に不便な場合があります。キー列より左側の列を取得したい場合には、VLOOKUP関数ではなく他の関数を使って実現します。まずはVLOOKUP関数を確認してから、別の方法について解説します。

VLOOKUP関数

検索値で、セル範囲の最初の列を検索し、その範囲の同じ行にある任意のセルから値を返します。Vは縦方向(vertical)の意味です。つまり縦方向の表に対して使用します。
  =VLOOKUP(検索値,範囲,列番号,検索方法)
  検索値
 表または範囲の左端の列で検索する値を指定します。※ワイルドカードが使用できますが、使う事は少ないと思います。
  範囲
 データを含むセル範囲です。
  列番号
 目的のデータが入力されている列を、範囲内の左端から数えた列数で指定します。
  検索方法
 TRUE(1)を指定すると、 検索値と完全に一致する値、またはその近似値(検索値未満の最大値)が返されます。※範囲の左端の列にある値を昇順に並べ替えておく必要があります。 FALSE(0)を指定すると検索値と完全に一致する値だけが検索されます。完全に一致する値が範囲の左端の列に複数ある場合は、最初に見つかった値が使 用されます。完全に一致する値が見つからない場合は、エラー値 #N/A が返されます。※TRUE(1)の使い方は少し難しいです。ほとんどの場合、FALSE(0)で良いはずです。
 VLOOKUP関数の詳細については以下を参照してください。
  VLOOKUP関数
 文字列中の指定された文字数の文字を別の文字に置き換えます。書式 REPLACE(文字列,開始位置,文字数,置換文字列) 文字列 置き換えを行う文字列を指定します。開始位置 置換文字列と置き換える先頭文字の位置(文字番号)を数値で指定します。

キー列より左側の列を取得したい

では、本題のキーより左の列を取得したい場合です。以下の表で説明します。
  この表を元に、説明していきます。この表の場合、キーとなる列Cより左側(A列B列)のデータを取得することになり、
 VLOOKUPでは取得できないことになります。そこで使用する関数が、 MATCHINDEXOFFSET になります。それぞれの関数を簡単に確認してから、これらの関数を組み合わせて、キー列より左側の列を取得する方法を解説します。

MATCH関数

セルの範囲内で指定された項目を検索し、その項目の相対的な位置を返します。セル範囲は、縦方向・横方向のどちらでも指定可能です。
  MATCH(検査値, 検査範囲,照合の型)検査値
 値 (数値、文字列、または論理値)、またはこれらの値に対するセル参照を指定できます。
  検査範囲
 検索するセルの範囲を指定します。 縦方向・横方向のどちらでも指定可能ですが、1列または1行のみになります。
  照合の型
  1 - 以下
 検査値以下の最大の値が検索されます。このとき検査範囲のデータは、昇順に並べ替えておく必要があります。
  0 - 完全一致
 検査値に一致する値のみが検索の対象となります。このとき検査範囲を並べ替えておく必要はありません。完全に一致する値が見つからない場合は、エラー値 #N/A が返されます。※0の場合のみ、ワイルドカードが使用できます。
  -1 - 以上
 検査値以上の最小の値が検索されます。このとき検査範囲のデータは、降順に並べ替えておく必要があります。
 MATCH関数ま詳細については、以下を参照してください。
  MATCH関数
 セルの範囲内で指定された項目を検索し、その項目の相対的な位置を返します。セル範囲は、縦方向・横方向のどちらでも指定可能です。MATCH 関数の書式 MATCH(検査値,検査範囲,照合の型) 検査値 値(数値、文字列、または論理値)、またはこれらの値に対するセル参照を指定できます。

INDEX関数

セル範囲から、指定された行と列が交差する位置にあるセルの参照を返します。
  INDEX(範囲, 行番号[, 列番号])
  範囲
 セル範囲を指定します。セル範囲が 1 行または 1 列である場合、行番号または列番号はそれぞれ省略することができます。範囲が 1 列のみである場合は、INDEX(範囲,行番号)範囲が 1 行のみである場合は、INDEX(範囲,列番号)
  行番号
 範囲の中にあり、セル参照を返すセルの行位置を数値で指定します。
  列番号
 範囲の中にあり、セル参照を返すセルの列位置を数値で指定します。
 INDEX関数ま詳細については、以下を参照してください。
  INDEX関数
 セル範囲から、指定された行と列が交差する位置にあるセルの参照を返します。INDEX関数の書式 INDEX(範囲,行番号[,列番号]) 範囲 セル範囲を指定します。セル範囲が1行または1列である場合、行番号または列番号はそれぞれ省略することができます。

OFFSET関数

基準のセルまたはセル範囲から指定された行数と列数だけシフトした位置にある高さと幅のセル範囲の参照 を返します。
  OFFSET(基準, 行数, 列数, 高さ, 幅)
  基準
 基準となるセル範囲の参照を指定します。
  行数
 基準の左上隅のセルを上方向または下方向へシフトする距離を行数単位で指定します。行数に正の数を指定すると下方向へシフトし、負の数を指定すると上方向へシフトします。
  列数
 基準の左上隅のセルを左方向または右方向へシフトする距離を列数単位で指定します。列数に正の数を指定すると右方向へシフトし、負の数を指定すると左方向へシフトします。
  高さ
 オフセット参照の行数を指定します。高さは正の数である必要があります。
 
 オフセット参照の列数を指定します。幅は正の数である必要があります。
 OFFSET関数の詳細は、以下を参照してください。
  OFFSET関数
 基準のセルまたはセル範囲から指定された行数と列数だけシフトした位置にある、指定の高さと幅のセル範囲の参照を返します。つまり、基準セルか ら、指定数だけ移動したセルを起点として、指定の大きさのセル範囲を取得出来ます。書式 OFFSET(基準,行数,列数,[高さ],[幅]) 基準 基準となるセル範囲の参照を指定します。
  これで必要な関数が出そろいました。
 これらの関数を組み合わせることで、VLOOKUP関数ではできない、キー列より左側の列の値を取得できます。

MATCH関数とINDEX関数を使う


  E2セルの値でC;zを検索して、一致した行のA列またはB列を取得します。MATCH関数とINDEX関数を組み合わせます。
  =INDEX($A:$B,MATCH($E$2,$C:$C,0),1)=INDEX($A:$B,MATCH($E$2,$C:$C,0),2)赤字 の部分が、取得する列位置の指定になります。
 MATCH関数でC列を検索して行位置を取得します。その行位置を使って、INDEX関数でA列またはB列を取得しています。

MATCH関数とOFFSET関数を使う


  E2セルの値でC;zを検索して、一致した行のA列またはB列を取得します。MATCH関数とOFFSET関数を組み合わせます。
  =OFFSET($A$1,MATCH($E$2,$C:$C,0)-1,0)=OFFSET($A$1,MATCH($E$2,$C:$C,0)-1,1)赤字 の部分が、取得する列位置の指定になります。
 MATCH関数でC列を検索して行位置を取得します。その行位置を使って、OFFSET関数でA列またはB列を取得しています。

キー列より左側の列を取得のまとめ

INDEX関数とOFFSET関数については、どちらを使用しても大差はありません。 赤字 の部分が、列位置の指定になりますが、上記のような表の場合は、列数の指定値を考えると、INDEX関数のほうがVLOOKUPからの書き直しとしては見やすいと思います。
 出来上がりの関数については、あえて詳細な解説は省きます。一つ一つの関数を読み解いて、ご自身で納得していくことで、さらに応用力が身につくはずです。
 VLOOKUP関数、MATCH関数、INDEX関数、OFFSET関数、これらの詳しい解説については、以下のページでわかりやすく解説しています。
  徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)
 検索されるキーワードで最も多いのが、MATCH関数 INDEX関数セル範囲から、指定された行と列が交差する位置にあるセルの参照を返します。INDEX関数の書式INDEX(範囲,行番号[,列番号]) 範囲セル範囲を指定します。セル範囲が1行または1列である場合、行番号または列番号はそれぞれ省略することができます。

SUMIF関数の良くある間違い

エクセルの関数の中で最も頻繁に使われる関数と言っても過言ではないSUMIF関数ですが、間違った指定をして、合計が合わずに悩み続けて時間を浪費してしまうことあります、そういう間違いで最も多いのが、範囲と合計範囲の指定間違いです。
 まずは、SUMIF関数の確認
  SUMIF関数
 範囲の中で、指定した条件を満たすセルの値を合計します。または、範囲の中で、指定した条件を満たすセルに対応する合計範囲のセルの値を合計します。書式 SUMIF(範囲,検索条件[,合計範囲]) ※[]で囲まれている部分は省略可能です。
 範囲の中で、指定した条件を満たすセルの値を合計します。または、範囲の中で、指定した条件を満たすセルに対応する合計範囲のセルの値を合計します。
  書式SUMIF(範囲,検索条件[,合計範囲]) []で囲まれている部分は省略可能です。合計範囲を省略した場合は、範囲のセルが合計されます。
  範囲 条件によって評価するセル範囲を指定します。
  検索条件 計算の対象となるセルを定義する条件を、数値、式、セル範囲、文字列、または関数で指定します。※文字列条件、または論理記号や数学記号を含む条件は、二重引用符 ( " )で囲む必要があります。条件が数値の場合、二重引用符は不要です。※ワイルドカードが使用できます。
 合計範囲範囲で指定したセル以外のセルを加算する場合は、加算する実際のセルを指定します。合計範囲を省略すると、範囲で指定したセル(条件が適用されるセル)が加算されます。
 では、本題です。「範囲と合計範囲の指定間違い」とは、どのような状態かということですが、以下の表で説明します。
  この表で、以下のような指定をした場合に、どのような動作になるかということです。
 数式
  =SUMIF(A2:B11,"a6",D2:D11)
 ここでは、わかり易く検索値を固定で指定しています。
 つまり、本来は A列 "a6" を探して、対応する D列 の値を合計したいのですが、
 間違って、検索する範囲を A2:B11 してしまった場合です。
 ぱっと見では、なかなか気が付きません。なおかつ、 "a6" なら間違いに気が付くのですが、"a1"とか"a2"ですと、正しく合計値が求められてしまいます。
 つまり、 =SUMIF(A2:B11,"a1",D2:D11) なら 1=SUMIF(A2:B11,"a2",D2:D11) なら 2 と正しい答えになります。そして、 =SUMIF(A2:B11,"a6",D2:D11) この場合は、 17 になります。ここに至って、Excel壊れたー…と叫ぶことになります(笑)
 この場合の動作は、以下のようになっています。 =SUMIF(A2:B11,"a6",D2:E11) これと同じ結果となっています。
 SUMIF関数は、複数列の範囲と合計範囲を指定することが出来ます。もちろん、行位置・列位置の相対位置が同一のものを合計します。ですので、 =SUMIF(A2:B11,"a6",D2:D11) この結果は、 "a6" がある、 A7 B2 に対応する合計範囲 、D7 E2 の合計となり 17 となります。
 関数は一度入れてしまえば、なかなか見直すことがありません。最初に数式を入れるときに、良く指定範囲を確認しましょう。

論理式とは条件式とは(IF関数,AND関数,OR関数)

エクセルを使いこなす上で 論理式 はとても重要です。そもそも論理式とは何か、どうして論理式というのか、論理式の作り方、論理式の使い方について解説します。
 そもそも論理式という言い方が分かりずらいと思う。なぜエクセルでは論理式というのか…Microsoftのヘルプによると、
  IF関数 構文: IF (logical_test , value_if_true, [value_if_false])logical_test - A value or l ogical expression that can be evaluated as TRUE or FALSE.value_if_true - [optional] The value to return when logical_test evaluates to TRUE.value_if_false - [optional] The value to return when logical_test evaluates to FALSE.
 この logical expression を訳しているので 論理式 になったのでしょう。
 ちなみに VBAのIfステートメント は、If condition Then [statements] [Else elsestatements]このように書かれていますので、そのまま訳せば 条件式 になるでしょう。
 一般的な用語としては、論理式と条件式に特段の違いはありません。しいて言うなら、複数の条件式を論理演算子で組み合わせたものが論理式くらい 感じでしょうか。しかし、各プログラミング言語によって使い方はまちまちになります。エクセルにおいても、IF関数は論理式と書かれますが、同じように論 理式を使う場合でも、条件付き書式のように条件という言い方をします。
 では、そもそも式とは何か式とは評価された値を持ちます。論理式は、真(True)か偽(False)のどちらかの値になります。注意してもら いたいのは、真の値は1つではないことです。エクセルにおいては、偽(False)は0です。そして真(True)は0以外の数値です。 偽(False)=0真(True)<>0 になります、通常は真(True)=1ですが、0以外は全て真(True)と判定されます。
  AND関数 AND(論理式1, [論理式2], ...)すべての引数がTRUE(真)と評価された場合はTRUE(真)を返します。引数のうち一つでもFALSE(偽)と評価された場合はFALSE(偽)を返します。
  OR関数 OR(論理式1, [論理式2], ...)いずれかの引数がTRUE(真)のとき、TRUE(真)を返します。引数がすべてFALSE(偽)である場合は、FALSE(偽)を返します。
  簡単な考え方として AND関数は、各引数の値(真=1,偽=0)を掛け算します。OR関数は、各引数の値(真=1,偽=0)を足し算します。その結果が、0なら偽 (False)、0以外なら真(True)となります。関数なので、ネストが出来ます。AND(AND(…), OR(…))常に内側から判定し真(1)偽(0)の値にしていきます。
  IF関数でのAND関数の使い方 算数、国語、英語という名前のセルがあるとして
 ・算数、国語、英語の全科目が80以上の場合「合格」、以外は「不合格」=IF(算数>=80,IF(国語>=80,IF(英語& gt;=80,"合格","不合格"),"不合格"),"不合格")これをAND関数を使えば、=IF(AND(算数>=80,国語& gt;=80,英語>=80),"合格","不合格")
 ・算数、国語、英語の1科目でも80以上の場合「合格」、以外は「不合格」=IF(算数>=80,"合格",IF(国語& gt;=80,"合格",IF(英語>=80,"合格","不合格")))=IF(OR(算数>=80,国語>=80,英語& gt;=80),"合格","不合格")
 このあたりまでは、どちらでも良い感じでしょうか。
 ・算数、国語、英語の2科目以上が80以上の場合「合格」、以外は「不合格」=IF(算数>=80,IF(国語>=80,"合 格",IF(英語>=80,"合格","不合格")),IF(国語>=80,IF(英語>=80,"合格","不合格"),"不合 格"))=IF(OR(AND(算数>=80,国語>=80),AND(算数>=80,英語>=80),AND(国語& gt;=80,英語>=80)),"合格","不合格")
 このくらいになると思考の整理が大変になってくるのでAND関数OR関数が使えると大分書くのが楽になります。しかし、良く考えを整理して、論 理的思考をめぐらすと、=IF(IF(算数>=80,1,0)+IF(国語>=80,1,0)+IF(英語>=80,1,0)& gt;=2,"合格","不合格")このように書くことが出来ます。この書き方なら、>=2の部分を変更するだけで、○科目以上という条件を変更で きます。要は、条件を論理的に整理して書くのが論理式の極意です。

先頭の数値、最後の数値を取り出す

数値と文字が混在した文字列から、数値だけを取り出します、
 先頭の数値や、最後の数値だけを取り出す方法です。
  A1セル 1234abcd5678
 このA1セルから、 1234 5678 を取り出します。
  先頭の数値…1234
  =LOOKUP(10^17,LEFT(A1,COLUMN($1:$1))*1)
  COLUMN($1:$1)
 {1,2,3,4,5,6,7,8,…}
 このような配列が返されます。
  LEFT(A1,COLUMN($1:$1))
 配列となっているCOLUMN関数を引数にしているので、{1,12,123,1234,1234a,1234ab,1234abc,…}このような配列が返されます。
  LEFT(A1,COLUMN($1:$1))*1
 *1この計算をすることで、数値以外はエラー値となります。{1,12,123,1234,#VALUE,#VALUE,#VALUE,…}このような配列になります。
  LOOKUP(10^17,LEFT(A1,COLUMN($1:$1))*1)
 10^17は、100000000000000000LOOKUPは、配列から上の数値以下の最大値が取り出されます。
 最初の数値がLEFTで取り出しているので、最後の数値はRIGHTで取り出します。考え方は、全く同じです。
  最後の数値…5678
  =LOOKUP(10^17,RIGHT(A1,COLUMN($1:$1))*1)
  COLUMN($1:$1)
 {1,2,3,4,5,6,7,8,…}このような配列が返されます。
  RIGHT(A1,COLUMN($1:$1))
 配列となっているCOLUMN関数を引数にしているので、{8,78,678,5678,d5678,cd5678,bcd5678,…}
 このような配列が返されます。
  LEFT(A1,COLUMN($1:$1))*1
 *1この計算をすることで、数値以外はエラー値となります。{8,78,678,5678,#VALUE,#VALUE,#VALUE,…}このような配列になります。
  LOOKUP(10^17,LEFT(A1,COLUMN($1:$1))*1)
 10^17は、100000000000000000LOOKUPは、配列から上の数値以下の最大値が取り出されます。
 COLUMN($1:$1)、これは、ROW($A:$A)、でも同じです。要は、{1,2,3,4,5,6,7,8,…}このような配列を作 成出来ればよいです。ただし、COLUMN($1:$1)やROW($A:$A)は、配列が大きくなってしまうので、計算時間を考えれば、作成する配列の 大きさを限定した方が良いでしょう。COLUMN($A$1:$Z$1)このように、 取り出す文字列長を超える配列であればよい のです。
 また、 10^17は、結果として取り出される数値より大きければよい ので、999999999999のような定数で指定しても構いません。逆の言い方をすれば、この桁数以上の連続数値は取り出すことができません。
 最後のLOOKUPは、配列内の最大値を取り出すだけなので、MAXでも良いように思えますが、MAX自体は配列を扱えますが、このように作られた配列は扱えないようで上手くいきません。

最後の空白(や指定文字)以降の文字を取り出す

いくつかのスペースやハイフンで区切られた文字列から、
 最後のスペースやハイフン以降の文字列を取り出します。
 A1セルに、abc def ghi やabc-def- ghi これらの文字列から、 ghi を取り出します。
 以下では、見やすいように区切り文字は"-"で説明します。スペースの場合は、"-"を" "と変更してください。
  方法1=RIGHT(A1,LEN(A1)-FIND("★",SUBSTITUTE(A1,"-","★",LEN(A1)-LEN(SUBSTITUTE(A1,"-","")))))
 
または =MID(A1,FIND("★", SUBSTITUTE(A1, "-", "★",LEN(A1) - LEN(SUBSTITUTE(A1, "-", ""))))+1,256)
 考え方は、最後の区切り文字を、使用していない特殊な文字に置換して、その文字位置より後ろを取り出しています。
  LEN(A1) - LEN(SUBSTITUTE(A1, "-", "")) これは、"-"が文字列に含まれる数をになり、この例なら2になります。
  SUBSTITUTE(文字列,検索文字列,置換文字列,[置換対象]) この置換対象は、何番目を置換するかの指定をします。 SUBSTITUTE(A1, "-", "★", LEN(A1) - LEN(SUBSTITUTE(A1,"-", ""))) つまり、この例ならSUBSTITUTE(A1, "-", "★", 2)ということで、2番目の "-"を "★"に置換します。結果として、 abc-def★ghi となります。
 最後に、RIGHT関数またはMID関数で置換した文字以降を取り出します。 RIGHT(A1,LEN(A1)-FIND("★", "abc-def★ghi"))MID(A1,FIND("★", "abc-def★ghi")+1,256) MID関数の場合は、第三引数は大きめの数値を指定しておけば良いでしょう。
  方法2
 
  =SUBSTITUTE(RIGHT(SUBSTITUTE(A1,"-",REPT("-",256)),256),"-","")
 考え方は、区切り文字の1文字を大量(ここでは256個)の文字に置換して、後ろの文字を取り出すと、最後の区切り文字以降になるので、区切り文字を消せば良いという考えです。
  SUBSTITUTE(A1,"-",REPT("-",256)) この結果は、abc-def---(256個の-)---ghiとなります。
 この右側の256文字を取り出します。 RIGHT(SUBSTITUTE(A1,"-",REPT("-",256)),256) この結果は、---…---ghiとなります。
 最後に、"-"を""で置換して消します。 SUBSTITUTE("---…---ghi","-","") この結果、 ghi が取り出せています。
 ここでの 256 という数値は、適宜変更して構いません。対象の最大文字数以上なら、 50とか100 で問題ありません。
 実現する方法はいろいろと考えられるのではないかと思います。このような数式を作るときは、 パズルのつもりで楽しんで作ってみると良い かもしれません。

SUMIFの間違いによるパフォーマンスの低下について

再計算が終わらない…そんな経験をした人は多いと思います、原因はさまざまですが、まずは数式を見直してみましょう。
 単純な四則演算が遅いという事はありません、それはもうPCの問題です。時間のかかる計算としては、大量データの集計計算を多数使っている場合です。
 今回は、集計関数で良く使われる代表的関数の、、 SUMIF関数
 範囲の中で、指定した条件を満たすセルの値を合計します。または、範囲の中で、指定した条件を満たすセルに対応する合計範囲のセルの値を合計します。書式 SUMIF(範囲,検索条件[,合計範囲]) ※[]で囲まれている部分は省略可能です。
 について検証してみました。
 以下の表で検証してみました。
  データは、10,000行数式もL列に10,000行 入れます。入れる数式によって、再計算の時間を測定してみました。
 時間計測するために、以下のマクロを使いました。
Application.Calculation = xlCalculationManualRange("L2:L10001") = "☆ここに数式を入れます☆"Debug.Print TimerApplication.Calculation = xlCalculationAutomaticDebug.Print Timer
・手動計算(自動計算をOFF)・数式を1万行分入れる・時刻表示←計算開始時刻・自動計算・時刻表示←計算終了時刻
 使ったPCは、Corei5なので、ごくごく一般的なPCです。以下の実測時間は、時間 = 計算終了時刻 - 計算開始時刻これで計算した概数結果を記載しています。
 まずは、良くある間違ったSUMIFから
  ・=SUMIF(A:J,K2,J:J)
 これ間違ってますよね、計算はしてくれますが、明らかに範囲指定の間違いです。 VLOOKUP関数
 検索値で、セル範囲の最初の列を検索し、その範囲の同じ行にある任意のセルから値を返します。Vは縦方向(vertical)の意味です。つま り縦方向の表に対して使用します。VLOOKUP関数の書式 =VLOOKUP(検索値,範囲,列番号,検索方法) 検索値 表または範囲の左端の列で検索する値を指定します。
 と勘違いして、このような入力をしてしまう事が結構多く見受けられます。エラーになってくれれば良いのですが、正しく計算されてしまうから困ったものです。
 結果は、 9.6秒 かなりかかっています。
 では、SUMIF関数を正しく指定して計測してみます。
  ・=SUMIF(A:A,K2,J:J)
 一般的なSUMIF関数の指定です。範囲を列全体にしています。結果は、 8.3秒 間違った前記よりは少しは改善されていますが、とりたてて強調するほどの差は感じられません。
 入力する度に10秒も待たされてはたまったものではありません。手動計算にしてから入力し、入力し終えたら自動計算にする良くやることですが、それにしても、たかだか1万行程度で、こんなにかかってしまうものでしょうか。
 メンテナンス性等はひとまず置いといて、再計算を少しでも早くするためには、範囲を限定します。
  ・=SUMIF(A$2:A$10001,K2,J$2:J$10001)
 結果は、 8.3秒 範囲指定をしても変わりません。Excelは良くできていますね、データの無い範囲では余分な処理はしていないという事になります。メンテナンス性を考えると、範囲指定はSUMIFにおいては無駄だという事になります。
 以上の結果ですと、最初の間違ったSUMIFでも、集計があっているのだから大した問題が無いような…
 検証を進めます。
  =SUMIF(A:J,K2,J:J) この数式を入れた後で、シートを少々いじってみると、 とても重い のが分かります。何も入っていない空白セルで、 「Delete」を押しただけで再計算 が走ります。
 対して =SUMIF(A:A,K2,J:J) この数式を入れた後は、 SUMIFとは無関係のセル であれば、セル値を変更しても 再計算が走りません
 以下のマクロで検証してみました。
Application.Calculation = xlCalculationManualRange("L2:L10001") = "☆ここに数式を入れます☆"Debug.Print TimerApplication.Calculation = xlCalculationAutomaticDebug.Print TimerApplication.Calculation = xlCalculationAutomaticDebug.Print Timer
・=SUMIF(A:J,K2,J:J)
 結果は、 9.6秒9.6秒 2回目の計算も1回目の計算と同じだけ時間がかかっています。毎回、全て再計算されてしまっている感じです。
  ・=SUMIF(A:A,K2,J:J)
 結果は、 8.3秒0.0秒 2回目の計算が行われていません。1回目の計算で、計算済として判定されて再計算を行っていないという事です。
 そうなんです。ここが問題なのです。 間違ったSUMIF (=SUMIF(A:J,K2,J:J))では、SUMIFの計算自体も遅くなってしまいますが、それ以上に 再計算が無関係のセル値変更でも行われてしまう というところにあります。確認してみたところ、関係のない別のシートの変更でも再計算が走ってしまいます。
 番外として
  ・SUMPRODUCT関数
 引数として指定した配列の対応する要素間の積をまず計算し、さらにその和を返します。書式 SUMPRODUCT(配列1,[配列2],[配列3],...) 配列1 計算の対象となる要素を含む最初の配列引数を指定します。配列2,配列3,... 省略可能です。
 Excel2003まではSUMIFS関数がなかったので、複数条件の集計に、SUMPRODUCT関数を使っている場合が多くありました。そ のような目的のSUMPRODUCT関数は、直ちにSUMIFS関数やCOUNTIFS関数に書き換えて下さい。SUMPRODUCT関数は計算が極めて 遅いです。これは配列関数全体に言える事です。特に、SUMPRODUCTの範囲を列指定などにしてしまったら…今回の例の1万件でも、いつまでたっても 再計算が終わらないという状態になってしまいます。ちなみに、今回のデータで、 =SUMPRODUCT((A$2:A$10001=K2)*(J$2:J$10001))12.1秒=SUMPRODUCT((A:A=K2)*(J:J)) 待てど暮らせど終わりませんでしたので、 計測中止 してExcelを切りました。。
 ここでは、極端に1万行のデータを1万行で集計して検証しましたが、数千行程度の集計をしているExcelで、どこかをいじるたびに再計算が走る(一瞬待ちになる)ようなら、入っている数式を再度確認してみることをお勧めします。

数値範囲で表検索するVLOOKUP近似一致

数値範囲で指定されている表を検索する場合は、VLOOKUP関数の近似一致を使います。
 ○以上~△未満、○超~△以下、このような数値の範囲で示されている表を検索する場合は、VLOOKUPの近似一致を使う事で検索できます。
 具体的に良くあるものとして、所得税の税率があります。

表をエクセルで扱えるように調整する

課税される所得金額 税率 控除額
195万円以下 5% 0円
195万円を超え 330万円以下 10% 97,500円
330万円を超え 695万円以下 20% 427,500円
695万円を超え 900万円以下 23% 636,000円
900万円を超え 1,800万円以下 33% 1,536,000円
1,800万円を超え 4,000万円以下 40% 2,796,000円
4,000万円超 45% 4,796,000円

 所得税の累進課税の税率と控除額です。見たことのある人も多いと思います。
 所得金額が500万円なら、「330万円を超え 695万円以下」なので、税率20%、控除額427,500円となります。
 エクセルのシートで、所得金額を入力したら税率と控除額が自動的に表示されるようにVLOOKUP関数を入れたい場合を考えます。
 しかし、上の表ではエクセルの関数が使えません。エクセルの関数で使うには、「万円」といった表記は正しい数値として認識されません。「超え 以下」は、別々の数値なので、別々のセルにする必要があります。
  このように、数値として正しく入れ直し、 「超え 以下」を2列に分けています。B列はVLOOKUP関数では使用しませんが、このようにした方が見た感じでわかり易いだろうという事で入れています。金額 なので整数という事で、「超え」の部分は+1することで対応しています。
 これが出来れば、後はVLOOKUP関数で自動的に税率と控除額を取得することが出来ます。

VLOOKUP関数の近似一致


  F1セルに所得金額を入れたら、G1セルに税率、H1セルに控除額が表示されるようにしています。
  G1セルの数式
  =VLOOKUP(F2,A2:D8,3,TRUE)
  H1の数式
  =VLOOKUP(F2,A2:D8,4,TRUE)
  VLOOKUPの書式
  =VLOOKUP(検索値,範囲,列番号,検索方法)
 第4引数の検索方法でTRUE(1でも良い)にするのが近似一致になります。
 
  近似一致を使う場合は、検索する一番左の列は、昇順に並べられている必要があります。昇順に並んでいないと、正しく検索されません。

VLOOKUP近似一致がどのように値を探しているか

検索値と完全に一致する値、または、その近似値が返されます。完全に一致する値が見つからない場合は、検索値未満の最大値が使用されます。少し詳しく説明すると、範囲の先頭列(一番左の列)を上から下に向かって順に検索していきます。
 ・検索値と一致している・検索値を超える値が出現・表の最下端に達した時
 いずれかの状態になった時点の行が採用されます。検索値を3,000,000円としてみた時、4行目の3,000,001の値が、「検索値を超 える値」となるので、この行になります。また、40,000,001以上の値を指定した時は、最終行の8行目が採用されることになります。

VLOOKUP近似一致の表を作成する場合の注意点

VLOOKUP関数の性質をしっかりと把握して作成します。
 ・検索値と一致している・検索値を超える値が出現・表の最下端に達した時
 特に注意点としては、一致している数値があると、その行になってしまうので、○以上~△未満この場合は、以上なので○と同値を、範囲の先頭列(一番左の列)に設定します。
 0以上~100未満100以上~200未満200以上~300未満300以上この場合は、
  以上の数値をそのまま指定すれば良いです。
 ○超~△以下この場合は、超なので○よりわずかに大きい数値(整数なら+1、少数なら+0.001等)を、範囲の先頭列(一番左の列)に設定します。前述の所得税の表がこれに該当します。

VLOOKUP関数に関する参考ページ

VLOOKUP関数の基本的な使い方については、 VLOOKUP関数(範囲の左端列で値検索し対応セル値)
 検索値で、セル範囲の最初の列を検索し、その範囲の同じ行にある任意のセルから値を返します。Vは縦方向(vertical)の意味です。つま り縦方向の表に対して使用します。VLOOKUP関数の書式 =VLOOKUP(検索値,範囲,列番号,検索方法) 検索値 表または範囲の左端の列で検索する値を指定します。
 こちらを参考にしてください。
 以下のページも参考にしてください。 VLOOKUPを他の関数でやる方法
 VLOOKUPは便利な関数ですが、以下のような問題点がある場合は、これを使うことができません 問題点 1.検索列より左側の列を取り出す場合 2.検索値が255文字を超える時 そこで、他の関数で、これを実現する方法を検討します。方法1 =INDEX(範囲,MATCH(検索値,検索範囲,0),列番号) 方法2 {=IF(MIN(IF(検索範囲=検索値,
  徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)
 検索されるキーワードで最も多いのが、MATCH関数 INDEX関数セル範囲から、指定された行と列が交差する位置にあるセルの参照を返します。INDEX関数の書式INDEX(範囲,行番号[,列番号]) 範囲セル範囲を指定します。セル範囲が1行または1列である場合、行番号または列番号はそれぞれ省略することができます。
  【奥義】大量データでの高速VLOOKUP
 大量データからのVLOOKUPを大量行に設定すると再計算がなかなか終わらなくなります… そんな経験したことがある人は、少なからずいると思います、そんな場合に、高速にVLOOKUPを実行する方法です。以下の表で説明します。※ Sheet1は、A列で昇順に並び変えておきます。
  ワイルドカードが使える関数
 SUMIF COUNTIF SEARCH MATCH HLOOKUP VLOOKUP データベース関数を除く、2003までの関数です。2007以降なら、SUMIFS COUNTIFS AVERAGEIF AVERAGEIFS これらでも使えます。

百万単位で表示(百万未満は小数表示、小数位置も合わせる)

エクセル挑戦問題

表示形式を使い、数値を百万単位で表示して下さい。ただし、百万未満の場合は、百万未満を小数以下2位(万単位)まで表示し、百万以上と百万未満の小数点位置を合わせて下さい。
 つまり、以下の図のようにして下さい。
 

エクセル挑戦問題解答

では解答へ進んでください。
  解答はこちら、「百万単位で表示解答」

空白以外のセルの個数(計算結果が空白を除く)

エクセル挑戦問題

範囲内の空白以外のセルの個数を数える数式を作って下さい。ただし、計算結果が空白のセルはカウントしない事、つまり、IF関数等の結果が、 "" の場合は対象外にすると言う事になります。
 ※セル範囲はA列全てを指定する事、つまりデータ範囲は決まっていない状態です。
 つまり、以下の図の場合、
  結果は、 5 となるようにして下さい。

エクセル挑戦問題解答

では解答へ進んでください。
  解答はこちら、「空白以外のセルの個数解答」

指定行数おきに指定行数ずつ色を変更する

エクセル挑戦問題

指定行数おきに、指定行数ずつに交互色を付けて下さい。
 以下の図のように、B2セルに数値をいれることで、自動的に、その行数毎に交互色が付くようにして下さい。
  上図では、 3 の場合になります。B2セルに 4 と入れると、6~9行に色が付くようにします。
 

エクセル挑戦問題解答

では解答へ進んでください。
  解答はこちら、「指定行数おきに指定行数ずつ色を変更する解答」

複数系列の積み上げ棒グラフ

エクセル挑戦問題

以下の表から、以下の完成グラフ作成して下さい。
 元表は、グラフを作成しやすいように、表のレイアウトを変更してからグラフを作成しましょう。
  元表
年月 売上 固定費 変動費
2012/1 7200 2800 4100
2012/2 9300 2800 4900
2012/3 7500 2800 4000
2012/4 6600 2800 3100
2012/5 7800 2800 3100
2012/6 8700 2800 4700
2012/7 8000 3200 3700
2012/8 7200 3200 3400
2012/9 9000 3200 3300
2012/10 9400 3200 5000
2012/11 9900 3200 3000
2012/12 8100 3200 4400

  完成グラフ
  タイトルがヒントになっています。複数系列の積み上げ棒グラフこれを作成する為に、表を複数系列のレイアウトに変更します。

エクセル挑戦問題解答

では解答へ進んでください。
  解答はこちら、「複数系列の積み上げ棒グラフ解答」

億や万の表記を数値化する

エクセル挑戦問題

以下のように、億や万の表記がある文字を、数値化して下さい。
 一つの数式では、とてつもなく長くなるので、作業列(計算セル)を使って、途中結果を出しながらが良いでしょう。
21億 2,100,000,000
3億2000万 320,000,000
3億500万 305,000,000
8000万 80,000,000
7600万5000 76,005,000

エクセル挑戦問題解答

では解答へ進んでください。
  解答はこちら、「億や万の表記を数値化する解答」

URLからファイル名を取得(一番右の指定文字以降を抽出)

エクセル挑戦問題

URLからファイル名を取り出してください、
 A1セルに、https://excel-ubara.com/excel4/ EXCEL706.html
 ここから、 EXCEL706.html を取り出してください。もちろん関数で取り出します。最後の/以降の文字を取り出すという事になります。
 最後の/って…
 発想の問題です。 最後(一番右)の/の位置 さえ分かれば、MID関数でも、RIGHT関数でも取り出せます。つまり、最後(一番右)の/の位置を見つければ良いのです。
 ある文字について、何らかの処理を行う関数は、FIND関数SEARCH関数SUBSTITUTE関数REPLACE関数等々、これらを駆使してください。

エクセル挑戦問題解答

では解答へ進んでください。
  解答はこちら、「URLからファイル名を取得解答」

スピルを使って日付の一覧を出力

エクセル挑戦問題

2019年にOffice365のExcelに実装された革新的な機能としてスピルがあります。スピルを上手に使うと、今まで多くの作業列を使 う必要があったり、とても難しい配列数式にしなければならなかったものが、かなり簡略化された数式で実現することができます。スピルの詳細については、以 下を参照してください。
  スピルについて| エクセル入門
 2019年にOffice365のExcelに実装された革新的な機能としてスピルがあります。スピルとは何か、その概要について説明します。以下で、「従来」または「旧」と呼んでいるのはスピルしないエクセルを指しています。
  問題1
 2020年の毎月の月末日の一覧を出力してください。
  年度の指定は、セル参照でも数式内固定値指定で構いません。回答例は数式内固定になります。
  問題2
 2020年の13日の金曜日の一覧を出力してください。
  年度の指定は、セル参照でも数式内固定値指定で構いません。回答例は数式内固定になります。
 どちらの問題も、スピルを使う事で1つの数式で実現できます。いろいろな数式の作り方があるはずですが、以下のような考え方をしてみてはどうで しょうか。、問題1は、DATE関数をしっかり理解してその特性を使いましょう。問題2は、スピル関数のなかで配列を絞り込める関数がありますよね。

エクセル挑戦問題解答

では解答へ進んでください。
  解答はこちら、「スピルを使って日付の一覧を出力解答」

エクセル挑戦問題の解答

百万単位で表示(百万未満は小数表示、小数位置も合わせる)解答
 エクセル挑戦問題回答ページです。エクセル挑戦問題 表示形式を使い、数値を百万単位で表示して下さい。ただし、百万未満の場合は、百万未満を小数以下2位(万単位)まで表示し、百万以上と百万未満の小数点位置を合わせて下さい。
  空白以外のセルの個数(計算結果が空白を除く)解答
 エクセル挑戦問題回答ページです。エクセル挑戦問題 範囲内の空白以外のセルの個数を数える数式を作って下さい。ただし、計算結果が空白のセルはカウントしない事、つまり、IF関数等の結果が、""の場合は対象外にすると言う事になります。
  指定行数おきに指定行数ずつ色を変更する解答
 エクセル挑戦問題回答ページです。エクセル挑戦問題 指定行数おきに、指定行数ずつに交互色を付けて下さい。以下の図のように、B2セルに数値をいれることで、自動的に、その行数毎に交互色が付くようにして下さい。
  複数系列の積み上げ棒グラフ解答
 エクセル挑戦問題回答ページです。エクセル挑戦問題 以下の表から、以下の完成グラフ作成して下さい。元表は、グラフを作成しやすいように、表のレイアウトを変更してからグラフを作成しましょう。元表 完成グラフ タイトルがヒントになっています。
  億や万の表記を数値化する解答
 エクセル挑戦問題回答ページです。エクセル挑戦問題 以下のように、億や万の表記がある文字を、数値化して下さい。一つの数式では、とてつもなく長くなるので、作業列(計算セル)を使って、途中結果を出しながらが良いでしょう。
  URLからファイル名を取得(一番右の指定文字以降を抽出)解答
 エクセル挑戦問題回答ページです。エクセル挑戦問題 URLからファイル名を取り出してください、A1セルに、https://excel-ubara.com/excel4/EXCEL706.html ここから、EXCEL706.html を取り出してください。
 
inserted by FC2 system