Excel関数一覧表:195

エクセルで一番悩むところが関数の使い方です。 ここではエクセル関数を
種類別一覧表
アルファベット順
機能別一覧表
にまとめています。

【種類別エクセル関数一覧表】 種類別Topへ アルファベット別Topへ 機能別Topへ

合計・平均の関数カウントの関数四捨五入など最大最小など
  1. AVERAGE
  2. AVERAGEA
  3. AVERAGEIF
  4. AVERAGEIFS
  5. DSUM
  6. MEDIAN
  7. MODE
  8. MODE.MULT
  9. MODE.SNGL
  10. SUM
  11. SUMIF
  12. SUMIFS
  13. SUBTOTAL
  14. SUMPRODUCT
  15. TRIMMEAN
  16. 名前を付ける
  17. ワイルドカード
  1. COUNT
  2. COUNTA
  3. COUNTBLANK
  4. COUNTIF
  5. COUNTIFS
  6. DCOUNT
  7. DCOUNTA
  8. FREQUENCY
  1. CEILING
  2. CEILING.MATH
  3. CEILING.PRECISE 2010
  4. ISO.CEILING
  5. EVEN
  6. FIXED
  7. FLOOR
  8. FLOOR.MATH
  9. FLOOR.PRECISE
  10. INT
  11. MOD
  12. MROUND
  13. ODD
  14. QUOTIENT
  15. ROUND
  16. ROUNDUP
  17. ROUNDDOWN
  18. TRUNC
  1. LARGE
  2. MAX
  3. MAXIFS
  4. MIN
  5. MINIFS
  6. RANK
  7. RANK.AVG
  8. RANK.EQ
  9. SMALL
日付の関数時刻の関数文字列の操作1文字列の操作2
  1. DATE
  2. DATEDIF
  3. DATESTRING
  4. DATEVALUE
  5. DAY
  6. DAYS
  7. EDATE
  8. EOMONTH
  9. ISOWEEKNUM
  10. MONTH
  11. NETWORKDAYS
  12. NETWORKDAYS.INTL
  13. NOW()
  14. TODAY()
  15. WEEKDAY
  16. WEEKDAY
  17. WEEKNUM
  18. WEEKNUM
  19. WORKDAY
  20. WORKDAY.INTL
  21. YEAR
  1. HOUR
  2. MINUTE
  3. SECOND
  4. TIME
  5. TIMEVALUE
  6. 時間の合計
  1. ASC
  2. FIND
  3. JIS
  4. LEFT
  5. LEN
  6. LENB
  7. LOWER
  8. MID
  9. NUMBERSTRING
  10. PHONETIC
  11. PROPER
  12. RIGHT
  13. SEARCH
  14. UPPER
  1. CHAR
  2. CLEAN
  3. CODE
  4. CONCATENATE
  5. CONCAT
  6. DOLLAR
  7. EXACT
  8. REPLACE
  9. REPT
  10. SUBSTITUTE
  11. TEXT
  12. TEXTJOIN
  13. TRIM
  14. YEN
  15. (演算子)
検索/行列の関数IF関数&IS関数三角関数・数学データベース関数
  1. ADDRESS
  2. CHOOSE
  3. COLUMN・COLUMNS
  4. FORMULATEXT
  5. GETPIVOTDATA
  6. HLOOKUP
  7. HYPERLINK
  8. INDEX
  9. INDIRECT
  10. LOOKUP
  11. MATCH
  12. OFFSET
  13. ROW・ROWS
  14. TRANSPOSE
  15. TYPE
  16. SWITCH 365
  17. VLOOKUP
  1. EXACT
  2. IF
  3. AND
  4. OR
  5. IFS
  6. ISBLANK
  7. ISERR
  8. ISERROR
  9. ISNA
  10. ISEVEN
  11. ISFORMULA
  12. ISLOGICAL
  13. ISNONTEXT
  14. ISNUMBER
  15. ISODD
  16. ISTEXT
  17. N
  18. NA

  1. ABS
  2. AGGREGATE
  3. ARABIC 
  4. BASE 
  5. COS
  6. DEGREES
  7. EXP
  8. FACT
  9. LN
  10. LOG
  11. LOG10
  12. PI()
  13. POWER
  14. PRODUCT
  15. RADIANS
  16. RAND
  17. RANDBETWEEN
  18. ROMAN
  19. SIGN
  20. SIN
  21. SQRT
  22. TAN
  23. TEXT
  24. VALUE
  1. DAVERAGE
  2. DCOUNT
  3. DCOUNTA
  4. DGET
  5. DMAX
  6. DMIN
  7. DSUM
財務関数エンジニアリング関数情報関数論理関数
  1. PMT
  2. PV
  3. FV
  4. RATE
  5. NPER
  1. CONVERT
  2. DELTA
  3. GESTEP
  4. DEC2BIN
  5. BIN2DEC
  6. BITAND
  7. BITOR
  8. BITXOR
  9. BITLSHIFT
  10. BITRSHIFT
  11. CONVERT関数の変換前後単位のバージョンによる違い
  1. CELL
  2. INFO
  3. ISFORMULA
  1. AND
  2. IFERROR
  3. IFNA  2013
  4. OR
  5. NOT
  6. XOR
  1. エラー値とその対策
    1. ERROR.TYPE
  2. 関数の前に _xlfn. と表示される
   

【アルファベット順エクセル関数一覧表   

ABCD
  1. ABS
  2. ADDRESS
  3. AGGREGATE 
  4. AND(IF関数との組み合わせ)
  5. AND
  6. ARABIC 
  7. ASC
  8. AVERAGE
  9. AVERAGEA
  10. AVERAGEIF
  11. AVERAGEIFS
  1. BASE 
  2. BIN2DEC
  3. BITAND
  4. BITOR
  5. BITXOR
  6. BITLSHIFT
  7. BITRSHIFT
  1. CEILING
  2. CEILING.MATH
  3. CEILING.PRECISE
  4. CELL
  5. CHAR
  6. CHOOSE
  7. CLEAN
  8. COLUMN・COLUMNS
  9. CODE
  10. CONCAT
  11. CONCATENATE
  12. CONVERT
  13. COS
  14. COUNT
  15. COUNTA
  16. COUNTBLANK
  17. COUNTIF
  18. COUNTIFS
  1. DATE
  2. DATEDIF
  3. DATESTRING
  4. DATEVALUE
  5. DAVERAGE
  6. DAY
  7. DAYS
  8. DCOUNT
  9. DCOUNTA
  10. DEC2BIN
  11. DEGREES
  12. DELTA
  13. DGET
  14. DMAX
  15. DMIN
  16. DOLLAR
  17. DSUM
EFGH
  1. EDATE
  2. EOMONTH
  3. ERROR.TYPE
  4. EVEN
  5. EXACT
  1. FACT
  2. FIND
  3. FIXED
  4. FLOOR
  5. FLOOR.MATH
  6. FLOOR.PRECISE
  7. FORMULATEXT
  8. FREQUENCY
  9. FV
  1. GESTEP
  2. GETPIVOTDATA
  1. HLOOKUP
  2. HOUR
  3. HYPERLINK
IJKL
  1. IF
  2. IFS
  3. IFERROR
  4. IFNA 
  5. INDEX
  6. INDIRECT
  7. INFO
  8. INT
  9. ISBLANK
  10. ISERR
  11. ISERROR
  12. ISEVEN
  13. ISFORMULA
  14. ISLOGICAL
  15. ISNA
  16. ISNONTEXT
  17. ISNUMBER
  18. ISODD
  19. ISOWEEKNUM
  20. ISTEXT
  21. ISO.CEILING
  1. JIS

  1. LARGE
  2. LEFT
  3. LEN
  4. LENB
  5. LN
  6. LOG
  7. LOG10
  8. LOOKUP
  9. LOWER
MNOP
  1. MATCH
  2. MAX
  3. MAXIFS
  4. MEDIAN
  5. MID
  6. MIN
  7. MINIFS
  8. MINUTE
  9. MOD
  10. MODE
  11. MODE.MULT
  12. MODE.SNGL
  13. MONTH
  14. MROUND
  15. EXP
  1. N
  2. NA
  3. NETWORKDAYS
  4. NETWORKDAYS.INTL
  5. NOT
  6. NOW()
  7. NPER
  8. NUMBERSTRING
  1. ODD
  2. OFFSET
  3. OR(IF関数との組み合わせ)
  4. OR
  1. PHONETIC
  2. PI()
  3. PMT
  4. POWER
  5. PRODUCT
  6. PROPER
  7. FV
QRST
  1. QUOTIENT

  1. RADIANS
  2. RAND
  3. RANDBETWEEN
  4. RANK
  5. RANK.AVG
  6. RANK.EQ
  7. RATE
  8. REPLACE
  9. REPT
  10. RIGHT
  11. ROMAN
  12. ROUND
  13. ROUNDDOWN
  14. ROUNDUP
  15. ROW・ROWS
  1. SEARCH
  2. SECOND
  3. SIGN
  4. SIN
  5. SMALL
  6. SQRT
  7. SUBSTITUTE
  8. SUBTOTAL
  9. SUM
  10. SUMIF
  11. SUMIFS
  12. SUMPRODUCT
  13. SWITCH 365
  1. TAN
  2. TEXT
  3. TEXTJOIN
  4. TIME
  5. TIMEVALUE
  6. TODAY()
  7. TRANSPOSE
  8. TRIM
  9. TRIMMEAN
  10. TRUNC
  11. TYPE
UVWX
  1. UPPER
  1. VALUE
  2. VLOOKUP
  1. WEEKDAY
  2. WEEKDAY
  3. WEEKNUM
  4. WEEKNUM
  5. WORKDAY
  6. WORKDAY.INTL
  1. XOR
YZその他
  1. YEAR
  2. YEN

  1. (演算子)
  2. * ?(ワイルドカード文字)
  3. エラー値とその対策
  4. 関数の前に _xlfn. と表示される

【機能別エクセル関数一覧表】

機 能関 数
数値の計算
合計SUM  SUBTOTAL  SUMPRODUCT
 条件付きで合計する SUMIF SUMIFS 2007  DSUM  AGGREGATE
平均値AVERAGE  AVERAGEA
 条件付きで平均する  AVERAGEIF 2007   AVERAGEIFS 2007  DAVERAGE
中央値 MEDIAN
最頻値MODE MODE.MULT MODE.SNGL 2010
セルを数える COUNT   COUNTA   COUNTBLANK
 条件付きでセルを数える COUNTIF  COUNTIFS  DCOUNT  DCOUNTA  FREQUENCY(度数分布) SUMPRODUCT
四捨五入 ROUND   MROUND   FIXED
切り上げ ROUNDUP   CEILING   EVEN(偶数に)  ODD(奇数に)
切り捨て ROUNDDOWN  FLOOR  INT  TRUNC←結果の違いには注意が必要
最大値 MAX   LARGE(大きい方から)
最小値 MIN SMALL(小さい方から)
順位 RANK RANK.EQ RANK.AVG 2010
除算の商と余り QUOTIENT  MOD
PRODUCT
絶対値 ABS
度・ラジアン RADIANS  DEGREES
三角関数 SIN  COS  TAN
乱数 RAND  RANDBETWEEN
文字列の計算
文字の長さ LEN   LENB
文字を取り出す LEFT   MID RIGHT   PHONETIC(ふりがな)
文字を探す/比較する FIND   SEARCH  EXACT
文字種を変換 ASC  JIS UPPER   LOWER PROPER NUMBERSTRING
文字を取り除く CLEAN   TRIM
文字を置き換える SUBSTITUTE    REPLACE
文字をつなぐ (演算子)   CONCATENATE
数値を文字列に変える TEXT
文字列を繰り返し表示する REPT
文字コード CODE  CHAR UNICODE UNICHAR
検索/行列の関数
一致した値を返す LOOKUP  VLOOKUP  HLOOKUP  INDEX  MATCH  CHOOSE
セル位置を返す ROW・ROWS  COLUMN・COLUMNS OFFSET  INDIRECT  TRANSPOSE   ADDRESS
他のセル位置へ移動するHYPERLINK
セルを参照するINDIRECT  ADDRESS
行と列を入れ替える TRANSPOSE
日付/時刻の関数
現在の日付/時刻 TODAY()  NOW()
年月日を取り出す YEAR  MONTH DAY
時分秒を取り出す HOUR  MINUTE SECOND
シリアル値を返す DATE  DATEVALUE  TIME  TIMEVALUE
文字列を返す DATESTRING  TEXT
曜日を求める WEEKDAY  WEEKDAY 2010  TEXT
稼働日数 WORKDAY  NETWORKDAYS  WORKDAY.INTL 2010  NETWORKDAYS.INTL
期間の年・月・日数 DATEDIF
月末・何ヶ月後・数日後 EOMONTH  EDATE
週番号 WEEKNUM  WEEKNUM 2010  ISOWEEKNUM 2013
セルの情報の関数
セルの内容を調べる CELL  INFO  ISBLANK  ISERR  ISERROR
ISEVEN  ISFORMULA 2013  ISLOGICAL  ISNONTEXT  ISNUMBER  ISODD
数式を表示する FORMOLATEXT 2013
エラー処理の関数
エラー処理に使う関数 IF  IFERROR IFNA 2013
ISERR ISERROR エラー値とその対策

数学/三角関数の使い方

絶対値(ABS関数) 正負の調査(SIGN関数)
円周率PI()  角度(RADIANS関数,DEGREES関数)  三角関数(SIN,COS, TAN)
平方根(SQRT関数) べき乗(POWER関数) 乱数(RAND関数)
階乗(FACT関数) BASE関数 積(PRODUCT関数)

数値の絶対値を返します アブソルート
=ABS(数値)

数値の正負を調べます サイン

=SIGN(数値)
数値が正の数のときは 1、0 のときは 0、負の数のときは -1 となります。

円周率πを返す パイ

=PI()
 円周率3.14159265358979 を返します。この数値の精度は 15 桁です。

角度(度数)をラジアンに変換する
 ラジアン
=RADIANS(角度)

ラジアンを度数に変換する
 ディグリーズ
=DEGREES(ラジアン)

角度のsinを返す
 サイン
=SIN(ラジアン)

角度のcosを返す
 コサイン
=COS(ラジアン)

角度のtanを返す
 タンジェント
=TAN(ラジアン)

sin,cosカーブを書いてみます

  1. A2セルに「0」と入力します。
  2. A2を選択した状態で[ホーム]タブの「編集」グループの[フィル]→[連続データの作成]を選択。
    Exel2003以前は【編集】→【フィル】→【連続データ】を選択。

    • 範囲:「列」にチェックを付けます。
      増分値:「1」 停止値「700」と入力します。
      【OK】ボタンをクリックすると、A2:A702に0〜700の数値が入力できます。
  3. 元データをシートで計算して表示します。
    • B2に =SIN(RADIANS(A2)) C2に =COS(RADIANS(A2)) と入力します。
    • B2:C2を選択した状態で、フィルハンドルをダブルクリックすると、B2:C702まで数式が入力され、sin(0)〜sin(700) と cos(0)〜cos(700)の値が求められます。
  4. Excel2010では[挿入]タブのグラフグループにある[散布図]→[散布図(平滑線)]を作成すると下図のようになります。
    Excel2003以前では、グラフウィザードで散布図を選択して描きます。


    • Excel2003以前では、データ系列の書式設定で「マーカー」は「なし」としています。

直角三角形を使った三角関数の概念

平方根を返す   スクエア
=SQRT(数値)
数値に負の数を指定すると、エラー値 #NUM! が返されます。

べき乗を返す   パワー
=POWER(数値,指数)


積を返す   プロダクト
=PRODUCT(数値1,数値2)

eのべき乗を返す   イクスポネンシャル
=EXP(数値)

指定された数を底とする数値の対数を返す   ログ
=LOG(数値,底)

10を底とする数値の対数を返す   ログ テン
=LOG10(数値)

自然対数を返す   ログ ナチュラル(ロン)
=LN(数値)

指定された基数 (底) のテキスト表現に、数値を変換する    ベース
=BASE(数値, 基数 [Min_length])
 Excel2013で追加された関数です。

乱数を返す   ランド(ランダム)
=RAND()
0以上で1より小さい乱数を発生させます。
ワークシートが再計算されるたびに、新しい乱数が返されます。

指定範囲の乱数を返す   ランド ビトウィーン(ランダム ビトウィーン)
=RANDBETWEEN(最小値,最大値)
指定された範囲で一様に分布する整数の乱数を返します
エラー値 #NAME? が返される場合は、分析ツール アドインを組み込む必要があります。

階乗を返す   ファクトリアル
=FACT(数値)

ADDRESS関数の使い方

  • 行番号と列番号を指定してADDRESS関数でセルの参照を文字列で返します。
    ADDRESS関数はセル番地を返しますので、セルの値を求めるときはINDIRCT関数と組み合わせて使います。

 アドレス
=ADDRESS(行番号,列番号 [,参照の型,参照形式,シート名])

  • この関数はセルの位置を返すことができます。つまり、セル番地を返します。
    さらに、そのセル番地のセルの値を返すにはINDIRECT関数との組み合わせにする必要があります。
  • 行番号: セル参照に使用する行番号を指定します。
  • 列番号: セル参照に使用する列番号を指定します。
  • 参照の型: セル参照を絶対参照にするか相対参照にするかを指定します。
    • 1 または省略 :絶対参照
    • 2:行は絶対参照、列は相対参照
    • 3:行は相対参照、列は絶対参照
    • 4:相対参照
  • 参照形式:セル参照を A1 形式にするか R1C1 形式にするかを指定します。
    • TRUEまたは省略:A1形式のセル参照
    • FALSE :R1C1形式のセル参照
  • シート名:外部参照として使用するワークシートの名前を文字列で指定します。
    この引数を省略すると、シート名は返されません。

  • 【問題1】ADDRESS関数を使って運賃を求めなさい。

    • BCDE
      2運賃表
      3東京名古屋大阪
      4鹿児島50,00040,00035,000
      5宮崎45,00035,00030,000
      6熊本40,00030,00025,000
      7福岡30,00020,00015,000
      8
      9到着地名古屋
      10出発地熊本
      11運賃は30,000
  • 【解答1例】

    • 条件に合うセルの行番号、列番号を求めるためにMATCH関数の検索範囲をそれぞれB1,A3からとしています
    • ADDRESS関数ではセル参照を返しますので、INDIRECT関数でセルの値を返すようにします。
      数式は =INDIRECT(ADDRESS(MATCH(C10,B1:B7,0),MATCH(C9,A3:E3,0))) としました。
      数式を分解すると以下のようになります。
      • MATCH(C10,B1:B7,0):C10の値と同じ値がB1:B7のどこにあるかを探します。この例では「6」となります。
      • MATCH(C9,A3:E3,0):C9の値と同じ値がA3:E3のどこにあるかを探します。この例では「4」となります。
      • ADDRESS(6,4)となるので、「$D$6」となります。
        ADDRESS関数の参照の型、参照形式を省略しているので、A1形式の絶対参照のセル番地が返されます。
      • よって、INDIRECT($D$6)でD6セルの値「30,000」が返されます。
    • BCDE
      2運賃表
      3東京名古屋大阪
      4鹿児島50,00040,00035,000
      5宮崎45,00035,00030,000
      6熊本40,00030,00025,000
      7福岡30,00020,00015,000
      8
      9到着地名古屋
      10出発地熊本
      11運賃は=INDIRECT(ADDRESS(MATCH(C10,B1:B7,0),MATCH(C9,A3:E3,0)))
    • なお、ほかの関数で数式を作成することもできます。
      例えば、 =INDEX(C4:E7,MATCH(C10,B4:B7,0),MATCH(C9,C3:E3,0)) といった数式で求めることができます。
      この数式での MATCH関数の引数はB4:B7 と C3:E3 といった具合にADDRESS関数の場合とは異なりますのでご注意ください。

  • 【問題2】A列の最下行の値をC1セルに求めなさい
  • 【解答2例】

    • ADDRESS関数でセル位置を求め、INDIRECT関数と組み合わせてそのセルの値を返します。
    • A列は1行目からセルにデータが入力されていますので、COUNTA関数でデータ数を求めると行数と一致します。 (途中に空白セルがないので)
      COUNTA(A:A)で行数を求めることができます。
    • ADDRESS(COUNTA(A:A),1) でA8セルを指定することができます。
    • A8セルの値を返すためにINDIRECT関数を使って、 =INDIRECT(ADDRESS(COUNTA(A:A),1)) とします。
    • なお、ほかの関数を使って求めることもできます。
      例えば、 =INDEX(A:A,COUNTA(A:A)) といった数式にすることもできます。

AGGREGATE関数

  • AGGREGATE関数はExcel2010で追加された関数です。

リストまたはデータベースの集計値を返す   アグリゲイト
セル範囲形式 =AGGREGATE(集計方法, オプション, 参照 1, [参照 2], …)
配列形式  =AGGREGATE(集計方法, オプション, 配列, [k])

  • AGGREGATE関数はExcel2010で追加された関数です。
  • AGGREGATE関数はエラーを無視するので、集計方法に指定した計算が可能になります。
  • AGGREGATE関数では、非表示の行やエラー値を無視するオプションを利用して、集計方法に指定した計算が可能になります。
  • 集計方法で指定する番号と対応する関数
    • 集計方法関数
      1AVERAGE
      2COUNT
      3COUNTA
      4MAX
      5MIN
      6PRODUCT
      7STDEV.S
      8STDEV.P
      9SUM
      10VAR.S
      11VAR.P
      12MEDIAN
      13MODE.SNGL
      14LARGE
      15SMALL
      16PERCENTILE.INC
      17QUARTILE.INC
      18PERCENTILE.EXC
      19QUARTILE.EXC
  • オプションで指定できるもの
    • オプション動作
      0 または省略ネストされた SUBTOTAL 関数と AGGREGATE 関数を無視します。
      1非表示の行、ネストされた SUBTOTAL 関数と AGGREGATE 関数を無視します。
      2エラー値、ネストされた SUBTOTAL 関数と AGGREGATE 関数を無視します。
      3非表示の行、エラー値、ネストされた SUBTOTAL 関数と AGGREGATE 関数を無視します。
      4何も無視しません。
      5非表示の行を無視します。
      6エラー値を無視します。
      7非表示の行とエラー値を無視します。
【問題1】
  • 下表の得点表が作成されています。平均点を求めなさい。
    ただし、D4セルにはエラー値「#N/A」が返されています。
    • 下表をExcelへコピーすると「#N/A」は文字列となりますので、=NA() や =VLOOKUP(B4,Sheet2!A1:B20,2,FALSE) などエラーが返る数式を入力してください。
    • BCD
      1名前クラス得点
      2相沢136
      3井上292
      4市田1#N/A
      5飯田160
      6上野138
      7上村271
      8江藤156
      9枝野278
      10江頭184
      11遠藤232
      12大野262
      13大木140
      14大川298
      15 
      16平均点
【解答例】
  • 平均を求めるAVERAGE関数は参照セル範囲にエラー値があるとエラー値を返しますので、計算できませんが、AGGREGATE関数を使うと計算ができます。
    • D16セルに =AGGREGATE(1,6,D3:D15) と入力します。
      • 集計方法:1 = AVERAGE 
      • オプション:6 = エラー値を無視する
      • 参照範囲:D3:D15

      BCD
      1名前クラス得点
      2相沢136
      3井上292
      4市田1#N/A
      5飯田160
      6上野138
      7上村271
      8江藤156
      9枝野278
      10江頭184
      11遠藤232
      12大野262
      13大木140
      14大川298
      15 
      16平均点62.25

【問題2】

  • 問題1の表を使って、B列のクラスが「1」のデータを抽出しなさい。抽出はフィルターを利用することとします。
    抽出したクラス「1」の平均値を求めなさい。

【解答例】

  1. データの範囲 B2:D15 を選択。
  2. [データ]タブの[フィルター]を実行。
  3. 列見出し「クラス」のフィルターボタンをクリックします。
    表示されたメニューのリストで「1」にチェックを入れます。(「2」のチェックを外します。)
  4. クラス「1」のデータが抽出できました。
  5. D17セルには =AGGREGATE(1,7,D3:D15) と入力します。
    非表示行の平均値を求めるにはSUBTOTAL関数が使えますが、エラー値があると計算できません。
    よって、ここではAGGREGATE関数を利用しました。
    • 集計方法:1 = AVERAGE 
    • オプション:7 = 非表示の行とエラー値を無視します
    • 参照範囲:D3:D15

平均の関数の使い方

  • 平均(AVERAGE関数,AVERAGEA関数)、中央値(MEDIAN関数)、最も頻度の多い値(MODE関数)およびSUMPRODUCT関数の使い方を解説しています。
平均(AVERAGE関数)中央値(MEDIAN関数)最頻値(MODE関数)
平均(AVERAGEA関数)トリム平均(TRIMMEAN関数)
条件付き平均(AVERAGEIF関数)複数条件平均(AVERAGEIFS関数)
SUMPRODUCT関数を使った加重平均

範囲内の平均を求める   アベレージ
=AVERAGE(範囲)

  • 範囲内に文字列、論理値、空白セルが含まれている場合、これらは無視されます。
    ゼロと空白セルでの結果が異なることに注意してください。0(ゼロ)はデータ数にカウントされますが、空白セルは無視されます。
  • 【問題】国語と数学の平均点を求める数式をC9,D9セルに入力しなさい。
    •  BCD
      2氏名国語数学
      3今田浩次8085
      4内田あかり7065
      5江藤公正9088
      6岡田太郎5562
      7川口宏7764
      8木村次郎6475
      9平均点72.773.2
  • 【解答例】
    • C9セルに=AVERAGE(C3:C8)と入力して、D9セルへ数式をコピーします。
      数式のコピーはC9セルを選択して、セルのフィルハンドルをドラッグします。(オートフィル)
    • C9:D9セルを選択し、書式設定ツールバーの[小数点表示桁上げ][小数点表示桁下げ]ボタンで表示桁数を変更できます。
      なお、表示されるのは表示桁数に四捨五入された値になります。
      整数値の表示なら、C9セルは「73」、D9セルは「73」となります。
    •  BCD
      2氏名国語数学
      3今田浩次8085
      4内田あかり7065
      5江藤公正9088
      6岡田太郎5562
      7川口宏7764
      8木村次郎6475
      9平均点=AVERAGE(C3:C8)=AVERAGE(D3:D8)

関数の挿入ボタンを使う方法 (関数の挿入ボタンの使い方はこちらからどうぞ)

  1. C9セルをクリックする。
  2. 関数の挿入【fx】ボタンをクリックして、【AVERAGE】を選択する。
  3. 表示された【関数の引数】ダイアログの『数値1』に【C3:C8】と表示されているのを確認する。
    表示されたセル範囲が異なっていたら、シートのセルを直接ドラッグして選択する。
  4. 【OK】ボタンをクリックする。
    AVERAGE03
  5. C9セルからD9セルへフィルハンドルをドラッグして(オートフィル)数式をコピーすれば終了です。

オートSUMボタン『Σ』を使う方法(Excel2002以降の場合) 

  1. セルC9をクリックし、アクティブにします。
  2. Excel2007以降では[ホーム]タブの[オートSUM]ボタンの横の[▼]をクリックし、「平均」を選択。
    • Excel2003以前では、ツールバーの【Σ】オートSUMボタンの横の[▼]をクリックします。
      表示されたメニューの「平均」をクリックします。
      Average01
  3. 範囲C3:C8が点線で囲まれ、数式=AVERAGE(C3:C8)が表示されます。
  4. [Enter]キーを押して確定します。
    Average02
  5. C9セルからD9セルへフィルハンドルをドラッグして(オートフィル)数式をコピーすれば終了です。

範囲内の平均を求める   アベレージ エー
=AVERAGEA(範囲)

  • 数値以外に、文字列やTRUE,FALSEなどの論理値も計算の対象になります。
    文字列は0と見なされ、TRUEは1,FALSEは0と見なされて計算されます。
  • 【例題】適当な例ではありませんが、AVERAGEとAVERAGEAの違いを示します。
    • C9セルは=AVERAGE(C3:C8)と入力されています。
      • 欠席のセルを無視して平均値が計算されます。
        国語の平均値の計算は(80+70+90+77+64)/5 と計算されます。
    • C10セルは=AVERAGEA(C3:C8)と入力されています。
      • 欠席のセルは0とみなして平均値が計算されます。
        国語の平均値の計算は(80+70+90+0+77+64)/6 と計算されます。
    • BCD
      2氏名国語数学
      3今田浩次8085
      4内田あかり7065
      5江藤公正9088
      6岡田太郎欠席62
      7川口宏77欠席
      8木村次郎6475
      9AVERAGEの結果76.275.0
      10AVERAGEAの結果63.562.5

中央値を求める   メディアン
=MEDIAN(範囲)

  • 範囲の数値を小さいもの順に並べたとき、その中央にくる数値を返します。
    なお、論理値、文字列が含まれているときはそれらは無視されます。
  • 数値が偶数個の場合には、真ん中の2つの数値の平均が中央値になります。
  • 例:測定値が奇数(9個)のときは5番目の値が返されます。測定値が偶数(10個)のときは5番目と6番目の値の平均値が返されます。
    BCDEFG
    2回数測定値
    315353中央値(奇数)
    42585866=MEDIAN(C3:C11)
    536060
    646565中央値(偶数)
    75666667=MEDIAN(D3:D12)
    866868
    977070
    1087171
    1197575
    121077

最頻値を求める   モード
=MODE(範囲)

  • 範囲として指定されたデータの中で、最も頻繁に出現する値 (最頻値) を返します。
    なお、対象となるデータ内に重複する値が無い場合、エラー値「#N/A」になります。
  • Excel2010で追加されたMODE.SNGL、MODE.MULTについては 最頻値を求める関数 をご覧ください。
  • 【問題】各得点の中央値と最頻値を求める数式をC9:D10セルに入力しなさい。

     BCD
    2氏名国語数学
    3今田浩次8062
    4内田あかり5565
    5江藤公正9088
    6岡田太郎5562
    7川口宏7764
    8木村次郎6475
    9中央値70.564.5
    10最頻値5562
  • 【解答例】

     BCD
    2氏名国語数学
    3今田浩次8062
    4内田あかり5565
    5江藤公正9088
    6岡田太郎5562
    7川口宏7764
    8木村次郎6475
    9中央値=MEDIAN(C3:C8)=MEDIAN(D3:D8)
    10最頻値=MODE(C3:C8)=MODE(D3:D8)

【関数の引数】ダイアログの設定状態   

  • 「MEDIAN」「MODE」とも「数値1」に「C3:C8」とします。

異常値を除いた平均を求める   トリム ミーン
=TRIMMEAN(配列,割合)

  • データ全体の上限と下限から一定の割合のデータを切り落とし、残りのデータの平均値を返します。
    異常値が出るようなデータで上下の一定割合のデータを省いて平均値を求めます。
    採点競技などで最大値と最小値を省くケースがありますが、これと似た考え方になります。
    トリム平均とか調整平均と呼ばれます。
  • 割合はデータから省く数の割合なので小数で入力します。よって、割合が0未満や1より大きいときはエラーとなり、#NUM!が返されます。
    データから省かれる数は 2の倍数で、上から 2の倍数/2 下から 2の倍数/2 が省かれます。
    具体的には データ数が12個の場合 =12*0.2=2.4 の場合は 2.4を整数に切り捨てて2となり、2/2=1 上から1個、下から1個のデータが省かれます。
    =12*0.3=3.6 の場合は 切り捨てると3になり、最も近い2の倍数は2なので、2/2=1 上から1個、下から1個のデータが省かれます。
    =12*0.4=4.8 の場合は 切り捨てると4になり、4は2の倍数なので4/2=2となり、上から2個、下から2個のデータが省かれます。
  • (例題)下表のデータから上下1個のデータを除いた平均値(トリム平均)と通常の算術平均を求めなさい
    BCD
    2NoAB
    313846
    426932
    534828
    644594
    758257
    869870
    978284
    1086216
    1193473
    12101159
    13118549
    14123066
    15トリム平均57.556.4
    16算術平均57.056.2
  • (解答例)
    BCD
    2NoAB
    313846
    426932
    534828
    644594
    758257
    869870
    978284
    1086216
    1193473
    12101159
    13118549
    14123066
    15トリム平均=TRIMMEAN(C3:C14,0.2)=TRIMMEAN(D3:D14,0.2)
    16算術平均=AVERAGE(C3:C14)=AVERAGE(D3:D14)

AVERAGEIF関数範囲内の条件に一致するすべてのセルの平均値を返します。 Topへ
アベレージ イフ
AVERAGEIF(範囲,条件,平均対象範囲)

  • (例題)下表の身長の平均値を男女別に求めなさい。
    BCDEFG
    2名前性別身長平均値171.5
    3相沢165154.7
    4井上148
    5池田175
    6石井155
    7上野168
    8内田161
    9内村178
  • (解答例)
    BCDEFG
    2名前性別身長平均値=AVERAGEIF($C$3:$C$9,F2,$D$3:$D$9)
    3相沢165=AVERAGEIF($C$3:$C$9,F3,$D$3:$D$9)
    4井上148
    5池田175
    6石井155
    7上野168
    8内田161
    9内村178
  • Excel2003以前では、SUMIF関数とCOUNTIF関数を利用して計算できます。
    • =男の合計/男の人数 で求めることができます。
    • G2セル:=SUMIF($C$3:$C$9,F2,$D$3:$D$9)/COUNTIF($C$3:$C$9,F2)
    • G3セル:=SUMIF($C$3:$C$9,F3,$D$3:$D$9)/COUNTIF($C$3:$C$9,F3)

AVERAGEIFS関数複数の検索条件に一致するすべてのセルの平均値 (算術平均) を返します。Topへ
アベレージ イフズ
AVERAGEIFS(平均範囲,検索条件範囲1,検索条件1,検索条件範囲2,検索条件2...)

  • 条件は「条件1AND条件2...」のANDでの結果になります。設定したすべての条件を満たすときの平均を求めることができます。
  • (例題)下表で身長170以上の男性の平均値を求めなさい。
    BCDE
    2名前性別身長身長170以上の男性の平均値
    3相沢165176.5
    4井上148
    5池田175
    6石井155
    7上野168
    8内田161
    9内村178
  • (解答例)
    BCDE
    2名前性別身長身長170以上の男性の平均値
    3相沢165=AVERAGEIFS(D3:D9,C3:C9,"男",D3:D9,">=170")
    4井上148
    5池田175
    6石井155
    7上野168
    8内田161
    9内村178
  • Excel2003以前では、SUMPRODUCT関数を利用して計算できます。
    • =170以上の男性の身長の合計/170以上の男性の人数
      で求めることができます。
    • E2セル:=SUMPRODUCT((D3:D9>170)*(C3:C9="男"),D3:D9)/SUMPRODUCT((D3:D9>170)*(C3:C9="男"))

加重平均を求める     サムプロダクト
=SUMPRODUCT(配列1,配列2)

  • 配列の対応する要素間の積をまず計算し、さらにその和を返します。
  • SUMPRODUCT関数で複数条件の件数をカウントしたり、合計を出すことができます。
    このような使い方は「複数条件で合計を求める」を参照してください。
  • SUMPRODUCT関数を用いて、1行/1列おきに計算することもできます。
  • 【問題】売上合計金額と加重平均を出しなさい。

     BCD
    2商品名単価個数
    3パソコン198,00010
    4プリンタ37,0005
    5モニター58,00010
    6   
    7 合計金額2,745,000
    8 加重平均 109,800
  • 【解答例】
    • 単価×個数 で金額をE列に求めますが、この問題では金額欄がありません。
    • 配列間の積を求めるSUMPRODUCT関数を使用すると、一度に計算ができます。
      加重平均は =(合計金額)/(個数の合計) で求めます。
     BCD
    2商品名単価個数
    3パソコン198,00010
    4プリンタ37,0005
    5モニター58,00010
    6   
    7 合計金額=SUMPRODUCT(C3:C5,D3:D5)
    8 加重平均=D7/SUM(D3:D5)
    • 【SUMPRODUCT】の設定例

条件付き平均の関数(AVERAGEIF関数,AVERAGEIFS関数の使い方)

  • 条件付き平均の関数(AVERAGEIF関数,AVERAGEIFS関数)の使い方を解説しています。
条件付き平均(AVERAGEIF関数)複数の条件の平均(AVERAGEIFS関数)

AVERAGEIF関数範囲内の条件に一致するすべてのセルの平均値を返します。 Topへ
アベレージ イフ
AVERAGEIF(範囲,条件,平均対象範囲)

  • ここでは下表のデータを使って説明します。
    BCDEFG
    2No名前性別年齢血液型得点
    31今泉真理50AB61
    42藤村美奈子34B49
    53寺田琉那25AB61
    64五十嵐篤22B30
    75大場龍雄40AB73
    86吉川好28A45
    97北章司45O90
    108土橋義昭20AB61
    119露木志帆24B85
    1210野島昌彦50O72
    1311山岡陽菜乃45A81
    1412吉崎光雄40A68
    1513水口勝昭28A70
    1614結城真由39AB59
    1715臼井幸也32A38
    1816森岡果凛34B41
    1917川村心23O88
  • [問題1]性別が「女」と「男」の得点の平均をそれぞれ求めなさい。
    [問題2]名前に「川」の文字を含む人の得点の平均を求めなさい。
    [問題3]名前が3文字の人の得点の平均を求めなさい。
  • [解答1]
    • 女の平均は =AVERAGEIF(D3:D19,"女",G3:G19) 、男の平均は =AVERAGEIF(D3:D19,"男",G3:G19) で求めることができます。
    • AVERAGEIF関数の挿入ダイアログでは下図のように指定します。
      条件の "女" は文字列なのでダブルクォーテーションでくくります。ダイアログではダブルクォーテーションを省略しても数式では補完されます。
  • [解答2]
    • 文字列の一部に「川」の文字を含むという条件はワイルドカードを利用します。
      条件に *川* とアスタリスク(*)を前後に配置します。
      数式は =AVERAGEIF(C3:C19,"*川*",G3:G19) とします。
      下図では説明のために条件と一致する箇所に色を付けています。
  • 【解答3】
    • 文字数が3という条件はワイルドカードの?を3個並べることで指定することができます。
      数式は =AVERAGEIF(C3:C19,"???",G3:G19) としました。

AVERAGEIFS関数複数の検索条件に一致するすべてのセルの平均値 (算術平均) を返します。Topへ
アベレージ イフズ
AVERAGEIFS(平均範囲,検索条件範囲1,検索条件1,検索条件範囲2,検索条件2...)

  • 複数の条件での平均値を求めるときにはAVERAGEIFS関数が便利です。
    AVERAGEIFS関数では引数の「平均範囲」を最初に指定するようになっていることに注意してください。AVERAGEIF関数では引数の3番目の指定になっているのと異なっています。
  • 【問題1】女性でB型の人の得点の平均値を求めなさい。
    【問題2】30歳代の人の得点の平均を求めなさい。
  • 【解答1】
    • 平均範囲は G3:G19 、検索条件範囲1は D3:D19 、検索条件1は "女" 、検索条件範囲2は F3:F19 、検索条件2は "B" となります。
      数式は =AVERAGEIFS(G3:G19,D3:D19,"女",F3:F19,"B") としました。
    • AVERAGEIFS関数の挿入ダイアログでは下図のように指定します。
  • 【解答2】
    • 30歳代との条件は 30歳以上 40歳未満と考えることができます。
      よって数式は =AVERAGEIFS(G3:G19,E3:E19,">=30",E3:E19,"<40") としました。

CHOOSE関数の使い方


リストから指定した値を返す
 チューズ
=CHOOSE(インデックス,値1,値2,値3・・・)

  • 値のリストから指定したインデックスの値を取出します。
  • インデックスに指定した番号に基づいて、最大 254 個の値の中から 1 つの値だけを選択できます。 なお、Excel2003までは29個です。
    • インデックスが 1 の場合は値1 が返され、2 の場合は値2 が返されます。
    • インデックスが 1 より小さいか、引数リストの値の個数よりも多い場合、エラー値 #VALUE! が返されます。
    • インデックスに小数点以下の値が含まれていても、整数部分だけが計算に使われます
  • 値1,値2,... の引数には、数値、セル参照、名前、数式、関数、または文字列を指定できます。
  • リストを作成する場合はLOOKUP関数やVLOOKUP関数が使えます。
    わざわざリストを作成するまでもないようなときに利用できます。

  • 【使用例1】
    • B2の値によって、「1です」「2です」・・・「4です」と表示します。
      C2セル =CHOOSE(B2,"1です","2です","3です","4です") としてC5までコピーします。
      BC
      222です
      30#VALUE!
      45#VALUE!
      53.43です
    • 上記エラーを表示しないようにするには
      • =IF(OR(B2<1,B2>4),"",CHOOSE(B2,"1です","2です","3です","4です"))
      • =IF(ISERROR(CHOOSE(B2,"1です","2です","3です","4です")),"",CHOOSE(B2,"1です","2です","3です","4です"))
      といった式が考えられます。

【問題例1】
  • 消費税が課税されるものと非課税のものが混在しているケースがあるとします。
    課税されるものには8%の課税をします。下表の税額の列を埋めなさい。
    BCDE
    2商品番号金額税区分税額
    3E15115,000課税1,200
    4G50425,000非課税0
    5E15318,000課税1,440
    6G50735,400非課税0
    7G50931,800非課税0
    【解答例1】
    • 課税と非課税の選択をMATCH関数で行ってみました。
      MATCH(D3,{"課税","非課税"},0) として、D列が課税の時は「1」、非課税の時は「2」が返されます。
    • CHOOSE関数で「1」の時は0.08、「2」の時は0 を返すようにしています。
      CHOOSE(MATCH(D3,{"課税","非課税"},0),0.08,0)
    • 金額に0.08または0を掛けることで税額を求めました。
      BCDE
      2商品番号金額税区分税額
      3E15115,000課税=C3*CHOOSE(MATCH(D3,{"課税","非課税"},0),0.08,0)
      4G50425,000非課税=C4*CHOOSE(MATCH(D4,{"課税","非課税"},0),0.08,0)
      5E15318,000課税=C5*CHOOSE(MATCH(D5,{"課税","非課税"},0),0.08,0)
      6G50735,400非課税=C6*CHOOSE(MATCH(D6,{"課税","非課税"},0),0.08,0)
      7G50931,800非課税=C7*CHOOSE(MATCH(D7,{"課税","非課税"},0),0.08,0)
    • なお、この例ではIF関数で数式を書くこともできます。
      =C3*IF(D3="課税",0.08,IF(D3="非課税",0,"")) といった感じです。

    • 【問題例2】適切な例ではありませんが、使い方の例として書いています
      • C列に曜日を求めなさい。
      • BC
        22009/7/1
        32009/7/2
        42009/7/3
        52009/7/4
        62009/7/5
        72009/7/6
        82009/7/7
        92009/7/8
    • 【解答例2】
      • C2セルに=CHOOSE(WEEKDAY(B2),"日","月","火","水","木","金","土")として、下方向へコピーしています。
        曜日を求めるのにWEEKDAY関数を利用し、その返り値から文字列の曜日を取り出しています。
      • BC
        22009/7/1=CHOOSE(WEEKDAY(B2),"日","月","火","水","木","金","土")
        32009/7/2=CHOOSE(WEEKDAY(B3),"日","月","火","水","木","金","土")
        42009/7/3=CHOOSE(WEEKDAY(B4),"日","月","火","水","木","金","土")
        52009/7/4=CHOOSE(WEEKDAY(B5),"日","月","火","水","木","金","土")
        62009/7/5=CHOOSE(WEEKDAY(B6),"日","月","火","水","木","金","土")
        72009/7/6=CHOOSE(WEEKDAY(B7),"日","月","火","水","木","金","土")
        82009/7/7=CHOOSE(WEEKDAY(B8),"日","月","火","水","木","金","土")
        92009/7/8=CHOOSE(WEEKDAY(B9),"日","月","火","水","木","金","土")
      • 実際に曜日を求めたいときには=TEXT(B2,"aaa") とすればよいです。
        上はあくまでもCHOOSE関数の使い方の例として書いています。

    • 【問題例3】セル範囲を指定することもできます。
      • 商品A〜Cの合計を求めなさい。
        BCDEFG
        2商品A商品B商品C商品A50,000
        310,0005,0001,000商品B25,000
        410,0005,0001,000商品C5,000
        510,0005,0001,000
        610,0005,0001,000
        710,0005,0001,000
    • 【解答例3】
      • 商品のデータ範囲をCHOOSE関数で取り出します。
        • G2セル=SUM(CHOOSE(1,$B$3:$B$7,$C$3:$C$7,$D$3:$D$7))
          G3セル=SUM(CHOOSE(2,$B$3:$B$7,$C$3:$C$7,$D$3:$D$7))
          G4セル=SUM(CHOOSE(3,$B$3:$B$7,$C$3:$C$7,$D$3:$D$7))
        BCDEFG
        2商品A商品B商品C商品A50,000
        310,0005,0001,000商品B25,000
        410,0005,0001,000商品C5,000
        510,0005,0001,000
        610,0005,0001,000
        710,0005,0001,000
      • 以下のように書くこともできます。
        G2セルに=SUM(CHOOSE(MATCH(F2,$B$2:$D$2,0),$B$3:$B$7,$C$3:$C$7,$D$3:$D$7))と入力して下方向へコピーします。

    単位の値に変換する(CONVERT関数)

    数値を単位の変換に応じた値にします   コンバート
    =CONVERT(数値,変換前単位,変換後単位)
      数値:変換する値を指定。
      変換前単位:数値の単位を指定。
      変換後単位:変換後の単位を指定。
    Excel2003以前のバージョンでは、この関数が使用できず、エラー値 #NAME? が返される場合は、分析ツール アドインを組み込む必要があります。

    • 【例1】cm単位の値をinch単位の値に変換します。
      • 【問題例】B3:B4セルの値はcm(センチメートル)単位の値です。C3:C4にinch(インチ)単位の値に変換しなさい。
        •  BC
          2cminch
          3103.937008
          4207.874016
      • 【解答例】
        •  BC
          2cminch
          310=CONVERT(B3,"cm","in")
          45=CONVERT(B4,"cm","in")
        • 関数の引数 ダイアログボックスを使う場合は変換前の単位や変換後の単位は文字列なので、ダブルクォーテーションでくくります。
    • 【例2】km単位の値をmile単位の値に交互に変換します。
      • 【問題例】B3セルのkm(キロメートル)単位の値をC3セルにmile(マイル)単位の値に変換しなさい。
        また、C4セルのmile(マイル)単位の値をB4セルにkm(キロメートル)単位の値に変換しなさい。
        •  BC
          2kmmile
          315093.20568
          4160.9344100
      • 【解答例】
        •  BC
          2kmmile
          3150=CONVERT(B3,"km","mi")
          4=CONVERT(C4,"mi","km")100
    • 【例3】日数を時間、分、秒に換算します。
      • 下表のピンクの部分を求めなさい。
        BCDE
        2時間
        31241,44086,400
        42482,880172,800
        50.51272043,200
      • 解答例
        BCDE
        2時間
        31=CONVERT($B3,"day","hr")=CONVERT($B3,"day","mn")=CONVERT($B3,"day","sec")
        42=CONVERT($B4,"day","hr")=CONVERT($B4,"day","mn")=CONVERT($B4,"day","sec")
        50.5=CONVERT($B5,"day","hr")=CONVERT($B5,"day","mn")=CONVERT($B5,"day","sec")

    注意

    • 変換前単位と変換後単位で単位の種類が異なる場合、エラー値 #N/A が返されます。
    • 単位名と略語の大文字と小文字は区別されます。
    • アメリカで使われている容量の単位 1cup(カップ) = 約236.59ml (ミリリットル)となるようです(Excel2010の場合)。
      日本で使われている容量の単位 1cup(カップ) = 200 ml(ミリリットル)と異なるようです。
      またバージョンによって微妙に異なったりします。
      Excelはアメリカ製というのを忘れないようにしておく必要があるようです。アメリカ式の換算法が使われているようです。
      • Excel2002では 1cup=236.64mlとなります。
      • Excel2010では 1cup=236.59mlとなります。
    • Excel2013ではton(トン)が使えるようになりますが、これもアメリカのヤード・ポンド法での換算となるようです。

    変換前単位/変換後単位

    • Excelのバージョンによって使用できる単位が異なっています。以下の表はExcel2002のHelpから抜粋しています。
      特にExcel2013ではかなり増加しています。
      バージョンによって異なる例を CONVERT関数の変換前後単位のバージョンによる違い に示しますので、興味のある方はご覧ください。
    • 以下の文字列(略号)を二重引用符 ("") で囲んで指定します。
      重量変換前単位/変換後単位
      グラムg
      スラグsg
      ポンド (常衡)lbm
      U (原子質量単位)u
      オンス (常衡)ozm
      距離
      メートルm
      法定マイルmi
      海里Nmi
      インチin
      フィートft
      ヤードyd
      オングストロームang
      パイカ (1/72 インチ)Pica
      時刻
      yr
      day
      hr
      mn
      sec
      圧力
      パスカルPa
      気圧atm
      ミリメートル HgmmHg
      物理的な力
      ニュートンN
      ダインdyn
      ポンド フォースlbf
      エネルギー
      ジュールJ
      エルグe
      カロリー (物理化学的熱量)c
      カロリー (生理学的代謝熱量)cal
      電子ボルトeV
      馬力時HPh
      ワット時Wh
      フィートポンドflb
      BTU (英国熱量単位)BTU
      出力
      馬力HP
      ワットW
      磁力
      テスラT
      ガウスga
      温度
      摂氏C
      華氏F
      絶対温度K
      容積
      ティースプーンtsp
      テーブルスプーンtbs
      オンスoz
      カップcup
      パイント (米)pt
      パイント (英)uk_pt
      クォートqt
      ガロンgal
      リットルl

    接頭語

    • 10 のべき乗に対応する略語は、変換前単位または変換後単位の前に記述します。
      接頭語べき乗略語
      exa1.00E+18E
      peta1.00E+15P
      tera1.00E+12T
      giga1.00E+09G
      mega1.00E+06M
      kilo1.00E+03k
      hecto1.00E+02h
      dekao1.00E+01e
      deci1.00E-01d
      centi1.00E-02c
      milli1.00E-03m
      micro1.00E-06u
      nano1.00E-09n
      pico1.00E-12p
      femto1.00E-15f
      atto1.00E-18a

    CONVERT関数の変換前後単位のバージョンによる違い

    バージョンによる違い

    • CONVERT関数の変換前単位/変換後単位に使用できる単位がバージョンによって増加しています。
      以下は各バージョンのヘルプから抜粋してみたものです。
    • Excel2013,Excel2016ではton(トン)が使えるようになっていますが、日本での換算法とは異なっていますのでご注意ください。
      Excelはアメリカ製というのを認識しないといけません。
      • 日本で使われているトン(ton)はメートル法で1 ton (トン) = 1000kg (キログラム)=1,000,000g(グラム)
        アメリカで使われているトン(ton)はヤード・ポンド法で 1ton (トン) = 2000 pounds (ポンド) = 907.18 kg (キログラム)
        Excel2013,Excel2016のCONVERT関数でのtonはヤード・ポンド法のようです。
      • 同じように、アメリカで使われている容量の単位 1cup(カップ) = 約236.59ml (ミリリットル)となるようです(Excel2013,Excel2016の場合)。
        日本で使われている容量の単位 1cup(カップ) = 200 ml(ミリリットル)と異なります。
    • エクセルのバージョンによって使用できる単位の一覧表
       Excel2002Excel2010Excel2013、Excel2016
      重量変換前単位/変換後単位
      グラムggg
      スラグsgsgsg
      ポンド (常衡)lbmlbmlbm
      U (原子質量単位)uuu
      オンス (常衡)ozmozmozm
      グレインgrain
      米国 (ショート) ハンドレッドウェイトcwt または "shweight"
      英国ハンドレッドウェイトuk_cwt または "lcwt" ("hweight")
      ストーンstone
      トンton
      英国トンuk_ton または "LTON" ("brton")
      距離変換前単位/変換後単位
      メートルmmm
      法定マイルmimimi
      海里NmiNmiNmi
      インチininin
      フィートftftft
      ヤードydydyd
      オングストロームangangang
      エルell
      光年ly
      パーセクparsec または "pc"
      パイカ (1/72 インチ)PicaPicaPicapt または "Pica"
      パイカ (1/6 インチ)picapica
      米国測量マイル (法定マイル)survey_mi
      時間変換前単位/変換後単位
      yryryr
      daydayday または "d"
      hrhrhr
      mnmnmn または "min"
      secsecsec または "s"
      圧力変換前単位/変換後単位
      パスカルPaPa (または "p")Pa (または "p")
      気圧atmatm (または "at")atm (または "at")
      ミリメートル HgmmHgmmHgmmHg
      PSIpsi
      トールTorr
          
      物理的な力変換前単位/変換後単位
      ニュートンNNN
      ダインdyndyn (または "dy")dyn (または "dy")
      ポンド フォースlbflbflbf
      ポンドpond
          
      エネルギー変換前単位/変換後単位
      ジュールJJJ
      エルグeee
      カロリー (物理化学的熱量)ccc
      カロリー (生理学的代謝熱量)calcalcal
      電子ボルトeVeV (または "ev")eV (または "ev")
      馬力時HPhHPh (または "hh")HPh (または "hh")
      ワット時WhWh (または "wh")Wh (または "wh")
      フィートポンドflbflbflb
      BTU (英国熱量単位)BTUBTU (または "btu")BTU (または "btu")
      仕事率変換前単位/変換後単位
      馬力HPHP (または "h")HP (または "h")
      Pferdest?rkePS
      ワットWW (または "w")W (または "w")
          
      磁力変換前単位/変換後単位
      テスラTTT
      ガウスgagaga
      温度変換前単位/変換後単位
      摂氏CC (または "cel")C (または "cel")
      華氏FF (または "fah")F (または "fah")
      絶対温度KK (または "kel")K (または "kel")
      ランキン度Rank
      レオミュール度Reau
          
      体積 (容積)変換前単位/変換後単位
      ティースプーンtsptsptsp
      小さじtspm
      テーブルスプーンtbstbstbs
      オンスozozoz
      カップcupcupcup
      米国 パイントptpt (または "us_pt")pt (または "us_pt")
      英国 パイントuk_ptuk_ptuk_pt
      クォートqtqtqt
      英国クォートuk_qt
      ガロンgalgalgal
      英国ガロンuk_gal
      リットルll (または "lt")l または "L" ("lt")
      立方オングストロームang3 または "ang^3"
      米国 石油バレルbarrel
      米国 ブッシェルbushel
      立方フィートft3 または "ft^3"
      立方インチin3 または "in^3"
      立方光年ly3 または "ly^3"
      立方メートルm3 または "m^3"
      立方マイルmi3 または "mi^3"
      立方ヤードyd3 または "yd^3"
      立方海里Nmi3 または "Nmi^3"
      立方パイカPicapt3、"Picapt^3"、"Pica3"、または "Pica^3"
      登録総トン数GRT ("regton")
      容積トン (フレート トン)MTON
      領域変換前単位/変換後単位
      国際エーカーuk_acre
      米国 測量/法定エーカーus_acre
      平方オングストロームang2 または “ang^2"
      アールar
      平方フィートft2 または "ft^2"
      ヘクタールha
      平方インチin2 または "in^2"
      平方光年ly2 または "ly^2"
      平方メートルm2 または "m^2"
      モルヘンMorgen
      平方マイルmi2 または "mi^2"
      平方海里Nmi2 または "Nmi^2"
      平方パイカPicapt2、"Pica2"、"Pica^2"、または "Picapt^2"
      平方ヤードyd2 または "yd^2"
      情報変換前単位/変換後単位
      ビットbit
      バイトbyte
          
      速度変換前単位/変換後単位
      英国ノットadmkn
      ノットkn
      メートル/時m/h または "m/hr"
      メートル/秒m/s または "m/sec"
      マイル/時mph

    カウント(COUNT)の関数

    • エクセルでデータ数を数えるワークシート関数の説明をしています。
    • 数値データのセル数(COUNT関数)、全てのセル数(COUNTA関数)、空白のセル数(COUNTBLANK関数)
      条件付きでセル数を求める(COUNTIF関数)、複数条件でのセル数(DCOUNT関数,DCOUNTA関数,SUMPRODUCT関数)
      区間のセル数(FREQUENC関数)の使い方を解説しています。
    数値データのセル数(COUNT関数)空白を除く全てのセル数(COUNTA関数)
    空白のセル数(COUNTBLANK関数)名前をつける
    条件付きでカウント(COUNTIF関数)複数条件でのカウント
    (DCOUNT,DCOUNTA,SUMPRODUCT)
    複数条件付きでカウント(COUNTIFS関数)
    区間のセル数(FREQUENC関数)

    数値データのセルを数える     カウント
    =COUNT(範囲)

    文字や数値、式などのデータが入力されているセルを数える 未入力セルは数えません。
     カウントエー
    =COUNTA(範囲)

    空白のセルを数える
     カウントブランク
    =COUNTBLANK(範囲)

    • 未入力セル」と「""」(長さ0の文字列)ではカウントのされ方が違います。
      • 未入力セルと「""」(長さ0の文字列)はCOUNTBLANK関数ではカウントされます。
      • 「""」(長さ0の文字列)はCOUNTA関数ではカウントされます。
      • 下図ではB2:B5セルにはA2:A5で説明しているデータが入力されています。
    • 【問題1】
      1. セル範囲E4:E10とF4:F10の中で、数値データが入力されているセルの個数はいくつですか。E12とF12に数式を入れなさい。
      2. セル範囲E4:E10とF4:F10の中から文字や数値の入力されているセルの個数はいくつですか。E13とF13に数式を入れなさい。
      3. セル範囲E4:E10とF4:F10の中から空白のセルの個数はいくつですか。E14とF14に数式を入れなさい。
      •  BCDEFG
        22003    
        3年月日項目名コード収入支出収支
        44月1日繰り越し1712,345 12,345
        54月10日給与収入1200,000 212,345
        64月12日教育・教養費10なし50,000162,345
        74月15日保険料4 30,000132,345
        84月16日雑収入35,000 137,345
        94月17日税金5なし35,000102,345
        104月20日食費6 13,50088,845
        11  合計217,345128,50088,845
        12 数値セルの数34 
        13 文字セルの数54 
        14 空白セルの数23 
    • 【解答1例】
      • セルの値が数値のセルをカウントするには、COUNT関数を使います。
      • セルの値が文字列のセルをカウントするには、COUNTA関数を使います。
      • セルの値が未入力および""のセルをカウントするには、COUNTBLANK関数を使います。
      •  BCDEFG
        22003年    
        3年月日項目名コード収入支出収支
        44月1日繰り越し1712,345 12,345
        54月10日給与収入1200,000 212,345
        64月12日教育・教養費10なし50,000162,345
        74月15日保険料4 30,000132,345
        84月16日雑収入35,000 137,345
        94月17日税金5なし35,000102,345
        104月20日食費6 13,50088,845
        11  合計217,345128,50088,845
        12 数値セルの数=COUNT(E4:E10)=COUNT(F4:F10) 
        13 文字セルの数=COUNTA(E4:E10)=COUNTA(F4:F10) 
        14 空白セルの数=COUNTBLANK(E4:E10)=COUNTBLANK(F4:F10) 

    • 【問題2】平均点を求めなさい。ただし欠席者はカウントしません。
      •  BCD
        22003年国語1学期
        3出席番号氏 名中 間
        41相沢一郎48
        52井上次男75
        63上野光男欠席
        74小川純一郎77
        85柿元正二64
        96桑田啓助0
        107小島啓太28
        11   
        12 平均点48.7
        13   
    • 【解答2例】
      • 得点の合計 / 受験者数(得点の入力があるセルの数) と求めることができます。
        =SUM(D4:D10)/COUNT(D4:D10)
      • =AVERAGE(D4:D10) としても文字列のセルはカウントされないので結果は同じです。
      • なお、空白と「0」は区別されるので、欠席の場合のようにカウントしない場合には空白か欠席と文字列を入力します。
      • 得点が「0」の場合は「0」と入力しないとカウントされません。
      •  BCD
        22003年 国語1学期
        3出席番号氏 名中 間
        41相沢一郎48
        52井上次男75
        63上野光男欠席
        74小川純一郎77
        85柿元正二64
        96桑田啓助0
        107小島啓太28
        11   
        12 平均点=SUM(D4:D10)/COUNT(D4:D10)
        13  =AVERAGE(D4:D10)

    検索条件に合うセルを数える。     カウントイフ
    =COUNTIF(範囲,検索条件)
       検索条件に文字や式を使う時には「"」(半角の二重引用符)で囲みます。

    完全一致の検索

    • 【問題1】忘年会の出欠表があります。出席と欠席の人数を計算しなさい。
      •  BCD
        2忘年会出欠表
        3氏名出欠 
        4相沢太郎出席出席
        5井上啓太欠席4
        6上野裕一出席欠席
        7榎田浩一出席2
        8大川肇出席 
        9柿元仁志欠席 
    • 【解答1例】
      • COUNTIF関数を使って求めます。
      •  BCD
        2忘年会出欠表
        3氏名出欠 
        4相沢太郎出席出席
        5井上啓太欠席=COUNTIF(C4:C9,"出席")
        6上野裕一出席欠席
        7榎田浩一出席=COUNTIF(C4:C9,"欠席")
        8大川肇出席 
        9柿元仁志欠席 
      • =COUNTIF(C4:C9,D4) と =COUNTIF(C4:C9,D6) のように「出席」「欠席」をセル参照してもOKです。
      • COUNTIF関数の関数の引数ダイアログでの設定状態
        • D5セルの場合:【範囲】C4:C9、【検索条件】出席 または D4 とします。
        • 関数の引数ダイアログ内では文字列を入力すると「"」が補完されますので、入力しなくても大丈夫です。
          検索条件に「出席」と入力しても 数式は=COUNTIF(C4:C9,"出席")となります。

    部分一致の検索 - ワイルドカード文字を使って数える   

    • 【問題】
      • 忘年会の出欠表です。欠席の後ろに理由が記入されています。
      • 「出席」「欠席」の文字を使わず、D4,D6のセル参照で、数式を書きなさい。
      •  BCD
        2忘年会出欠表
        3氏名出欠 
        4相沢太郎出席出席
        5井上啓太欠席(海外出張)4
        6上野裕一出席欠席
        7榎田浩一出席2
        8大川肇出席 
        9柿元仁志欠席(国内出張) 
    • 【解答例】
      • セル参照とワイルドカード文字をつなげて書く時には「&」を使います。
      • 出席の数を数えるには「出席」のセルだけを数えればよいので、D4セルの「出席を利用して、 =COUNTIF(C4:C9,D4) とすることができます。
        欠席の数は「欠席」の欠席理由が付いており、共通するのは「欠席」で始まる文字列ということです。
        「欠席」で始るというのは「欠席*」とワイルドカードを使って書くことができます。
        ここではD6セルの値「欠席」を利用するので、& を使って D6&"*" とします。
      •  BCD
        2忘年会出欠表
        3氏名出欠 
        4相沢太郎出席出席
        5井上啓太欠席(海外出張)=COUNTIF(C4:C9,D4)
        6上野裕一出席欠席
        7榎田浩一出席=COUNTIF(C4:C9,D6&"*")
        8大川肇出席 
        9柿元仁志欠席(国内出張) 

    検索条件の様々な書き方の例   

    • 【問題2】
      1. セル範囲 E4:E10 のなかで 10000以上のセルの個数はいくつですか。E12に数式を入れなさい。
      2. セル範囲 C4:C10 のなかで [給与収入]のセルの個数はいくつですか。E13に数式を入れなさい。
      3. セル範囲 C4:C10の中で「○○○収入」のセルの個数はいくつですか。E14に数式を入れなさい。
      4. (ヒント)検索条件にはワイルドカードを使うことができます。
      •  BCDEFG
        22003    
        3年月日項目名コード収入支出収支
        44月1日繰り越し1712,345 12,345
        54月10日給与収入1200,000 212,345
        64月12日教育・教養費10なし50,000162,345
        74月15日保険料4 30,000132,345
        84月16日雑収入35,000 137,345
        94月17日税金5なし35,000102,345
        104月20日食費6 13,50088,845
        11  合計217,345128,50088,845
        12 値が10,000以上セルの数   2 
        13 給与収入のセルの数   1 
        14 ○○収入のセルの数   2 
    • 【解答2例】
      •  BCDEFG
        22003    
        3年月日項目名コード収入支出収支
        44月1日繰り越し1712,345 12,345
        54月10日給与収入1200,000 212,345
        64月12日教育・教養費10なし50,000162,345
        74月15日保険料4 30,000132,345
        84月16日雑収入35,000 137,345
        94月17日税金5なし35,000102,345
        104月20日食費6 13,50088,845
        11  合計217,345128,50088,845
        12 値が10,000以上セルの数=COUNTIF(E4:E10,">=10000") 
        13 給与収入のセルの数=COUNTIF(C4:C10,"給与収入") 
        14 ○○収入のセルの数=COUNTIF(C4:C10,"*収入") 
        15○○収入の平均値=SUMIF(C4:C10,"*収入",E4:E10)/COUNTIF(C4:C10,"*収入")
      • 【COUNTIF】関数の設定状態
        • E12セルの場合: 【範囲】 E4:E10  【検索条件】 ">=10000" とします。
        • なお、検索条件に文字列を使う場合、前後の『"』(ダブルクォーテーション)は入力しなくてもExcelが追加してくれます。

    ○○以上△△未満のセル数を数える   

    • 【問題3】
      • セル範囲 C4:C10 のなかで 50以上100未満のセルの個数はいくつですか。E12に数式を入れなさい。
      •  BC
        22005年 
        3月 日売り上げ
        44月1日100
        54月10日47
        64月12日20
        74月15日72
        84月16日45
        94月17日60
        104月20日110
        11  
        1250以上100未満のセルの数2
    • 【解答3例】
      • 100未満のセル数から50未満のセル数を差し引きます。
      •  BC
        22005年 
        3月 日売り上げ
        44月1日100
        54月10日47
        64月12日20
        74月15日72
        84月16日45
        94月17日60
        104月20日110
        11  
        1250以上100未満のセルの数=COUNTIF(C4:C10,"<100")-COUNTIF(C4:C10,"<50")
      • なお、考え方によっては以下のような数式を考えることができますので補足しておきます。
        50や100を含むのか含まないのかを間違わないように指定するのがポイントです。

    (おまけ1)文字の数を検索条件としてセル数を数える。

    • =COUNTIF(C4:C7,"*") とすると、文字の入力されているセルを数えることができます。
      =COUNTA(C4:C7)-COUNT(C4:C7) と同じです。
    • 文字数を条件とする場合は、ワイルドカードの「?」を利用して文字数を決めます。
    • 下表ではC列のカウントの文字数を調べています。
      • 3文字の文字を表すには「???」とすることができます。=COUNTIF(C4:C7,"???") として求めることができます。
        下表では「???」を「REPT("?",3)」で求めて、=COUNTIF(C4:C7,REPT("?",3)) としています。
       BCD
      2 
      3品 名カウント 
      4りんご+++3文字のセル数(答え:3)
      5みかん++++=COUNTIF(C4:C7,REPT("?",3))
      6ぶどう+++4文字のセル数(答え:1)
      7なし+++=COUNTIF(C4:C7,REPT("?",4))

    (おまけ2)SUM関数との組み合わせ方

    • 複数条件のセルをカウントするには加算すればよいのですが、SUM関数と組み合わせることもできます。
      • =SUM(COUNTIF(C4:C9,{"○","◎"})) は =SUM({3,1}) となり、4 が返ります。
    • BCD
      2算数のテスト結果
      3氏名判定判定が◎と○の人数
      4相沢太郎=COUNTIF(C4:C9,"○")+COUNTIF(C4:C9,"◎")
      5井上啓太=SUM(COUNTIF(C4:C9,{"○","◎"}))
      6上野裕一×答え:「4」となります。
      7榎田浩一
      8大川肇
      9柿元仁志

    検索値にセル参照と不等号を組み合わせる   

    • 【問題5】
      •  合格基準がD5セルで与えられています。このセルを参照してD7セルに合格者数を表示しなさい。
      •  BCD
        2算数のテスト結果
        3氏名期 末 
        4相沢太郎45合格基準(点数以上)
        5井上啓太6060
        6上野裕一75合格者数
        7榎田浩一414
        8大川肇88 
        9柿元仁志70 
    • 【解答5例】
      • セル参照と比較演算子をくっつける場合には「&」を使います。
      •  BCD
        2算数のテスト結果
        3氏名期 末 
        4相沢太郎45合格基準(点数以上)
        5井上啓太6060
        6上野裕一75合格者数
        7榎田浩一41=COUNTIF(C4:C9,">="&D5)
        8大川肇88 
        9柿元仁志70 

    重複データのチェックをする   

    • 【問題6】
      • 本の受注表を作成しました。ところが、入力に重複があります。
      • 注文者は重複している2つ目以降の行に「重複」と表示しなさい。
      •  BCD
        2注文数
        3氏 名注文数Check
        4相沢太郎1冊 
        5井上啓太1冊 
        6相沢太郎1冊重複
        7榎田浩一1冊 
        8相沢太郎1冊重複
        9柿元仁志1冊 
    • 【解答6例】 
      1. 検索範囲を検索条件以前のセル範囲として、カウントし1を超えたら(2以上なら)「重複」と表示します。
      2. この後、オートフィルタを使ってCheck欄が「重複」の行を抽出し、行削除すれば重複のないデータが得られます。
      • 参照するセル範囲が「$B$4:B4」という形にして、データの先頭から該当セルまでを範囲としています。
         BCD
        2注文数
        3氏 名注文数Check
        4相沢太郎1冊=IF(COUNTIF($B$4:B4,B4)>1,"重複","")
        5井上啓太1冊=IF(COUNTIF($B$4:B5,B5)>1,"重複","")
        6相沢太郎1冊=IF(COUNTIF($B$4:B6,B6)>1,"重複","")
        7榎田浩一1冊=IF(COUNTIF($B$4:B7,B7)>1,"重複","")
        8相沢太郎1冊=IF(COUNTIF($B$4:B8,B8)>1,"重複","")
        9柿元仁志1冊=IF(COUNTIF($B$4:B9,B9)>1,"重複","")

    参考資料  

    COUNTIFS関数複数の検索条件に一致するセルの個数を返します。 Topへ
    カウント イフズ
    COUNTIFS(検索条件範囲1,検索条件1,検索条件範囲2,検索条件2...)
    Excel2007で追加された関数です。

    • 条件は「条件1AND条件2...」のANDでの結果になります。
    • (例題)下表で身長170以上の男性の数を求めなさい。
      BCDE
      2名前性別身長身長170以上の男性の数
      3相沢1652
      4井上148
      5池田175
      6石井155
      7上野168
      8内田161
      9内村178
    • (解答例)
      BCDE
      2名前性別身長身長170以上の男性の数
      3相沢165=COUNTIFS(C3:C9,"男",D3:D9,">=170")
      4井上148
      5池田175
      6石井155
      7上野168
      8内田161
      9内村178
    • Excel2003以前では、SUMPRODUCT関数を利用して計算できます。
      • E2セル:=SUMPRODUCT((D3:D9>170)*(C3:C9="男"))

    複数の条件に合うデータ数を数える     ディーカウント
    =DCOUNT(Database,フィールド,Criteria)

    • データベースの指定された列を検索し、条件を満たすレコードの中で数値が入力されているセルの個数を返します。

     ディーカウントエー
    =DCOUNTA(Database,フィールド,Criteria)

    • データベースの指定された列を検索し、条件を満たすレコードの中の空白でないセルの個数を返します。
    • データベース関数及びVersionによる注意点はこちらを参照のこと
    • 【問題1】

      • 下記の表で、住所が鹿児島で、年齢が30以上の人数を求めなさい。
      • G3セルにはDCOUNT関数を使い、G4セルにはDCOUNTA関数を使ってみましょう。
      •  BCDEFG
        2名前住所年齢住所年齢件数
        3井上宮崎25鹿児島>=302
        4会田鹿児島30  2
        5上野宮崎24   
        6岡田鹿児島33   
        7釜元鹿児島26   
        8木下宮崎33   
    • 【解答例1】

      1. 検索条件をE2:F3セルに入力します。
        • 「鹿児島」and「>=30」ですので、同一行に書きます。
      2. DCOUNT関数では『数値が入力されているセルの個数』をカウントします。
        • 数値の入力されている項目名をフィールド「年齢=D2」に指定します。
        • =DCOUNT(B2:D8,D2,E2:F3)
          または
          =DCOUNT(B2:D8,"年齢",E2:F3)
      3. DCOUNTA関数は『空白でないセルの個数』をカウントします。
        • フィールドにはB2,C2,D2のどれを使ってもOKです。
        • =DCOUNTA(B2:D8,C2,E2:F3)
          または
          =DCOUNTA(B2:D8,"住所",E2:F3)
           など
      •  BCDEFG
        2名前住所年齢住所年齢件数
        3井上宮崎25鹿児島>=30=DCOUNT(B2:D8,D2,E2:F3)
        4会田鹿児島30  =DCOUNTA(B2:D8,C2,E2:F3)
        5上野宮崎24   
        6岡田鹿児島33   
        7釜元鹿児島26   
        8木下宮崎33   

    【別解1】SUMPRODUCT関数を使った例

    • =SUMPRODUCT((C3:C8="鹿児島")*(D3:D8>=30)) となります。

    • (問題2)

      • 住所が鹿児島で年齢が25歳以上30歳以下の人数を求める場合。
      • F2:G3のように項目名「年齢」と年齢の条件「>=25」「<=30」を並べて書くことで、「>=25」and「<=30」となります。
        (注)同一行に項目名と条件を並べます。
      •  BCDEFG
        2名前住所年齢住所年齢年齢
        3井上宮崎25鹿児島>=25<=30
        4会田鹿児島30  =DCOUNTA(B2:D8,C2,E2:G3)
        5上野宮崎24   
        6岡田鹿児島33   
        7釜元鹿児島26   
        8木下宮崎33   

    【別解1】SUMPRODUCT関数を使った例

    • =SUMPRODUCT((C3:C8="鹿児島")*(D3:D8>=25)*(D3:D8<=30))  と、なります。

    データの頻度分布を、縦方向の数値の配列として返す(度数分布)     フリークエンシー
    =FREQUENCY(データ配列,区間配列)

    • この関数は配列数式として入力する必要があります。
      入力時に[Ctrl]+[Shift」+[Enter]で確定します。
    • 【問題】

      • テスト結果があります。40点以下、70点以下、100点以下の人数を計算しなさい。
      • BCDEF
        2算数のテスト結果
        3氏名期 末
        4相沢太郎45400
        5井上啓太60704
        6上野裕一751002
        7榎田浩一41
        8大川肇88
        9柿元仁志70
    • 【解答例】

      1. E4:E6に計算する区間を入力します。
      2. 計算結果を表示するセル範囲F4:F6を選択。
      3. F4セルに =FREQUENCY(C4:C9,E4:E6) と入力し、[Ctrl]+[Shift」+[Enter]で確定します。
        または、=FREQUENCY(C4:C9,{40,70,100}) と区間を値で入力することもできます。
        (最大値が100と決まっている場合、上限を定めず=FREQUENCY(C4:C9,{40,70})とすることもできます)
        • 「関数の引数」ダイアログでの指定は下図のようにし、[Ctrl]+[Shift」を押しながら「OK」ボタンをクリックします。
          (あらかじめセル範囲F4:F6を選択しておきます
    • 【別解】COUNTIF関数を使って計算します。

      • F4セル:=COUNTIF($C$4:$C$9,"<="&E4)
      • F5セル:=COUNTIF($C$4:$C$9,"<="&E5)-COUNTIF($C$4:$C$9,"<="&E4)
      • F6セル:=COUNTIF($C$4:$C$9,"<="&E6)-COUNTIF($C$4:$C$9,"<="&E5)

    条件に一致するセルをカウントする(COUNTIF関数,COUNTIFS関数)

    • エクセルで条件付きでセル数を求める関数(COUNTIF関数)、複数条件でのセル数を求める関数(COUNTIFS関数)の説明をしています。
    条件付きでカウント(COUNTIF関数)複数条件付きでカウント(COUNTIFS関数)

    検索条件に合うセルを数える。     カウントイフ
    =COUNTIF(範囲,検索条件)
       検索条件に文字や式を使う時には「"」(半角の二重引用符)で囲みます。

    完全一致の検索

    • 【問題1】下表の名簿から男性の数をカウントしなさい。この名簿では年齢は2015/1/20時点で計算しています)
      • BCDEFGHI
        2連番氏名氏名(カタカナ)性別生年月日年齢出身地血液型
        31上原嘉男ウエハラヨシオ1977/7/1237奈良県O
        42森永彩芽モリナガアヤメ1963/3/2551鳥取県A
        53古田恵フルタケイ1980/5/434奈良県A
        64太田千恵子オオタチエコ1987/8/1727兵庫県B
        75豊田啓一トヨダケイイチ1983/10/2631岩手県B
        86新村遥奈ニイムラハルナ1992/6/1022山梨県A
        97坂元彩香サカモトアヤカ1983/10/2331岐阜県B
        108坪井尚生ツボイヒサオ1975/12/2739青森県A
        119西原舞ニシハラマイ1974/11/440神奈川県B
        1210中野野乃花ナカノノノカ1970/8/1444静岡県A
        1311岩渕佳代イワブチカヨ1977/8/2537静岡県A
        1412市村将文イチムラマサフミ1963/11/2551愛媛県A
        1513芦田公平アシダコウヘイ1962/10/3152島根県A
        1614高見美姫タカミミキ1987/8/2327熊本県A
        1715高山晴彦タカヤマハルヒコ1956/8/258宮城県B
        1816高島嘉子タカシマヨシコ1968/7/446富山県A
        1917蛭田功一ヒルタコウイチ1975/10/2939島根県A
        2018北奈那キタナナ1979/5/835沖縄県B
        2119本田明莉ホンダアカリ1959/8/1555島根県A
        2220東海林真依ショウジマイ1958/1/2856三重県A
    • 【解答1例】
      • COUNTIF関数を使って求めます。
        =COUNTIF(E3:E22,"男") と入力します。なお、検索条件は文字列ですのでダブルクォーテーションでくくります。
      • 関数の引数を利用される場合は、範囲にE3:E22、検索条件に"男" と入力します。
        関数の引数ダイアログ内では文字列を入力すると「"」が補完されますので、入力しなくても大丈夫です。
        検索条件に「男」と入力しても 数式は=COUNTIF(E3:E22,"男")となります。

    部分一致の検索 - ワイルドカード文字を使って数える   

    • 【問題2】 上記の名簿で氏名が 高 で始まる人の数を数えなさい。
      【問題3】 上記の名簿で氏名が 子 で終わる人の数を数えなさい。
      【問題4】 上記の名簿で氏名が3文字の人をカウントしなさい。
      【問題5】 上記の名簿で氏名の2文字目に 田 を含む人をカウントしなさい。
    • 【解答2例】
      • ワイルドカードの *(アスタリスク) を使って、 検索条件を "高*" とすると、氏名が 高 で始まるセルの数をカウントするここができます。
        =COUNTIF(C3:C22,"高*") とします。
    • 【解答3例】
      • ワイルドカードの *(アスタリスク) を使って、 検索条件を "*子" とすると、氏名が 子 で終わるセルの数をカウントするここができます。
        =COUNTIF(C3:C22,"*子") とします。
    • 【解答4例】
      • ワイルドカードの ?(クエスチョンマーク) を使って、 検索条件を "???" とすると、氏名が3文字のセルの数をカウントするここができます。
        =COUNTIF(C3:C22,"???") とします。
    • 【解答5例】
      • ワイルドカードの ?(クエスチョンマーク)と *(アスタリスク) を使って、 検索条件を "?田*" とすると、氏名の2文字目が田のセルの数をカウントするここができます。
        =COUNTIF(C3:C22,"?田*") とします。

    ○○以上△△未満のセル数をCOUNTIF関数で数える   

    • COUNTIFS関数がExcel2007以降で使えるようになりましたので、COUNTIFでこのような使い方はしなくてもよくなりました。
      考え方の一例として挙げておきます。
    • 【問題6】 上記の名簿で年齢が30歳代の人の数を数えなさい
    • 【解答6例】
      • 30歳代ということは30以上から40最以上の数を差し引けばよいと考えると、=COUNTIF(G3:G22,">=30")-COUNTIF(G3:G22,">=40") となります。
      • 40未満から30未満の数を差し引くと考えると、=COUNTIF(G3:G22,"<40")-COUNTIF(G3:G22,"<30") とすることもできます。

    COUNTIFS関数複数の検索条件に一致するセルの個数を返します。 Topへ
    カウント イフズ
    COUNTIFS(検索条件範囲1,検索条件1,検索条件範囲2,検索条件2...)
    Excel2007で追加された関数です。

    • 条件は「条件1AND条件2...」のANDでの結果になります。
    • 【問題7】上記の名簿でB型の女性の数をカウントしなさい。
      【問題8】上記の名簿で30歳代の女性の数をカウントしなさい。
      【問題9】上記の名簿で1980年代に生まれた人をカウントしなさい。
    • 【解答7例】 =COUNTIFS(E3:E22,"女",I3:I22,"B") として求めることができます。
    • 【解答8例】 30歳代を30以上かつ40未満 と考えると、=COUNTIFS(G3:G22,">30",G3:G22,"<40",E3:E22,"女") で求めることができます。
    • 【解答9例】1980年代とは生年月日が 1980/1/1以上 かつ 1990/1/1未満ということになりますので、=COUNTIFS(F3:F22,">=1980/1/1",F3:F22,"<1990/1/1") として求めることができます。

    データベース関数

    • エクセルのデータベース関数(DSUM関数,DAVERAGE関数,DCOUNT関数,DMAX関数,DMIN関数,DGET関数)の使い方を解説しています。
    • これらのワークシート関数の特徴は条件をフィールドに書き出す必要があることです。

    Excelのバージョンに注意が必要です。(Excel2002以外の場合の注意点)

    • 検索条件の書き方に注意が必要なケースがあります。このページではDGET関数で例示して説明しています。
    • 文字列の検索を行うと、部分一致で検索されます(Excel2002は完全一致で検索されます)
      • 検索条件(Criteria)として文字列を入力すると、その文字列ではじまるアイテムがすべて検索されます。
      • たとえば、検索条件として「岡」と入力すると、"岡本"、"岡田"、"岡崎" などが検索されます。
    • 指定した文字列に完全に一致するアイテムだけを検索するには、次に示す数式を入力します。

    合計を求める
     ディー サム
    =DSUM(Database,フィールド,Criteria)

    平均値を求める
     ディー アベレージ
    =DAVERAGE(Database,フィールド,Criteria)

    数値が入力されているセルの個数を求める
     ディー カウント
    =DCOUNT(Database,フィールド,Criteria)
      DCOUNT関数,DCOUNTA関数はカウントの関数(複数条件でのカウント)で説明しています。

    最大値を求める
     ディー マックス
    =DMAX(Database,フィールド,Criteria)

    最小値を求める
     ディー ミン
    =DMIN(Database,フィールド,Criteria)

    ポイント:条件(Criteria)の書き方が重要  同一行はAND 別の行はORになります。

    【問題1】AND条件での条件の設定と計算式

    • 2005年のデータ表(B2:E15)から、2005年4月分の「りんご」「M」サイズの販売個数に関して合計などを求めなさい。
    • 条件をG3:J3へ、計算式をH6:H10に入れなさい。
    •  BCDEFGHIJ
      2期日商品名サイズ販売個数 期日期日商品名サイズ
      32005/3/1りんごM10
      42005/3/1みかんM30
      52005/4/1りんごM11販売個数
      62005/4/1みかんL20合計36
      72005/4/2りんごM12平均12
      82005/4/2みかんM30セルの数3
      92005/4/2りんごL40最大値13
      102005/4/3みかんM30最小値11
      112005/4/3りんごM13
      122005/5/1みかんM30 
      132005/5/1みかんL20 
      142005/5/2りんごL40
      152005/5/2りんごM14

    【解答1例】

    • 期日が4月ですので、「>=2005/4/1」「<2005/5/1」のAND条件になります。
    • G2:J3の4列2行を使用して条件を書きます。
    • データベース関数を使い分ければOK です。
      関数が異なるだけで、引数は同一です。
    •  BCDEFGHIJ
      2期日商品名サイズ販売個数 期日期日商品名サイズ
      32005/3/1りんごM10>=2005/4/1<2005/5/1りんごM
      42005/3/1みかんM30
      52005/4/1りんごM11販売個数
      62005/4/1みかんL20合計=DSUM(B2:E15,E2,G2:J3)
      72005/4/2りんごM12平均=DAVERAGE(B2:E15,E2,G2:J3)
      82005/4/2みかんM30セルの数=DCOUNT(B2:E15,E2,G2:J3)
      92005/4/2りんごL40最大値=DMAX(B2:E15,E2,G2:J3)
      102005/4/3みかんM30最小値=DMIN(B2:E15,E2,G2:J3)
      112005/4/3りんごM13
      122005/5/1みかんM30 
      132005/5/1みかんL20 
      142005/5/2りんごL40
      152005/5/2りんごM14

    【別解1】DSUMの例で示します。

    • フィールドに列見出しを用いる例
      • =DSUM(B2:E15,"販売個数",G2:J3)
    • フィールドに列位置の番号を用いる例
      • =DSUM(B2:E15,4,G2:J3)

    【別解2】Criteriaを数式で表す例(数式の上のセルは空欄またはフィールド名と異なる文字列にする必要があります)

    1. K2セルは空欄のままにするか、下図のようにフィールド名と異なる文字列「条件」と入力します。
      K3セルには =AND(MONTH(B3)=4,C3="りんご",D3="M") と入力しています。(データの先頭行をデータの代表とみなして数式を作成しています。)
      セルには「FALSE」と表示されています。
      • =AND(B3>=DATE(2005,4,1),B3<DATE(2005,5,1),C3="りんご",D3="M") とすることもできます。
    2. DSUM関数の例です。以下のような数式にします。CriteriaにはK2セルを含めて指定していることに注意してください。
      =DSUM(B2:E15,E2,
      K2:K3)
      =DSUM(B2:E15,"販売個数",
      K2:K3)
      =DSUM(B2:E15,4,
      K2:K3)
      • 下図ではK2セルにフィールド名と異なる文字列「条件」と入力しています。
        空欄としていてもよいのですがこちらの方が見た目が良いかもしれません。

    【問題2】OR条件の場合

    • 「りんご」「M」サイズと「みかん」「M」サイズの販売個数に関して合計などを求めなさい。
    • 条件をG3:H4へ、計算式をH6:H10に入れなさい。
    •  BCDEFGHI
      2期日商品名サイズ販売個数 商品名サイズ
      32005/3/1りんごM10
      42005/3/1みかんM30
      52005/4/1りんごM11販売個数
      62005/4/1みかんL20合計180
      72005/4/2りんごM12平均20
      82005/4/2みかんM30セルの数9
      92005/4/2りんごL40最大値30
      102005/4/3みかんM30最小値10
      112005/4/3りんごM13
      122005/5/1みかんM30 
      132005/5/1みかんL20 
      142005/5/2りんごL40
      152005/5/2りんごM14

    【解答2例】

    • OR条件になるので、2行に分けて条件を書きます。
      • 【商品名が「りんご」かつ(AND) サイズが「M」】または(OR)【商品名が「みかん」かつ(AND) サイズが「M」】の販売個数を求めることになります。
     BCDEFGHI
    2期日商品名サイズ販売個数 商品名サイズ
    32005/3/1りんごM10りんごM
    42005/3/1みかんM30みかんM
    52005/4/1りんごM11販売個数
    62005/4/1みかんL20合計=DSUM(B2:E15,E2,G2:H4)
    72005/4/2りんごM12平均=DAVERAGE(B2:E15,E2,G2:H4)
    82005/4/2みかんM30セルの数=DCOUNT(B2:E15,E2,G2:H4)
    92005/4/2りんごL40最大値=DMAX(B2:E15,E2,G2:H4)
    102005/4/3みかんM30最小値=DMIN(B2:E15,E2,G2:H4)
    112005/4/3りんごM13
    122005/5/1みかんM30 
    132005/5/1みかんL20 
    142005/5/2りんごL40
    152005/5/2りんごM14

    【別解2】条件を数式で表す例

    • I2は空欄のまま、I3に=OR(AND(C3="りんご",D3="M"),AND(C3="みかん",D3="M"))とすれば、=DSUM(B2:E15,E2,I2:I3)となります。
      I3セルの数式は =AND(OR(C3="りんご",C3="みかん"),D3="M") とすることもできます。

    値を取り出す
     ディー ゲット
    =DGET(Database,フィールド,Criteria)

    • このDGET関数はCriteria(検索条件)を満たす1つの値を返します。
      Criteria(検索条件)を満たすレコードがない場合は、エラー値 #VALUE! が返されます。
      Criteriaを満たすレコードが複数存在する場合は、エラー値 #NUM! が返されます。
    • VLOOKUP関数やINDEX関数と似ていますが、抽出条件をセルで指定すること、抽出のキーとなる列が左端になくてもよいことが異なっています。
    • 【例】下表のC14セルの値と一致するデータを取り出すことができます。

      • CritriaはC13:C14に設定しています。C14の氏名を変更すると、国語〜合計の値が変化します。
      • D14に=DGET($B$2:$H$11,D13,$C$13:$C$14)と入力して、H14までコピーします。
      • BCDEFGH
        2No氏名国語算数理科社会合計
        31岡田70657177283
        42会田55616648230
        53河合82778388330
        64近藤72787473297
        75井上61555265233
        86木下86989487365
        97植田68787566287
        108佐々木81677186305
        119桑田6264616925
        12
        13氏名国語算数理科社会合計
        14近藤72787473297
        • D14セルの計算式 =DGET($B$2:$H$11,D13,$C$13:$C$14)
          E14セルの計算式 =DGET($B$2:$H$11,E13,$C$13:$C$14)
          F14セルの計算式 =DGET($B$2:$H$11,F13,$C$13:$C$14)
          G14セルの計算式 =DGET($B$2:$H$11,G13,$C$13:$C$14)
          H14セルの計算式 =DGET($B$2:$H$11,H13,$C$13:$C$14)
      • 取り出すときのフィールドの順番は関係ありませんので、下図のような取り出し方もできます。
        • 2行目のフィールド名と13行目のフィールド名が一致する箇所を取り出していますので、並び順は関係ありません。
          数式(計算式)は上と同じです。
          D14セルの計算式 =DGET($B$2:$H$11,D13,$C$13:$C$14)
          E14セルの計算式 =DGET($B$2:$H$11,E13,$C$13:$C$14)
          F14セルの計算式 =DGET($B$2:$H$11,F13,$C$13:$C$14)
          G14セルの計算式 =DGET($B$2:$H$11,G13,$C$13:$C$14)
          H14セルの計算式 =DGET($B$2:$H$11,H13,$C$13:$C$14)
        BCDEFGH
        2No氏名国語算数理科社会合計
        31岡田70657177283
        42会田55616648230
        53河合82778388330
        64近藤72787473297
        75井上61555265233
        86木下86989487365
        97植田68787566287
        108佐々木81677186305
        119桑田6264616925
        12
        13氏名合計国語社会算数理科
        14近藤29772737874
      • Criteria(検索条件)の書き方の注意点
        • 文字列を検索条件にするときは前方一致で検索されますので注意が必要です。
          会田さんを条件にしたいとき 会 と指定することで検索できます。
        • ところが「会田川」さんがこの表に有ったら、答え(該当する解)が2つあることになり、#NUM!エラーとなります。
          会田 で始まる氏名が検索されるためです(前方一致)。
        • 「会田」を検索するには 「="=会田"」と入力する必要があります。(この方法で完全一致での検索ができます。)

    DAVERAGE関数の使い方(データベース関数)

    • エクセルのデータベース関数(DAVERAGE関数)の使い方を解説しています。
      データベース関数の特徴は条件をフィールドに書き出す必要があることです。

    平均値を求める
     ディー アベレージ
    =DAVERAGE(Database,フィールド,Criteria)

    • ここでは下表のデータを使って説明します。
      BCDEFGH
      2No名前性別年齢血液型情報A情報2
      31今泉真理50AB6159
      42藤村美奈子34B4992
      53寺田琉那25AB6169
      64五十嵐篤22B3068
      75大場龍雄40A7337
      86吉川好子28A4536
      97北章司45O9060
      108田ノ上義昭20B6138
      119露木志帆24B8562
      1210野島昌彦50O7255
      1311山岡陽菜乃45A8147
      1412吉崎光雄40B6877
      1513水口勝昭28A7058
      1614岡田真由39AB5951
      1715臼井幸也32AB3854
      1816森岡果凛34B4164
      1917川村心23O8850
    1. 条件が一つの場合

      • 【問題】性別が「女」の「情報A」の平均値を求めなさい。
      • 【解答例】
        1. 求める条件を入力します。
          ここではJ2セルにフィールド名「性別」を入力し、J3セルに条件となる「女」と入力しました。
        2. 「情報A」の得点の平均を求めるには =DAVERAGE(B2:H19,"情報A",J2:J3) と数式を入力します。
          1. または、フィールドをデータベースの何番目の列という指定もできます。
            この例では「情報A」はデータベースの6番目の列ですので 6 と入力することもできます。
            数式は =DAVERAGE(B2:H19,6,J2:J3) とします。
          2. フィールドをセル参照で指定することもできます。
            ここの例ではL2セルに入力したフィールド名をセル参照しています。
            数式は =DAVERAGE(B2:H19,L2,J2:J3) とします。
          3. 条件を数式で入力することもできます。
            ここの例では J5セルに「条件」と入力していますが、J5セルは空欄でもよいし、フィールド名と重ならない文字列でもよいです。
            J6セルの条件の数式は データの最初の行を使って作成します。 ここでは =D3="女" と論理式を入力しています。
            平均を求める数式は =DAVERAGE(B2:H19,G2,J5:J6) としました。
            • なお、この数式ではデーターベースのフィールドのセル G2 を指定しています。
              以上のようにフィールドの指定の仕方はいろいろあります。基本はデータベースのどの列かを指定していることで表現が異なるだけです。
    2. 条件が複数ある場合(AND条件とOR条件)

      • 【問題1】性別が「男」で血液型が「B」の情報Aの得点の平均を計算しなさい。
      • 【解答1例】
        • この問題は 性別が男 AND 血液型がB というAND条件になります。
          AND条件の場合は同じ行に条件を書きます。
          J2:K2セルに条件とするフィールド名を入力します。
          J3:K3セルに条件となる値をそれぞれ入力します。
          計算式は =DAVERAGE(B2:H19,G2,J2:K3) としました。
      • 【問題2】性別が「男」で血液型が「B」または「O」の情報Aの得点の平均を計算しなさい。
      • 【解答2例】
        1. 日本語の読解問題にもなりますが、条件は「男」の「B]または「男」の「O] というOR条件の平均値を求めることになります。
          OR条件の場合は異なる行に条件を書きます。
          よって条件は下図のJ3:K4のように2行に分けて入力します。
          数式は =DAVERAGE(B2:H19,G2,J2:K4) としました。
        2. 条件を数式で書くこともできます。
          ここでは 条件を =((D3="男")*(F3="B")+((D3="男")*(F3="O"))) としました。
          平均値を求める数式は =DAVERAGE(B2:H19,G2,J9:J10) となります。
          • なお、条件は =((D3="男")*((F3="B")+(F3="O"))) と書くこともできます。
            論理式では AND条件は * 、OR条件は + で書くことができます。
      • 【問題3】年齢が30歳代の日との情報Aの平均値を求めなさい。
      • 【解答3例】
        1. 年齢が30歳代とは 30以上 かつ 40未満となります。
          このように同じフィールドで複数のAND条件がある場合は 下図のJ2:K3セルのように同じ行にフィールドを並べて書く必要があります。
          数式は =DAVERAGE(B2:H19,G2,J2:K3) としました。
        2. 条件を数式で書くと =(E3>=30)*(E3<40) とすることができます。
          平均の計算は =DAVERAGE(B2:H19,G2,J9:J10) としました。

    DCOUNT関数の使い方(データベース関数)

    • エクセルのデータベース関数(DCOUNT関数)の使い方を解説しています。
      データベース関数の特徴は条件をフィールドに書き出す必要があることです。

    数値が入力されているセルの個数を求める
     ディー カウント
    =DCOUNT(Database,フィールド,Criteria)

    • ここでは下表のデータを使って説明します。
      BCDEFGH
      2No名前性別年齢血液型情報A情報2
      31今泉真理50AB6159
      42藤村美奈子34B4992
      53寺田琉那25AB6169
      64五十嵐篤22B3068
      75大場龍雄40A7337
      86吉川好子28A45欠席
      97北章司45O9060
      108田ノ上義昭20B61欠席
      119露木志帆24B8562
      1210野島昌彦50O7255
      1311山岡陽菜乃45A8147
      1412吉崎光雄40B6877
      1513水口勝昭28A7058
      1614岡田真由39AB欠席51
      1715臼井幸也32AB3854
      1816森岡果凛34B4164
      1917川村心23O8850
    1. 条件が一つの場合

      • 【問題】性別が「女」の「情報A」を受験した人数を求めなさい。
        ここの例では受験していない場合は「欠席」と入力されています。
      • 【解答例】
        1. 求める条件を入力します。
          ここではJ2セルにフィールド名「性別」を入力し、J3セルに条件となる「女」と入力しました。
          数式は =DCOUNT(B2:H19,G2,J2:J3)
          女性の数は9ですが、一人は欠席のため、情報Aの列の数値のセル数は8となります。
          • なお、この数式ではデーターベースのフィールドのセル G2 を指定しています。
            DCOUNT関数の引数のフィールドには "性別" とフィールド名を入力したり、データベースの列の順番の 3 と入力することもできます。
        2. 条件を数式で入力することもできます。
          ここの例では J5セルに「条件」と入力していますが、J5セルは空欄でもよいし、フィールド名と重ならない文字列でもよいです。
          J6セルの条件の数式は データの最初の行を使って作成します。 ここでは =D3="女" と論理式を入力しています。
          数式は =DAVERAGE(B2:H19,G2,J9:J10) としました。
    2. 条件が複数ある場合(AND条件とOR条件)

      • 【問題1】性別が「女」で血液型が「AB」の情報Aの受験者数を求めなさい。
      • 【解答1例】
        1. この問題は 性別が女 AND 血液型がAB というAND条件になります。
          AND条件の場合は同じ行に条件を書きます。
          J2:K2セルに条件とするフィールド名を入力します。
          J3:K3セルに条件となる値をそれぞれ入力します。
          計算式は =DCOUNT(B2:H19,G2,J2:K3) としました。
          性別が女で血液型ABの人数は3ですが一人は欠席のため数値のセル数は 2 となります。
        2. 条件を論理式で書くと =(D3="女")*(F3="AB") とすることができます。AND条件は乗算で表すことができます。
          受験者数は =DCOUNT(B2:H19,G2,J9:J10) で求めることができます。
        3. 条件は AND関数を使うと =AND(D3="女",F3="AB") と書くこともできます。
      • 【問題2】性別が「女」で血液型が「AB」または「B」の情報Aの受験者数をカウントしなさい。
      • 【解答2例】
        1. 日本語の読解問題にもなりますが、条件は「女」の「AB]または「女」の「B] というOR条件の平均値を求めることになります。
          OR条件の場合は異なる行に条件を書きます。
          よって条件は下図のJ3:K4のように2行に分けて入力します。
          数式は =DAVERAGE(B2:H19,G2,J2:K4) としました。
        2. 条件を数式で書くこともできます。
          ここでは 条件を =(D3="女")*(F3="AB")+((D3="女")*(F3="B")) としました。
          平均値を求める数式は =DAVERAGE(B2:H19,G2,J9:J10) となります。
          • なお、条件は =(D3="女")*((F3="AB")+(F3="B")) と書くこともできます。
            論理式では AND条件は * 、OR条件は + で書くことができます。
          • AND関数とOR関数を使って条件を書くこともできます。
            =OR(AND(D3="女",F3="AB"),AND(D3="女",F3="B"))
            または =AND(D3="女",OR(F3="AB",F3="B")) とします。
      • 【問題3】年齢が20歳代の人の情報Aの受験者数をカウントしなさい。
      • 【解答3例】
        1. 年齢が20歳代とは 20以上 かつ 30未満となります。
          このように同じフィールドで複数のAND条件がある場合は 下図のJ2:K3セルのように同じ行にフィールドを並べて書く必要があります。
          数式は =DAVERAGE(B2:H19,G2,J2:K3) としました。
        2. 条件を数式で書くと =AND(E3>=20,E3<30) とすることができます。
          カウントの計算は =DCOUNT(B2:H19,G2,J9:J10) としました。
          • 条件を論理式で書くと =(E3>=20)*(E3<30) となります。

    2進数に関係する関数

    DEC2BIN関数BIN2DEC関数
    BITAND関数BITOR関数
    BITXOR関数
    BITLSHIFT関数BITRSHIFT関数

    10進数を2進数に変換します。   デシマル・トゥ・バイナリ
    =DEC2BIN(数値,[桁数])
      数値:変換する 10 進の整数を指定します。
      桁数:省略可です。表示する桁数を指定します。
    Excel2003以前のバージョンでは、この関数が使用できず、エラー値 #NAME? が返される場合は、分析ツール アドインを組み込む必要があります。

    • 数値に負の数を指定すると、桁数は無視され、10桁(10ビット)の 2進数が返されます。
      2進数の最上位のビットは符号を表します。
    • 数値 < -512 または数値 > 511 の場合、エラー値 #NUM! が返されます。
    • 使用例
      • B2セルには=DEC2BIN(A2)
        E2セルには=DEC2BIN(D2)
        と入力されています。

    2進数を10進数に変換します。   バイナリ・トゥ・デシマル
    =BIN2DEC(数値,[桁数])
      数値:変換する 2進数を指定します。
      桁数:省略可です。表示する桁数を指定します。
    Excel2003以前のバージョンでは、この関数が使用できず、エラー値 #NAME? が返される場合は、分析ツール アドインを組み込む必要があります。

    • 数値に 2進数以外の値、または 10文字 (10 ビット) より多くの値を指定すると、エラー値 #NUM! が返されます。
    • 使用例
      • C2セルには=BIN2DEC(B2)
        F2セルには=BIN2DEC(E2)
        と入力されています。

    2つの数値のビット単位の「AND」を返します。   ビットアンド
    =BITAND(数値1,数値2)
     Excel2013で追加された関数です。

    • ビット位置にある両方のパラメーターのビットが「1」である場合のみ、それぞれのビット位置の値がカウントされます。
    • 使用例
      • C列が使用例です。
        • A列とB列の2進数でともに「1」となる箇所を計算しています。

    2つの数値のビット単位の「OR」を返します。   ビットオア
    =BITOR(数値1,数値2)
     Excel2013で追加された関数です。

    • ビット位置にあるどちらかのパラメーターのビットが「1」である場合、それぞれのビット位置の値がカウントされます。
    • 使用例
      • C列が使用例です。
        • A列とB列の2進数でどちらかが「1」となる箇所を計算しています。

    2つの数値のビット単位の「XOR」を返します。   ビットエックスオア
    =BITXOR(数値1,数値2)
     Excel2013で追加された関数です。

    • ビット位置にパラメーターのビットが異なる場合、それぞれのビット位置の値がカウントされます。
    • 使用例
      • C列が使用例です。
        • A列とB列の2進数で異なる箇所を計算しています。

    指定されたビットの数だけ左へシフトした数値を返します。   ビット・レフト・シフト
    =BITLSHIFT(数値,シフト数)
     Excel2013で追加された関数です。

    • シフトする桁の部分には「0」が入って計算します。
    • 使用例
      • 10進数の「1」は2進数では「1」となる。2桁「00」をつけると「100」となり、これは10進数では「4」となります。
        10進数の「3」は2進数では「11」となる。2桁「00」をつけると「1100」となり、これは10進数では「12」となります。

    指定されたビットの数だけ右へシフトした数値を返します。   ビット・ライト・シフト
    =BITRSHIFT(数値,シフト数)
     Excel2013で追加された関数です。

    • シフトする桁数の分だけ削除されて計算されます。
    • 使用例
      • 10進数の「10」は2進数では「1010」となる。右2桁を削除すると「10」となり、これは10進数では「2」となります。
        10進数の「23」は2進数では「10111」となる。右2桁を削除すると「101」となり、これは10進数では「5」となります。

    DELTA関数

    2つの値が等しいかどうかを調べます。   デルタ
    =DELTA(数値1,[数値2])
      数値1:比較する数値
      数値2:比較するもう一方の数値、省略可能ですが省略すると0を指定したことになります。
    Excel2003以前のバージョンでは、この関数が使用できず、エラー値 #NAME? が返される場合は、分析ツール アドインを組み込む必要があります。

    • 数値1=数値2 のとき1を返し、それ以外の場合は0を返します。
    • 【問題例1】選択問題の正解数を計算したいと思います。
      各問題は5択であり、解答がC列に入力されています。D列には正しい答えが入力されています。
      正答であれば1、誤答であれば0をE列に返しなさい。
      • 解答と答えを比較して正答であれば1、誤答であれば0をE列に返しなさい。
        E13セルには正解数を求めなさい。
        BCDE
        2問題No解答答え採点
        3問1530
        4問2221
        5問3130
        6問4221
        7問5331
        8問6240
        9問7540
        10問8130
        11問9331
        12問10120
        13正解数4
      【解答例1】
      • DELTA関数を使って求めてみました。
        正解数はSUM関数で求めることができます。
        BCDE
        2問題No解答答え採点
        3問153=DELTA(C3,D3)
        4問222=DELTA(C4,D4)
        5問313=DELTA(C5,D5)
        6問422=DELTA(C6,D6)
        7問533=DELTA(C7,D7)
        8問624=DELTA(C8,D8)
        9問754=DELTA(C9,D9)
        10問813=DELTA(C10,D10)
        11問933=DELTA(C11,D11)
        12問1012=DELTA(C12,D12)
        13正解数=SUM(E3:E12)
      • 【別解】
        1. 等しいか否かですので E3セルは =C3=D3 と論理式で書くことができます。
          ただし、これではTRUE/FALSEを返しますので =(C3=D3)*1 とすると1または0を返します。
        2. EXACT関数は文字列の比較ですが、今回のケースでも使用できます。
          =EXACT(C3,D3) とすると、TRUE/FALSEを返しますので=EXACT(C3,D3)*1 とすると1または0を返します。
        3. E3:E12セルの計算をせずに直接正解数を求めることもできます。
          =SUMPRODUCT((C3:C12=D3:D12)*1) とすると 4 が返ります。

    • 【問題例2】合計の結果が等しいか検算をしたいと思います。
      • E列の値とC:D列の合計が一致しているかを調べ、正しいときは「○」、正しくないときは「×」を返しなさい。
         BCDEFG
        2氏名国語数学英語合計検算
        3今田浩次808577242
        4内田あかり706562198X
        5江藤公正908881259
        6岡田太郎556279196
        7川口宏776470210× 
        8木村次郎647561200
      【解答例1】
      • DELTA関数を使って求めてみました。
         BCDEFG
        2氏名国語数学英語合計検算
        3今田浩次808577242=IF(DELTA(F3,SUM(C3:E3)),"○","×")
        4内田あかり706562198=IF(DELTA(F4,SUM(C4:E4)),"○","×")
        5江藤公正908881259=IF(DELTA(F5,SUM(C5:E5)),"○","×")
        6岡田太郎556279196=IF(DELTA(F6,SUM(C6:E6)),"○","×")
        7川口宏776470210=IF(DELTA(F7,SUM(C7:E7)),"○","×")
        8木村次郎647561200=IF(DELTA(F8,SUM(C8:E8)),"○","×")
      • =IF(DELTA(F3,SUM(C3:E3))=1,"○","×") とするのが普通です。
        Excelのワークシート関数では「0」はFALSEとみなし、それ以外はTRUEとみなします。
        入力の手間を省くため、=IF(DELTA(F3,SUM(C3:E3)),"○","×") と =1 を省略することもできます。
        下記のようなことで理解できると思います。

    複数の関数を使う場合、関数の挿入ボタンから関数の引数ダイアログを使って数式を作成する方法

    1. 関数の挿入ボタンをクリックします。
      関数の挿入ダイアログが表示されますので、関数の分類で「すべて表示」を選択。
      関数名で IF を選択。
      [OK]ボタンをクリックします。
    2. 数式バーに =IF() と表示されます。
      IF関数の論理式にカーソルを表示し、名前ボックスで「その他の関数」をクリックします。
    3. 関数名で DELTA を選択し、[OK]ボタンをクリックします。
    4. 数式バーには =IF(DELTA()) と表示されます。
      DELTA 関数の引数ダイアログが表示されます。
      数値1にカーソルを表示し、名前ボックスで[その他の関数]を選択。
    5. 関数の挿入で SUM を選択し、[OK]ボタンをクリックします。
    6. 数式バーには =IF(DELTA(SUM())) と表示されます。
      SUM関数の引数ダイアログで 数値1に C3:E3 を指定します。
      数式バーには =IF(DELTA(SUM(C3:E3))) と表示されます。
    7. 数式バーの DELTA 部分をクリックして、DELTA関数の引数ダイアログを表示します。
      数値2に F3 を指定します。
      数式バーには =IF(DELTA(SUM(C3:E3),F3)) と表示されます。
    8. 数式バーの IF の部分をクリックして、IF関数の引数ダイアログを表示します。
      真の場合に ○ 、偽の場合に × を入力します。
      数式バーに =IF(DELTA(SUM(C3:E3),F3),"○","×") と数式が完成できました。
      [OK]ボタンをクリックします。
    9. G3セルの数式が入力できました。
      オートフィルで下方向へ数式をコピーして完成です。

    複数条件の合計の関数(DSUM関数)

    ディーサム
    =DSUM(検索範囲,集計項目(フィールド),検索条件範囲)
       検索条件範囲を作成することによって、複数の条件で集計ができます。

    OR条件

    • 【問題】「図書費」または「諸費」の「支払金額」の合計を計算しなさい。
      検索条件をC15:C16、計算結果をE15に表示しなさい。
       BCDEF
      2月 日項目名適用収入金額支出金額
      34月15日繰越金3月分繰越金10,000
      44月19日会費会費(19人分)7,600
      54月20日図書費新聞代3,000
      64月25日会費会費(63人分)25,200
      74月26日図書費新聞代5,000
      85月10日諸費コピー代4,800
      95月12日図書費本代12,000
      105月18日諸費工具代14,200
      115月20日会費会費(2人分)800
      12合計43,60039,000
      13
      14項目名支出金額
      1539,000
      16
      17
    • 【解答例】
      1. 検索条件に「図書費」と「諸費」をC14、C15セルに入力します。
        項目名が異なると計算できませんので、完全に同じ項目名を入力する必要があります。
        • 同一列(この例ではC列の14〜15行目))に入力していますので「図書費」または「諸費」の”OR"条件になります。
        • 同一行に入力した場合は”AND”条件になります。)
      2. 検索範囲はデータ表のB2:G11、集計項目はF2セルの"支出金額"、検索条件範囲はC14:C16となります。
        検索範囲には見出し「2」行目を含めた範囲とします。
      3. BCDEF
        14項目名支出金額
        15図書費=DSUM(B2:F11,"支出金額",C14:C16)
        16諸費
        17
    • 【別解】
      • 集計項目(フィールド)には列の位置を入力することもできます。
        • =DSUM(B2:F11,E14,C14:C16)
      • 支出金額は検索範囲の左から5番目の列なので「5」と指定します。
        • =DSUM(B2:F11,5,C14:C16)
      •  BCDEF
        2月 日項目名適用収入金額支出金額
        34月15日繰越金3月分繰越金10,000
        44月19日会費会費(19人分)7,600
        54月20日図書費新聞代3,000
        64月25日会費会費(63人分)25,200
        74月26日図書費新聞代5,000
        85月10日諸費コピー代4,800
        95月12日図書費本代12,000
        105月18日諸費工具代14,200
        115月20日会費会費(2人分)800
        12合計43,60039,000
        13
        14項目名支出金額
        15図書費=DSUM(B2:F11,E14,C14:C16)
        16諸費=DSUM(B2:F11,5,C14:C16)
        17

    AND,OR条件   

    • 【問題】4月分「図書費」または「諸費」の「支払金額」の合計を計算しなさい。
      検索条件はB14:D16、計算結果はE15に表示しなさい。
       BCDEF
      2月 日項目名適用収入金額支出金額
      34月15日繰越金3月分繰越金10,000
      44月19日会費会費(19人分)7,600
      54月20日図書費新聞代3,000
      64月25日会費会費(63人分)25,200
      74月26日図書費新聞代5,000
      85月10日諸費コピー代4,800
      95月12日図書費本代12,000
      105月18日諸費工具代14,200
      115月20日会費会費(2人分)800
      12合計43,60039,000
      13
      14月 日月 日項目名支出金額
      158,000
      16
      17
    • 【解答例】
      • 検索条件1:「月 日」が「4/1以上」かつ(And)「5/1」より小さく かつ(And)「項目名」が「図書費」 
      • 検索条件2:「月 日」が「4/1以上」かつ(And)「5/1」より小さく かつ(And)「項目名」が「諸費」である
      • 検索条件1と2はOR条件になります。よって、異なる行に条件を入力します。
        同一行はAND条件(かつ)、同一列はOR条件(または)での検索になります。
      • BCDEF
        2月 日項目名適用収入金額支出金額
        34月15日繰越金3月分繰越金10,000
        44月19日会費会費(19人分)7,600
        54月20日図書費新聞代3,000
        64月25日会費会費(63人分)25,200
        74月26日図書費新聞代5,000
        85月10日諸費コピー代4,800
        95月12日図書費本代12,000
        105月18日諸費工具代14,200
        115月20日会費会費(2人分)800
        12合計43,60039,000
        13
        14月 日月 日項目名支出金額
        15>=4/1<5/1図書費=DSUM(B2:F11,"支出金額",B14:D16)
        16>=4/1<5/1諸費
        17
    • 【関連事項】

    AND,OR,NOTで含まれる範囲について

    • 検索条件は同一行内の条件がAND 行と行はOR の条件となります。
    • AND : A AND B の場合 AかつB  (AとBの重なった部分)
    • OR  : A OR B の場合  AまたはB (AとBのどちらかに含まれる部分)
    • (集合の考え方と同じです)

    条件を数式で書くこともできます   

    • 条件を数式で書くメリットは条件を書き出すセルが少なくて済みます。
      デメリットは条件をセルに書き出した場合に比べ、可読性が落ち、条件がわかりにくいものとなります。
    • OR条件の例で説明します。
      • データ部分は上記と同じです。
         BCDEF
        2月 日項目名適用収入金額支出金額
        34月15日繰越金3月分繰越金10,000
        44月19日会費会費(19人分)7,600
        54月20日図書費新聞代3,000
        64月25日会費会費(63人分)25,200
        74月26日図書費新聞代5,000
        85月10日諸費コピー代4,800
        95月12日図書費本代12,000
        105月18日諸費工具代14,200
        115月20日会費会費(2人分)800
        12合計43,60039,000
      • 条件を数式で書いています。C15セルに=OR(C3="図書費",C3="諸費") としています。
        このとき、上のC14セルは空欄のままか、データリストのフィールド名と重ならない文字列にします。
        • 数式ではフィールドの最上行のセル番地を使って条件式を書きます。
          ここの例ではC3セルを基準にした数式にします。
        BCDE
        14条件支出金額
        15=OR(C3="図書費",C3="諸費")=DSUM(B2:F11,5,C14:C15)
        • 数式は論理式で =(C3="図書費")+(C3="諸費") と書くこともできます。
        • また値で書きだしたのと同じように、このケースはOR条件ですので、下表のように同列に数式を書くこともできます。
          BCDE
          14条件支出金額
          15=C3="図書費"=DSUM(B2:F11,5,C14:C16)
          16=C3="諸費"

    エラー値とその対策

    • Excelで数式などで計算をするとエラー値が表示されることがあります。
      このページではエラーを表示しないようにする方法について書いてみます。

    表示されるエラーの原因と解消方法  Topへ

    • セルに計算式などを入力した時、エラーが表示されることがあります。
    • その表示されるエラーの原因と解消方法を簡単にまとめてみます。
    表示原因対処法
    #####セル幅が狭くて数値を表示しきれない時に表示されます。セル幅を広げます。
    書式で縮小して全体を表示します。
    計算結果が負の値になる日付または時刻が入力されている場合に表示されます。日付または時刻以外の表示形式を指定します。
    計算式をチェックします。
    #DIV/O!ゼロ (0) による除算(割り算)が行われた場合に表示されます。
    除数(割るほうの数)が入力されていない場合にも表示されます。
    ゼロ以外の数値をいれます。
    #N/ALOOKUP関数などの検索系の関数で、検索した値が指定した範囲内に存在しないとき表示されます。検索値、検索範囲をチェックします。
    ISNA関数で表示しないようにします。
    #NULL!指定した 2 つのセル範囲に共通部分がない
    セル指定の「:(コロン)」や「,(カンマ)」がない
    参照範囲をチェックします。範囲が正しいのであれば、2つの範囲の間に「,」(カンマ)が入力されているかチェックします。
    #NAME?数式に使用している関数名、セル範囲の名前などが間違っている場合に表示されます。数式に使用している名前や関数に間違いがないかどうか調べます。
    アドイン:分析ツールを組み込む必要がある関数を使用している場合に表示されます。ツール→アドインの分析ツールのチェックを入れます。
    #NUM!エクセルで処理できる数値の範囲を超えている場合に表示されます。計算結果が -1×10^307 から 1×10^307までの範囲に収まるようにします。
    引数として数値を使用すべき部分に他の値が使用されている場合に表示されます。引数が数値であるかを確認します。
    IRR関数やRATE関数などの反復計算で、答えが見つからない場合に表示されます。ワークシート関数の初期値を変更します。
    数式の反復計算を行う回数を変更します。
    #REF!参照セル、あるいはリンク元が削除された場合に表示されます。参照先を変更する、あるいは正しく参照を設定し直します。
    #VALUE!数値や論理値(TURE・FALSEなど)が必要な部分に文字列などがある場合
    単独セルを参照するように設定した先が複数の引数が設定されている場合に表示されます。
    数式をチェックします

    IFERROR関数、IFNA関数を利用して数式で対処する

    • Excel2007ではIFERROR関数が、Excel2013ではIFNA関数が追加されました。
      • 書式は =IFERROR(値, エラーの場合の値) とシンプルなものです。
        Excel2003以前ではISERROR関数などでエラー値か否かを調べるといった数式を作成していましたが、これらをIFERROR関数で置き換えることができます。
        • 評価されるエラーの種類は、#N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME? 、 #NULL! となっています。
      • IFNA関数を使った例(下図の例はExcel2013です)
        • 評価されるエラーの種類は、#N/A のみとなっています。
        • Excel2007,Excel2010ではIFNA関数は使えませんが、IFERROR関数で対処できます。(下図はExcel2010です)

    エラーを調べる関数を利用して数式で対処する

    • Excel2003以前では上記のIFERROR関数は使えませんが、IS系の関数を利用することができます。
      対象のセルを調べることができる関数には以下のものがあります。
      • ISERROR対象が(#N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME? または #NULL! のいずれか) を参照するとき TRUE を返します。
        ISBLANK対象が空白セルを参照するとき TRUE を返します。
        ISERR対象が #N/A を除くエラー値を参照するとき TRUE を返します。
        ISLOGICAL対象が論理値を参照するとき TRUE を返します。
        ISNA対象がエラー値 #N/A (使用する値がない) を参照するとき TRUE を返します。
        ISNONTEXT対象が文字列でない項目を参照するとき TRUE を返します
        (対象が空白セルを参照するときも TRUE になりますので注意してください)。
        ISNUMBER対象が数値を参照するとき TRUE を返します。
        ISREF対象がセル範囲を参照するとき TRUE を返します。
        ISTEXT対象が文字列を参照するとき TRUE を返します。
    • これらの関数を利用して数式でエラーを表示しないように対処することができます。
      また、次項以降では各エラー個別の対処法を書いてみますのでご覧ください。
      • ISERROR関数とIF関数を使うとほとんどのエラーに対処が可能です。

     エラー タイプ
    =ERROR.TYPE関数(エラー値)
        エラー値に対応する数値を返します

    • 下表のようにエラーに対応した数値が返されます。
      エラー値ERROR.TYPE
      #NULL!1
      #DIV/0!2
      #VALUE!3
      #REF!4
      #NAME?5
      #NUM!6
      #N/A7
      #GETTING_DATA8
      その他#N/A

     シャープ
    #####

    1. セル幅が狭くて数値を表示しきれない時に表示されます。
      • 例1:セル幅を狭くしすぎている
        1. B2セルに「12345」と入力され、すべて表示されており問題はありません。
        2. セル幅を狭くするとエラーが表示されました。
        • 対処法1:セル幅を数値がすべて表示できるまで広げる。
        • 対処法2:フォントサイズを数値がすべて表示できるまで小さくする。
      • 例2:セル幅が表示する数値の長さより狭いと表示される
        1. B2セルには「1234567890」と入力されています。セルの表示形式は標準です。
        2. B2セルの表示形式を「数値」に変更します。
          • 通貨や会計に変更しても同様です。
        3. ####エラーが表示されました。
        • 対処法1:セル幅を数値がすべて表示できるまで広げる。
        • 対処法2:フォントサイズを数値がすべて表示できるまで小さくする。
      • 例3:フォントサイズが大きく、数値を表示しきれないときもエラーとなります。
        • 対処法は上記と同様に、セル幅を広げる、または、フォントサイズを表示できるまで小さくします。
    2. 日付や時刻データでマイナスの値となる時に表示されます。
      • 例1:日付や時刻の計算結果がマイナスとなる時、表示形式が日付や時刻の表示形式ではエラー値######が表示されます。
        セルの表示形式が標準の場合はシリアル値での計算結果(マイナスの値)が表示されます。
      • 対処法A
        • 日付の場合は上記のようにセルの表示形式を日付から標準に変更します。
        • 時刻の場合、時刻の表示形式を利用した文字列で表示することができます。
          • 計算値がマイナスの時は頭に「−」(マイナス記号、ハイフン)を表示します。 =IF(A2-B2<0,"-","")
            計算値の絶対値を求めて、Text関数で時刻の表示形式の文字列にします。TEXT(ABS(A2-B2),"[h]:mm:ss")
            これらを & でつなげています。=IF(A2-B2<0,"-","") & TEXT(ABS(A2-B2),"[h]:mm:ss")
      • 対処法B
        • [ファイル]タブをクリックして、[オプション]を選択。
          [詳細設定]で「1904年から計算する」にチェックを入れます。
          • なお、この設定をすると日付データ(シリアル値)が1904年からに変更されますので4年ほどずれます。
            すでに日付データが入力されているブックで設定を変更するときには注意が必要です。
        • 表示形式が時刻でもマイナスの値を表示することができるようになります。

    ディバイド・パー・ゼロ
    #DIV/O!

      DIVided by 0

    • ゼロ (0) による除算(割り算)が行われた場合に表示されます。
      除数(割るほうの数)が入力されていない場合にも表示されます。
    • 対処法A
      • 数式の結果がエラーであるか否かをISERROR関数で調べて処理します。
        =IF(ISERROR(A2/B2),"",A2/B2)
      • ほかに、ISERR関数なども使うこともできます。
      • Excel2007以降であれば、最初に書いたIFERROR関数を使うことができます。
    • 対処法B
      • エラーの原因となる要素をトラップして、分母が0とならないようにするか、未入力のセルを参照しないようにします。
      • IF関数を使って0や未入力の時に分岐するようにします。
        =IF(OR(B2=0,B2=""),"",A2/B2)

    ノー・アサイン
    #N/A

      Not Available value

    • LOOKUP関数、VLOOKUP関数などの検索系の関数で、検索した値が指定した範囲内に存在しないとき表示されます。
    • 対処法A
      • ISNA関数で数式が#N/Aエラーとなるかをチェックする
        =IF(ISNA(VLOOKUP(A2,$D$2:$E$5,2,FALSE)),"",VLOOKUP(A2,$D$2:$E$5,2,FALSE))
      • 数式の結果がエラーであるか否かをISERROR関数で調べて処理します。
        =IF(ISERROR(VLOOKUP(A2,$D$2:$E$5,2,FALSE)),"",VLOOKUP(A2,$D$2:$E$5,2,FALSE))
      • Excel2013であれば、IFNA関数で対処できます。
      • Excel2007以降であれば、IFERROR関数で対処できます。
    • 対処法B
      • 検索するリストに検索する値が有るのか/無いのかをCOUNTIF関数で調べて処理する。
        =IF(COUNTIF($D$2:$D$5,A2)=0,"",VLOOKUP(A2,$D$2:$E$5,2,FALSE))

    ヌル
    #NULL!

      NULL intersection

    • 指定した 2 つのセル範囲に共通部分がない場合に表示されます。
      また、セル指定の「:(コロン)」や「,(カンマ)」がない場合に表示されます。
    • 対処法
      • 数式内の抜けている:(コロン)を入力します。
        =AVERAGE(B1B3)←見やすいように全角で表示しています。実際には半角で入力します。

    ネーム#NAME?Unrecognized NAME

    • 数式に使用している関数名、セル範囲の名前などが間違っている場合に表示されます。
      • 合計の関数SUMを「SAM」と入力しています。
      • 対処法 :関数の名前を間違っている場合は正しい名前に修正します。
    • Excel2003以前でアドイン:分析ツールを組み込む必要がある関数を使用している場合に表示されます。
      • Excel2003以前ではWORKDAY関数などは分析ツールを組み込む必要があります。
      • 対処法:ツール→アドインの分析ツールのチェックを入れます。


    ナンバー
    #NUM!

      An invalid NUMber

    • エクセルで処理できる数値の範囲を超えている場合に表示されます。
      • 対処法:計算結果が -1×10^307 から 1×10^307までの範囲に収まるようにします。
        • FACT関数は階乗を求める関数です。
      • 日付の計算で1900/1/1より前になる計算結果の時も#NUM!エラーが表示されます。
    • 引数として数値を使用すべき部分に他の値が使用されている場合に表示されます。

    リファレンス
    #REF!

      A REFerence to a cell that does not exist

    • 参照セル、あるいはリンク元が削除された場合に表示されます。
      1. 下図のように「割合」は合計のセル(E7セル)を参照しています。
      2. E7セルの含まれている7行目を削除します。
        • [Delete]キーでのクリアではなく、「行の削除」です。もしくは「セルの削除」でも同様です。
      3. 参照していたセルが消えてしまったので、「#REF!」エラーが表示されました。
    • 対処法
      • 合計の値を表示するセルを新たに作成して、そのセルを参照するように数式を修正します。
      • セルを参照しない数式に書き換えることでも対処できます。

    バリュー
    #VALUE!

      Wrong type VALUE

    • 数値や論理値(TURE・FALSEなど)が必要な部分に文字列などがある場合
      • 下図は =C3*D3 の計算例ですが、D3セルが文字列になっています。数値*文字列 の計算はできないので #VALUE! エラーとなりました。
      • 対処法
        • 「10個」と表示したいときは、表示形式で「0"個"」として、セルの値は数値にして表示形式で表示を変えます。
          • 表示形式をユーザー定義で「0"個"」と設定します。
      • 対処法:エラーを非表示にする
        • ISERROR関数とIF関数を使うとほとんどのエラーに対処が可能です。
        • Excel2007以降であれば、IFERROR関数で対処することができます。

    関数の前に _xlfn. と表示される

    関数の前に _xlfn. と表示される  Topへ

    • 原因は表示されているExcelのバージョンではサポートされていない関数であることを示しています。
    • Excel2013で下図のように、Excel2013で新たに追加された関数ISFORMULAやFORMULATEXTを使ったファイルがあります。
    • このファイルをExcel2010で開いてみます。
      C2セルの数式は =_xlfn.ISFORMULA(A2) と表示されています。
      • セルには 「TRUE」と表示されており、一見したら正しく機能しているように見えますが、編集して[F2]キーを押して[Enter]キーを押すと、 #NAME? と表示されます。
    • D2セルの数式は =_xlfn.FORMULATEXT(A2) と表示されています。
    • F2セルのIF関数を使った数式では =IF(_xlfn.ISFORMULA(A2),_xlfn.FORMULATEXT(A2),"数式では無い") とそれぞれの関数の前に _xlfn. が付いています。
    • では、この状態でExcel2010で上書き保存して、ファイルを閉じます。
      新たに、Excel2013で開くと _xlfn. が付かない正常なものとして表示されます。
    • 結論としては、_xlfn. が付いていることで、上位バージョンで作成された数式であるということが分かるようになっています。
      よって、これらの関数を開いているバージョンで使用できる関数で置き換えるか、他の手段(マクロなど?)で対処することになると思います。
      • VBAのユーザー定義関数で処理した例です。Excel2010でほぼ同じように処理できました。
        なお、VBAを使用しているので、このファイルは マクロ有効ブック xlsm で保存しなおす必要があります。
      • 使用したコードは下表のようなものです。
        Function myFn1(c As Range) As Boolean

          myFn1 = c.HasFormula

        End Function

        Function myFn2(c As Range) As String

          myFn2 = c.Formula

        End Function

    FORMULATEXT関数,ISFORMULA関数の使い方

    • Excel2013で追加された新しい関数FORMULATEXT関数,ISFORMULA関数の使い方について書いています。
    FORMULATEXT関数ISFORMULA関数

    数式を文字列として返します
     フォーミュラ テキスト
    =FORMULATEXT(参照)   Topへ
    Excel2013で追加された関数です。

    • =FORMULATEXT(参照)
      • 数式を文字列として返します。
      • 下図はB列の数式をC列に文字列として返している例です。
        C2セルには =FORMULATEXT(B2) と入力されています。
        対象のセルが数値や文字列で数式でない場合は #N/Aエラーが返されます。
        数式の場合はセルに入力されている数式が文字列として返されます。
    • 使用例
      • 数式にSUM関数を使っているか/否かを調べたいと思います。
        条件付き書式で =ISERR(SEARCH("SUM",FORMULATEXT(B5))) と数式で条件を作成しました。
      • SUM関数を使っていないセルを塗りつぶすことができました。
        数値のB2:C4セルは =INT(RAND()*1000) といった乱数を発生させていますので、上記の図とは値が異なっています。

    数式が含まれるか否かを調べます
     イズ フォーミュラ
    =ISFORMULA(参照)   Topへ
    Excel2013で追加された関数です。

    • 数式が含まれるセルであるか否かを調べ、TRUE または FALSE を返します。
    • 下図の例はD列にB列を調べ多結果を表示しています。
      説明のためB列の中身をC列に示しています。
    • 使用例
      1. 上記の例でB列が数式の場合はセルを塗りつぶしたいと思います。
        条件付き書式で =ISFORMULA(B2) と条件を数式で入力します。
      2. 数式が入力されているセルの塗りつぶしができました。

    GESTEP関数の使い方

    指定したしきい値より大きいか、小さいかを調べます。   ジー イー ステップ
    =GESTEP(数値,[しきい値])
      数値:比較する数値
      しきい値:しきい値となる数値、省略可能ですが省略すると0を指定したことになります。
    Excel2003以前のバージョンでは、この関数が使用できず、エラー値 #NAME? が返される場合は、分析ツール アドインを組み込む必要があります。

    • 数値 >= しきい値 のとき1を返し、それ以外の場合は0を返します。
    • 【問題例】日々の販売数のデータが有ります。販売目標数を達成した日は何日か求めなさい。
      • 解答と答えを比較して正答であれば1、誤答であれば0をE列に返しなさい。
        E13セルには正解数を求めなさい。
        BCDE
        2販売目標数300
        3目標達成日数3
        4
        5日付販売数達成の判定
        65月1日2800
        75月2日2470
        85月3日3971
        95月4日3581
        105月5日2310
        115月6日4291
    • 【解答例】
      • GESTEP関数を使って求めてみました。
        目標達成日数はSUM関数で求めることができます。
        BCDE
        2販売目標数300
        3目標達成日数=SUM(D6:D11)
        4
        5日付販売数達成の判定
        65月1日280=GESTEP(C6,$E$2)
        75月2日247=GESTEP(C7,$E$2)
        85月3日397=GESTEP(C8,$E$2)
        95月4日358=GESTEP(C9,$E$2)
        105月5日231=GESTEP(C10,$E$2)
        115月6日429=GESTEP(C11,$E$2)
      • 【別解】
        1. 以上であるか否かを調べるので D6セルは =C6>=$E$2 と論理式で書くことができます。
          ただし、これではTRUE/FALSEを返しますので =(C6>=$E$2)*1 とすると1または0を返します。
        2. D6:D11を使わないで直接目標達成日数を求めることができます。
          =COUNTIF(C6:C11,">="&E2) とすると 3 が返ります。

    • 【問題例2】鹿児島市の年間降水量のデータがあります。過去50年の平均より多い年はいくつでしょう。
      E6セルに答えを求めなさい。
      BCDE
      2降水量(mm)
      3合計過去50年の平均降水量
      4199924622271
      520002667答え
      6200119908
      720022082
      820032035
      920042315
      1020051988
      1120062281
      1220072420
      1320082346
      1420091530
      1520102942
      1620112063
      1720122895
    • 【解答例2】
      • D列を作業列として利用します。
        D4セルに =GESTEP(C4,$E$4) と入力して、D17セルまでコピーします。
        E6セルには =SUM(D4,D17) と入力します。
        BCDE
        2降水量(mm)
        3合計過去50年の平均降水量
        419992462=GESTEP(C4,$E$4)2271
        520002667=GESTEP(C5,$E$4)答え
        620011990=GESTEP(C6,$E$4)=SUM(D4,D17)
        720022082=GESTEP(C7,$E$4)
        820032035=GESTEP(C8,$E$4)
        920042315=GESTEP(C9,$E$4)
        1020051988=GESTEP(C10,$E$4)
        1120062281=GESTEP(C11,$E$4)
        1220072420=GESTEP(C12,$E$4)
        1320082346=GESTEP(C13,$E$4)
        1420091530=GESTEP(C14,$E$4)
        1520102942=GESTEP(C15,$E$4)
        1620112063=GESTEP(C16,$E$4)
        1720122895=GESTEP(C17,$E$4)

    GETPIVOTDATA関数の使い方

     ゲット ピボットデータ
    =GETPIVOTDATA(データフィールド,ピボットテーブル,[フィールド1,アイテム1,フィールド2,アイテム 2], ...)
        ピボットテーブルから値を取り出す。フィールドとアイテムを指定することもできる。

    • ピボットテーブル外のセルからピボットテーブル内のデータを参照すると、GETPIVOTDATA関数を使った数式が入力されます。
      (このページではExcel2010の画面を使って説明を書いています。)
      • 下図のようなピボットテーブルを作成しています。
      • ピボットテーブルの外にあるセルで、「=」を入力して、ピボットテーブル内のセルをクリックするとGETPIVOTDATA関数を使った数式が入力されます。
        • 引数の「ピボットテーブル」には左上端のセル番地が入力されます。
      • [Enter]キーで入力を確定すると、参照先のセルの値が表示されます。
      • セルを参照する数式に変更すると下図のようにすることができます。
        • A16:A18に入力されている担当者とB15:C15に入力されている型番の集計結果(合計金額)の計算が表示されています。
      • フィールドとアイテムを指定せずに総数を求めることもできます。
        • ただし、総計を非表示にするとエラーとなります。

    • ピボットテーブルのセル内を参照するときに、GETPIVOTDATA関数を使用したくない。
      • 普通のセル参照 =C8 といった数式にしたいときは?
        1. ピボットテーブル内のセルをクリックします。
        2. ピボットテーブルツールの[オプション]タブを選択。
          オプションの[▼]ボタンをクリックして、「GetPivotDataの生成」をクリックしてオフにします。
        3. GETPIVOTDATA関数を使わないセル参照になります。

    HLOOKUP関数の使い方

     エイチルックアップ
    =HLOOKUP(検索値,範囲,行位置 [,検索の型])

    • 範囲の上端の行で、検索値を検索し、値の見つかった列の、行位置のセルの内容を表示する。
      つまり、検索値が上の行にあり、返す値が下の行にあるときに使用できます。
    • 検索の型:「TRUE」もしくは [省略](「1」と入力してもOK)
      • 検索値が見つからない場合に、検索値未満で最も大きい値が使用されます。
      • (注)検索範囲の値は昇順に並んでおく必要があります。
    • 検索の型:「FALSE」(「0」と入力してもOK)
      • 検索値と完全に一致する値だけが検索され、見つからない場合はエラー値 #N/A が返されます。
      • 文字列の検索に適します。

    • 【問題】右の評価一覧表にしたがって、D4:E6セルの評価を表示する数式を入れなさい。
      なお、H3セルの「0」は0以上40未満 I3セルの「40」は40以上70未満 J3セルの「70」は70以上を意味します。
      •  BCDEFGHIJ
        2 評価一覧表
        3名前得点評価A評価B得点04070
        4今田50評価A×
        5河野20×不可評価B不可
        6山田70
      【解答例1】
      • D4セルに=HLOOKUP(C4,$H$3:$J$5,2,TRUE) 、E4セルに=HLOOKUP(C4,$H$3:$J$5,3,TRUE) と入力します。
        D4:E4 セルを選択し、オートフィルでD6:E6セルまで数式をコピーして完成です。
        • D4セルに=HLOOKUP($C4,$H$3:$J$5,COLUMN(B$1),TRUE) とすると一つの数式ですみます。
          この場合は、D4セルをE5セルにコピーし、さらにD4:E4セルを下方向へコピーします。
      • なお、「検索の型」に「TRUE」を入れていますが、省略または1としてもOKです。
      • BCDEFGHIJ
        2 評価一覧表
        3名前得点評価A評価B得点04070
        4今田50=HLOOKUP(C4,$H$3:$J$5,2,TRUE)=HLOOKUP(C4,$H$3:$J$5,3,TRUE)評価A×
        5河野20=HLOOKUP(C5,$H$3:$J$5,2,TRUE)=HLOOKUP(C5,$H$3:$J$5,3,TRUE)評価B不可
        6山田70=HLOOKUP(C6,$H$3:$J$5,2,TRUE)=HLOOKUP(C6,$H$3:$J$5,3,TRUE)
    • 【解答例2】検索範囲に名前を定義して使う方法
      • セル範囲 H3:J5 に『評価一覧』と名前を定義すると、
        • D4セルの数式は =HLOOKUP(C4,評価一覧,2)
        • E4セルの数式は =HLOOKUP(C4,評価一覧,3)
        となります。
      • D4:E4 セルを選択し、オートフィルでD6:E6セルまで数式をコピーして完成です。
      • 別解:D4セルに=HLOOKUP(C4,評価一覧,COLUMN(B1))としてもOKです。

    • 【問題2】商品名を入力すると、商品の単価表から検索して単価を入力するように、D3:D4セルの数式を作成しなさい。
      • BCDEFGHIJKL
        2日付商品名単価数量金額商品名りんごみかんバナナ
        34月1日りんご100202,000単価100150120200
        44月2日バナナ120253,000
    • 【解答例】
      • BCDEFGHIJKL
        2日付商品名単価数量金額商品名りんごみかんバナナ
        34月1日りんご=HLOOKUP(C3,$I$2:$L$3,2,FALSE)202,000単価100150120200
        44月2日バナナ=HLOOKUP(C4,$I$2:$L$3,2,FALSE)253,000
      • 商品の単価は商品名を検索して単価を探します。検索する商品名は行方向に配置してあるので、HLOOKUP関数を使うことになります。
        =HLOOKUP(C3,$I$2:$L$3,2) としたところ、間違った単価が返されてしまいました。
      • 検索する値が昇順でない場合は、完全一致で検索する必要があるので、検索の型を FALSE または 0 と指定します。
        D3セルには =HLOOKUP(C3,$I$2:$L$3,2,FALSE) と入力します。
      • 下図の I5:L6 ように、商品名が昇順に並んでる場合は、HLOOKUP関数の引数の検索の型がTRUE(もしくは省略)で良いのですが、この問題では昇順に並んでいません。
        検索する値が I5:L6 のように昇順なら、=HLOOKUP(C3,$I$5:$L$6,2) とすることができます。

    時間・時刻の関数

    • Excelでの時間・時刻のシリアル値から時,分,秒を取出す関数(HOUR関数,MINUTE関数,SECOND関数)
      時,分,秒の数値から時間・時刻のシリアル値に直す関数(TIME関数)
      文字列からシリアル値に直す関数(TIMEVALUE関数)
      について解説しています。
    • 時給計算の仕方を例に挙げて説明しています。

    シリアル値を数値へ(HOUR,MINUTE,SECOND)数値をシリアル値へ(TIME関数)
    文字列をシリアル値へ(TIMEVALUE関数)
    時間の合計(表示形式)勤務時間の計算について

    シリアル値:Excelでは日付や時刻はシリアル値で処理されます。

    • 日付は1900年1月1日を「1」、1900年1月2日を「2」・・・と、数値で表します。
    • 時間・時刻は「1日(24時間)」を「1」として、12:00は「0.5」、6:00は「0.25」と小数点以下の数値で表します。
    • なお、WindowsとMacintoshでは、シリアル値の基準が異なります。
      • Macintoshでは「1904年1月2日」が「1」となっています。
      • WindowsとMacintoshでExcelファイルをやり取りすると、日付がずれる場合があります。
        • Excel2007以降ではExcelのオプションで設定します。[ファイル]タブをクリックして、[オプション]を選択。
          [詳細設定]を選択して、「次のブックで計算するとき」で「1904年から計算する」にチェックを入れます。
        • Excel2003以前では【ツール】→【オプション】で【計算方法】タブの『1904年から計算する』にチェックを入れて、シリアル値の起点を変更します。

    時刻データから「時」「分」「秒」を取り出す(シリアル値から数値への変換)  アワー
    =HOUR(時間)   :時間を取り出します。0〜23(時)の範囲の整数になります。
     ミニット
    =MINUTE(時間) :分を取り出します。 0〜59(分)の範囲の整数になります。
     セカンド
    =SECOND(時間) :秒を取り出します。 0〜59(秒)の範囲の整数になります。
       (注) 時間にはシリアル値を使用します。

    • 【問題】
      • 出社時間、退社時間、時給からその日の日給を計算しましょう。
      • セルD5,D7,D8,D9,D10,D11に数式を入れましょう。
      •  BCD
        2時給計算
        3時給1,000
        4出社時刻退社時刻勤務時間
        58:00:1017:20:209:20:10
        6
        7勤務時間時間9
        820
        910
        10時給計算例シリアル値9,336.11
        11時間単位9,333.33
    • 【解答例】
      •  BCD
        2時給計算
        3時給1,000
        4出社時刻退社時刻勤務時間
        58:00:1017:20:20=C5-B5
        6
        7勤務時間時間=HOUR(D5)
        8=MINUTE(D5)
        9=SECOND(D5)
        10時給計算例シリアル値=D5*24*C3
        11時間単位=D7*C3+D8/60*C3
      1. 勤務時間=退社時間-出社時間 =C5-B5 で求められます。
      2. 日給の計算
        1. シリアル値での計算
          • 勤務時間(D5)×時給(C3) では求めることができません。
            時間データにシリアル値が使われているためです。
            (24時間が「1.0」で、10時間は「0.4166667」となります。)
          • 勤務時間*24*時給 つまり、=D5*24*C3 とします。
        2. 時間単位での計算
          • 時間と分を取り出してから計算することもできます。
            この場合はHOUR、MINUTE関数を使って時間、分を取り出して計算します。 
          • 時間×時給+(分÷60)×時給 =D7*C3+D8/60*C3 とします。(秒は無視しています)
          • =HOUR(D5)*C3+MINUTE(D5)/60*C3 と1セルでまとめることもできます。

    (ステップアップ)時給の四捨五入

    • 上記の結果から分かると思いますが、秒単位まで表示していた場合シリアル値での計算では秒単位の日給が計算され、実情と異なってしまいます。(通常は分単位までと思います)
    • また、日給計算結果には小数点以下の金額が計算されていますので、日々の日給は整数の単位に四捨五入などして丸めておく必要があります。
    • 四捨五入の例です(9333となります)         
      • =ROUND(D5*24*C3,0)では秒単位まで計算され「9336」となるので、時と分だけ取出して計算します。
      • =ROUND(HOUR(D5)*C3+MINUTE(D5)/60*C3,0)
    • 30分単位で勤務時間を切り捨てて計算する場合(9000となります)
               
      • =FLOOR(D5,"0:30")*24*C3

    (おまけ)時刻を数値に変換する

    • 時刻「10:30」を数値の「10.5」や「時.分」に変換する例です。

    (関連事項)

    時刻に対応する小数(シリアル値)を返します   タイム
    =TIME(時,分,秒)
      時:0 〜 32767 の範囲で指定します。23 を超える値は 24 で除算され、剰余が時間として計算されます。

      分:0 〜 32767 の範囲で指定します。59 を超える値は時と分に変換されます。
      秒:0 〜 32767 の範囲で指定します。59 を超える値は時、分、秒に変換されます。

    • 【問題】
      • 時刻の時、分、秒が別々のセルに表示してあります。
      • E4セルには『時:分:秒』 E5セルには『時:分』と表示しなさい。
      •  BCDE
        2時:分:秒
        31122311:22:3
        4131013:10
    • 【解答例】
      •  BCDE
        2時:分:秒
        311223=TIME(B3,C3,D3)
        41310=TIME(B4,C4,0)
    • 【操作例】
      1. E4:E5セルは次のように表示されました。
        Hour04
      2. Excel2007以降は[ホーム]タブの表示形式]→[その他の表示形式]を実行。
        Excel2003以前は【書式】→【セル】で表示形式を変更します。
        • E4セルは『13:30:55』
        • E5セルは『13:30』
          と、それぞれ設定します。

    時間の合計表示形式に注意が必要です。
    標準では、24時表示になっているため、24時を超える値は正しく表示されません。
    下図のように、合計のセルの表示形式を[h]:mmとします。

    • 【操作手順】
      1. B8セルを選択。
      2. メニューバーの【書式】→【セル】を選択。
      3. 【表示形式】タブで「ユーザー定義」を選択し、種類に「[h]:mm」と入力します。
      4. なお、違いが分かるようにセルB7,B8には =SUM(B2:B5) と同じ式が入れてあります。
        B7セルの表示形式は h:mm 、B8セルの表示形式は [h]:mm とした例です。
        B7セルには24時を超えた分しか表示されず、期待した表示になりません。
        B8セルは表示形式を [h]:mm として、期待した表示になっています。

    文字列で表された時刻を小数(シリアル値)に変換します  タイムバリュー
    =TIMEVALUE(時刻文字列)
      時刻のシリアル値:0〜0.99999999 の値で、0:00:00(午前0時)〜23:59:59 (午後11時59分59秒) までの時刻を返します。

    • 文字データを時刻データ(0〜1の小数、シリアル値)に変換します。
    • TIMEVALUE関数は24時までのシリアル値になります。24:00以上を扱う時はVALUE関数を使うことができます。
    • 【問題】
      • 文字列の時刻データがB2〜B5に入力されています。
      • それぞれの時刻をシリアル値に変換して、C列、D列に表示しなさい。
      •  BCD
        26:000.25
        312:000.5
        424:0001
        536:000.51.5
      • 24:00以上を表示するにはセルの表示形式をユーザー定義で「[h]:mm」とします。
      • 文字列として時刻を表示するには「'6:00」のように「'」(アポストロフィ)を頭に付けます。
        または、=TEXT("6:00","h:mm") のようにTEXT関数で変換します。
    • 【解答例】
      • C4セル以降のようにTIMEVALU関数では24:00以上はうまく計算されません。
        TIMEVALUE("24:00")=0 となります。
      • 24:00以上を計算する時には、D列のようにVALUE関数を使用するか、=B4 として表示形式を数値にします。
      •  BCD
        26:00=TIMEVALUE(B2)
        312:00=TIMEVALUE(B3)
        424:00=TIMEVALUE(B4)=VALUE(B4)
        536:00=TIMEVALUE(B5)=VALUE(B5)

    【ステップアップ】時間を単位時間で切り捨てる

    • 時給計算などで、30分単位で切り捨てて計算する場合には
      =FLOOR(値,"0:30") とします。
    • しかし、時間は24時間を1としたシリアル値で換算されていますので、小数部で誤差が出ることがあります
      FLOOR関数でうまくいかない場合もありますので、そういった場合には、
      (キーボードからの入力ではほとんど問題ないですが、オートフィルなどで連続データを入力した時などにこの問題を生じます。)
      • =FLOOR((TIMEVALUE(TEXT(D5,"hh:mm"))),"0:30")*24*D3
      のようにTIMEVALUE関数を使う方法があります。
    • FLOOR関数はこちらへ

    ハイパーリンクの関数の使い方

    • ハイパーリンクの設定をHYPERLINK関数やハイパーリンクの挿入で行う方法を説明しています。

    リンクの設定(HYPERLINK関数)ハイパーリンクの挿入
    ハイパーリンクの書式(スタイル)を変更する

    ファイルや別シートのセルへリンクを張る   ハイパーリンク
    =HYPERLINK(リンク先,別名)
       リンク先:文字列を二重引用符で囲んで指定するか、またはリンクが設定されているセルを文字列として指定する

    • リンク先は "[ファイル名]シート名!セル" のように記述します。
    • 同一ファイル(ブック)の場合には "#Sheet2!A2" のようにシート名の前に「#」を入れます。
    • Webアドレスの場合には「=HYPERLINK("http://www.eurus.dti.ne.jp/yoneyama/","WordとExcelの小部屋")」とします。
    • 住所からGoogle Mapを表示することもできます。
      • 以前はできたのですが、GoogleMapの変更があったようでうまくリンクできないようです。(記 2017/1/16)
        日本語が文字化けして検索できない現象です。
        住所の代わりに英語で Kagoshima City Hall と入力して検索した例です。


        下図のように検索できました。

        E2セルに =HYPERLINK("https://www.google.co.jp/maps/place/"& B2,"Google Maps") としています。


      ハイパーリンクの挿入を使う方法 

      【操作手順】同一ファイルの別シートへのリンク方法を例に説明します。
      1. [挿入]タブの[ハイパーリンク]をクリックします。
        Excel2003以前は メニューバーの【挿入】→【ハイパーリンク】を選択。
      2. リンク先:このドキュメント内
        ドキュメントの場所:Sheet2 を選択
        セル参照を入力してください:B2 と入力
        表示文字列:シート2のB2へリンク としました。(何でも良い)
      3. 数式バーには表示文字列に入力した文字が表示されます。

      ハイパーリンクの書式(スタイル)を変更する 

      • ハイパーリンクを設定すると、スタイルが適用され書式が変更されます。
      • Excel2007以降のスタイルの変更方法
        1. ハイパーリンクが表示されている必要があります。ハイパーリンクを挿入しておきます。
        2. [ホーム]タブの[セルのスタイル]をクリックし、[ハイパーリンク]を右クリックします。
          右クリックメニューの[変更]をクリックします。
        3. [書式設定]ボタンをクリックします。
        4. セルの書式設定 ダイアログボックスが表示されますので、ここで書式を変更することができます。
      • Excel2003以前のスタイルの変更方法
        1. [書式]→[スタイル]を選択。
        2. スタイル名で「ハイパーリンク」を選択し、[変更]ボタンをクリックします。
        3. 書式設定ダイアログで変更します。

      【関連事項】

      【参考資料】

      HYPERLINK関数

      HYPERLINK関数の使い方[ハイパーリンクの挿入]機能を使う方法
      ハイパーリンクを削除するハイパーリンクの色を変更する
      ハイパーリンクの色を変えない(標準の色にする)

      ファイルや別シートのセルへリンクを張る      ハイパーリンク
      =HYPERLINK(リンク先,別名)
         リンク先:文字列を二重引用符で囲んで指定するか、またはリンクが設定されているセルを文字列として指定する

      【例】

      1. リンク先は "[ファイル名]シート名!セル" のように記述します。
        • =HYPERLINK("[HP_2016_Hyperlink.xlsx]2学期!A1", "2学期のA1へ")
          ファイル名 HP_2016_Hyperlink.xlsx 、シート名 2学期 の A1セルへのリンクです。
          ファイル名は [ ] でくくります。シート名の後ろには ! を付けます。
      2. 同一ファイル(ブック)のシートへリンクする場合には "#Sheet2!A2" のようにシート名の前に「#」を入れます。
        • =HYPERLINK("#'2学期'!A1","2学期のA1へ")
          この数式は 2学期というシートの A1セルへリンクしています。
      3. 同一シートのセルへリンクする場合には  "#A2" のようにセル番地の前に # を付けます。
        • =HYPERLINK("#I5","I5セルへ") 
          同じシートの I2セルへリンクする数式です。
      4. Webアドレスの場合には =HYPERLINK("http://www.eurus.dti.ne.jp/~yoneyama/index.html","WordとExcelの小部屋") とします。

      [ハイパーリンクの挿入]機能を使う方法    

      【操作手順】同一ファイルの別シートへのリンク方法を例に説明します。

      1. メニューバーの【挿入】→【ハイパーリンク】を選択。
      2. リンク先:このドキュメント内
        ドキュメントの場所:Sheet2 を選択
        セル参照を入力してください:B2 と入力
        表示文字列:シート2のB2へリンク としました。(何でも良い)
      3. 数式バーには表示文字列に入力した文字が表示されます。

      ハイパーリンクを削除する    

      • この方法は「ハイパーリンクの挿入」で作成したものに対して有効です。
        数式(HYPERLINK関数)を使った場合は数式をクリア(削除)します。
      • リンク情報を削除し、表示文字列は残します。
        1. 空白セルを選択し、[編集]→[コピー]を選択。
        2. ハイパーリンクが設定してあるセルを選択。
        3. [編集]→[形式を選択して貼り付け]で[加算]にチェックを入れて、OKとします。
      • 「空白セル」以外では「1」と入力したセルをコピーしたら[乗算]、「0」を入力したセルなら[加算]でもOKです。
      • Excel2010以降では「ハイパーリンクのクリア」と[ハイパーリンクの削除」がリボンから実行できます。
        1. [ホーム]タブの[編集]グループにある[クリア]から選択できます。
          • ハイパーリンクのクリアは書式が残ります。(青色の文字色とアンダーライン)
            ハイパーリンクの削除は書式も削除されます。文字列だけが黒色で残ります。

      ハイパーリンクの色を変更する    

      1. ハイパーリンクが設定されているセルを選択。
        [ホーム]タブのスタイルグループにあるスタイルギャラリーの[ハイパーリンク]を右クリックして、[変更]を選択。
        • Excelのウィンドウ幅が狭い場合は、[ホーム]タブのスタイルグループにある[セルのスタイル]をクリックし、表示されるリストの[ハイパーリンク]を右クリックし、[変更]を選択。
      2. [書式設定]ボタンをクリックします。
      3. [フォント]タブを選択して、色を変更します。
      4. ハイパーリンクの色が変更できました。
      5. ハイパーリンクの表示済みの色の変更はスタイルギャラリーの「表示済みのハイパーリンク」を右クリックして、[変更]から実行できます。

      ハイパーリンクの色を変えない(標準の色にする)   

      • スタイルがハイパーリンクに設定されるので、スタイルを標準に変更します。
        [ホーム]タブのスタイルグループにある[セルのスタイル]をクリックし、表示されるリストの[標準]をクリックします。

      IF関数&IS関数

      • 条件判定(IF関数)および複数条件を設定する時のAND関数、OR関数の使い方、セルや数式の状態を調べるIS関数の説明をしています。
        IF関数AND関数、OR関数IS関数
        N関数NA関数XOR関数
        CELL関数  
        IF関数の入れ子の制限IF関数の入れ子の作り方
        IF関数を使わずに条件分岐する数式を作る 

        条件判定の関数   イフ
        =IF(条件式,値1,値2)
        条件式が満たされている場合(真の場合)は値1を表示し、満たされていない場合(偽の場合)は値2を表示する。
          (補足) IF 関数は最大 7 つまで組み合わせることができます。それを超える場合には他の関数を使って処理します。

        • 【問題】国語の得点が60以上であれば[合格]、そうでなければ[不合格]と判定の列Dに表示しなさい。 
           BCD
          2国語判定
          3相沢恭子80合格
          4今田浩次50不合格
          5上田美香30不合格
          6江口恭介70合格
        • 【解答例】D3セル:=IF(C3>=60,"合格","不合格")
          「もしC3セルが60以上であったら『合格』、そうでなかったら『不合格』としなさい」となります。
           BCD
          2 国語判定
          3相沢恭子80=IF(C3>=60,"合格","不合格")
          4今田浩次50=IF(C4>=60,"合格","不合格")
          5上田美香30=IF(C5>=60,"合格","不合格")
          6江口恭介70=IF(C6>=60,"合格","不合格")

        条件式に使う記号(比較演算子)  

        A=BAとBが等しい
        A>BAがBよりも大きい
        A<BAがBよりも小さい
        A>=BAがB以上
        A<=BAがB以下
        A<>BAとBが等しくない

        未入力セルの空白処理   

        • 得点欄が空白の(入力されていない)場合にはD3セルに[不合格]と表示されてしまいます。
          それを防ぐのにIF関数を使います。
          • =IF(C4="","",IF(C4>=60,"合格","不合格"))
            「もし、C4セルが空白なら、空白にして、そうでなかったら、60以上で合格、それ以外は不合格とする」
            との意味合いで、IF関数を2重で使用しています。
        • ISBLANK関数を使う方法もあります。
          • =IF(ISBLANK(C4),"",IF(C4>=60,"合格","不合格"))
            C4セルがブランクであったら""(長さ0の文字列)と表示しなさい、もしC4セルが60以上なら合格とし、それ以外(60未満)は不合格と表示しなさい。」との意味合いで、IF関数を2重で使用しています。
        • COUNTA関数を使うこともできます。
          =IF(COUNTA(C4)=0,"",IF(C4>=60,"合格","不合格"))
          • =IF(COUNT(C4),IF(C4>=60,"合格","不合格"),"") とすることもできます。
            この場合、COUNT(C4)=0 の時「FALSE(偽)」、COUNT(C4)>=1の時「TRUE(真)」と扱われます。
          If02

        【文字列の比較】   

        • ここでは C2="OK" で条件判定を行うと 大文字/小文字の区別がされませんという例を示します。
          • 【問題2】
            • C列に正解であったら「OK」と入力して、得点「25」を与えたいと思います。
            • ところが入力ミスで「Ok」、「oK」とも入力されています。D列の得点を表示する式を入れなさい。
            •  BCD
              2 国語得点
              3問題1-1OK25
              4問題1-2×0
              5問題2-1oK25
              6問題2-2Ok25
              7合計得点75
          • 【解答例】
            • C2="OK" で条件判定を行うと 大文字/小文字の区別がされませんので下記の数式で計算できます。
            • 大文字/小文字の区別する場合は下のEXACT関数を使います。
            •  BCDE
              2 国語判定答え
              3問題1-1OK=IF(C3="OK",25,0)25
              4問題1-2×=IF(C4="OK",25,0)0
              5問題2-1oK=IF(C5="OK",25,0)25
              6問題2-2Ok=IF(C6="OK",25,0)25
              7合計得点=SUM(D3:D6)75
        • 大文字と小文字の区別をしたい時はどうすればよいでしょうか? (上の表で合計得点を25とするには?)
          • EXACT関数を使います。
          • 文字列の比較    イグザクト
            =EXACT(文字列1,文字列2)
               2つの文字列を比較して、まったく同じである場合は TRUE を、そうでない場合は FALSE を返します。
             英字の大文字と小文字は区別されます。

          •  BCDE
            2 国語判定答え
            3問題1-1OK=IF(EXACT(C3,"OK"),25,0)25
            4問題1-2×=IF(EXACT(C4,"OK"),25,0)0
            5問題2-1oK=IF(EXACT(C5,"OK"),25,0)0
            6問題2-2Ok=IF(EXACT(C6,"OK"),25,0)0
            7合計得点=SUM(D3:D6)25

        【時刻の比較】 

        • 時刻の比較は小数誤差によってうまく処理されないことがあります。
          • TIMEVALUE関数でシリアル値に変換する
          • 時刻のシリアル値(小数値)を整数に直して比較する
          など、小数誤差の影響を受けないようにする必要があります。

        •  BCD
          29:00=IF(B2="9:00","OK","NG")NG
          3 =IF(B2=TIMEVALUE("9:00"),"OK","NG")OK
          4=IF(B2=TIME(9,0,0),"OK","NG")OK
          5 =IF(ROUND(B2*24*60,0)=ROUND("9:00"*24*60,0),"OK","NG")OK
          • C2セルの条件式 B2="9:00" は左辺B2の値はシリアル値で、右辺の"9:00"は文字列なので、同じ値とはなりません。
          • C3セルは、右辺をTIMEVALUE("9:00")でシリアル値にしていますので、同じ値と判定されます。
          • C4セルも同様にTIME(9,0,0)としてシリアル値での比較にしていますので、同じ値と判定されます。
          • C5セルの例は、小数誤差を含んでいる可能性があるとき、左辺のROUND(B2*24*60,0)でB2セルの値を分単位の整数値に丸めています。
            右辺も同様に、ROUND("9:00"*24*60,0)として9:00を分単位の整数値に丸めています。
            こうすることで小数誤差の影響を排除することができます。

        複数条件の判定  
        =IF(AND(条件1,条件2,・・・),値1,値2)
             条件1 かつ 条件2 かつ・・・・の場合値1を返し、そうでない場合は値2を返す。
        =IF(OR(条件1,条件2,・・・),値1,値2)
             条件1 または 条件2 または・・・・の場合値1を返し、そうでない場合は値2を返す。

        • 【問題1】
          • 国語と算数の両方が60以上の場合に[合格]それ以外は[不合格]としなさい。
             BCDE
            2 国語算数判定
            3相沢恭子8085合格
            4今田浩次6090合格
            5上田美香3040不合格
            6江口恭介7050不合格
          【解答例1】
          • E3セル:=IF(AND(C3>=60,D3>=60),"合格","不合格")
          • ”もしC3セルが60以上かつD3セルも60以上なら『合格』、そうでなければ『不合格』としなさい”となります。
          •  BCDE
            2 国語算数判定
            3相沢恭子8085=IF(AND(C3>=60,D3>=60),"合格","不合格")
            4今田浩次6090=IF(AND(C4>=60,D4>=60),"合格","不合格")
            5上田美香3040=IF(AND(C5>=60,D5>=60),"合格","不合格")
            6江口恭介7050=IF(AND(C6>=60,D6>=60),"合格","不合格")
        • 【余談】AND関数を使用しない方法:論理演算子(論理積「*」)を使用する方法
          • セルE3に=IF((C3>=60)*(D3>=60),"合格","不合格") とします。
            • If関数:andとの組み合わせ
            • TRUE=1 FALSE=0 に置き換えて計算すると、TRUE*TRUE=1*1=1 以外の組み合わせは0(FALSE)になります。

        • 【問題2】
          • 国語か算数のどちらかが60以下であれば[不合格]そうでなければ[合格]と表示しなさい。
             BCDE
            2 国語算数判定
            3相沢恭子8085合格
            4今田浩次6090不合格
            5上田美香3040不合格
            6江口恭介7050不合格
        • 【解答例2】
          • E3セル:=IF(OR(C3<=60,D3<=60),"不合格","合格")
          • 「もしC3セルが60以下あるいはD3セルが60以下ならば『不合格』、そうでなければ『合格』としなさい」となります。
          •  BCDE
            2 国語算数判定
            3相沢恭子8085=IF(OR(C3<=60,D3<=60),"不合格","合格")
            4今田浩次6090=IF(OR(C4<=60,D4<=60),"不合格","合格")
            5上田美香3040=IF(OR(C5<=60,D5<=60),"不合格","合格")
            6江口恭介7050=IF(OR(C6<=60,D6<=60),"不合格","合格")
        • 【余談】OR関数を使用しない方法:論理演算子(論理和「+」)を使用する方法
          • セルE3に=IF((C3<=60)+(D3<=60),"不合格","合格") とします。
            • If関数:orとの組み合わせ
            • TRUE=1 FALSE=0 に置き換えて計算すると、FALSE+FALSE=0+0=0 以外の組み合わせは1以上になります。
              Excelでは1以上はTRUEと見なすので、FALSE+FALSE以外の条件はTRUEになります。

        ANDとORを組み合わせて使う  

        • 【問題】
          • A1セルに入力された年がうるう年であるか否かを判定するには?
          • うるう年の判定は↓で行います。
          1. 西暦年数が4で割り切れる年は原則として「うるう年」にする。
          2. 上記の例外として、西暦年数が100で割り切れる年は「平年」とする。
          3. さらに例外として、西暦年数が400で割り切れる年は「うるう年」にする。
        • 【解答例】
          • =IF(OR(MOD(A1,400)=0,AND(MOD(A1,4)=0,MOD(A1,100)<>0)),"うるう年","平年")
          • 上の数式を解釈すると、『400で割り切れるか、あるいは、4で割り切れて100で割り切れない場合には「うるう年」そうでない場合は「平年」としなさい』となります。
          • 数式は Microsoft サポート技術情報 [XL] うるう年を判定する方法 を利用しています。
        • 【参考】
          • =DATE(A1,3,1)-1=DATE(A5,3,0) を使って2/29 になれば「うるう年」 そうでなければ「平年」となりそうです。
          • =IF(DAY(DATE(A5,3,0))=29,"うるう年","平年") としたら、1900年が「うるう年」と判定されてしまいます。
          • 原因は、Microsoft サポート技術情報を参照願います。

        IS関数    イズエラー
        =ISERROR(テストの対象)

         テストの対象が任意のエラー値 を参照するとき TRUE を返します。
         エラー値:#N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME? または #NULL! のいずれか

        • E5の式は=D5/C5*100ですが、C5が空白であるためにエラー(#DIV/0!)となります。
        • エラー表示をなくすためにIF関数とISERROR関数を組み合わせて使います。
          E8セルの例:=IF(ISERROR(D8/C8),"",D8/C8*100)
        • 式の意味は「もしD8/C8がエラー値であったら、「""」(空白)としなさい、そうでなかったらD8/C8*100の結果を表示しなさい。」となります。
        • If関数:ISERRORとの組み合わせ
        • IFERROR関数がExcel2007で、 IFNA関数がExcel2013で追加されています。
          これらの関数では簡易な数式でエラー処理ができるようになっています。
          IFERROR関数 IFNA関数 をご覧ください。

         イズブランク    =ISBLANK(テストの対象)
           テストの対象が空白セルを参照するとき TRUE を返します。

        • ISBLANK関数を使って空白の判定をすると、下記のようにOR関数と組み合わせて使います。
          E8セルの例:=IF(OR(ISBLANK(C8),ISBLANK(D8)),"",D8/C8*100)
        • 式の意味は「もし、C8が空白であるか または D8が空白であったら、「""」(空白)を表示しなさい、そうでなかったらD8/C8*100の結果を表示しなさい」となります。
        • If関数:ISBLANKとの組み合わせ
        • 【注意】ISBLANK関数で空白の判定ができない例
          • ISBLANK関数はIF関数などで空白("")を返しているセルに対しては「FALSE」となります。
          • C列の価格欄にはIF関数で『=IF(A5="","",VLOOKUP($A5,$F$3:$H$4,3,0))』と、A列が空白なら空白を返すようにしています。
          • E列で金額の計算時にISBLANK関数を使って『=IF(ISBLANK(C5),"",C5*D5)』とすると、空白と判定されません。
            この様な場合は「=IF(C6="","",C6*D6)」とします。

        その他のIS関数   

        • ISERROR対象が(#N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME? または #NULL! のいずれか) を参照するとき TRUE を返します。
          ISBLANK対象が空白セルを参照するとき TRUE を返します。
          ISERR対象が #N/A を除くエラー値を参照するとき TRUE を返します。
          ISLOGICAL対象が論理値を参照するとき TRUE を返します。
          ISNA対象がエラー値 #N/A (使用する値がない) を参照するとき TRUE を返します。
          ISNONTEXT対象が文字列でない項目を参照するとき TRUE を返します
          (対象が空白セルを参照するときも TRUE になりますので注意してください)。
          ISNUMBER対象が数値を参照するとき TRUE を返します。
          ISREF対象がセル範囲を参照するとき TRUE を返します。
          ISTEXT対象が文字列を参照するとき TRUE を返します。

        N関数    ナンバー
        =N(値)

          値を数値に変換します。

        • 次の戻り値になります。
          戻り値
          数値そのままの数値
          Excelの組み込み書式で表示された日付その日付のシリアル値
          TRUE1
          FALSE0
          #DIV/0!などのエラー値エラー値
          その他0
        • (例)計算式の中で文字列になる可能性があるセルを使用する場合。
          • 四則演算で文字列が有るとエラーになるのを、文字列は「0」とみなして計算します。
            N関数の使い方

        NA関数    エヌエー
        =NA()

          常にエラー値 #N/A を返します

        • 折れ線グラフで値が「0」を無視したい時に使います。
        • 【例】品目3の売上金額(B4)が「0」になっています。
          NA関数を使っていない折れ線グラフ
          1. データの方を変更します。
            B4に『=NA()』と入力して「#N/A」を返すようにします。
          2. #N/A は無視して、折れ線が作成されます。
            NA関数を使った折れ線グラフ

        対象範囲の左上隅にあるセルの書式、位置、内容についての情報を返します   セル
        =CELL(検査の種類,対象範囲)
         対象範囲は省略可能ですが、最後に変更されたセルについの情報が表示されます。
         セル範囲を入力した場合は左上端のセルについての情報が表示されます。

        • 検査の種類
          • 検査の種類には「"」(二重引用符、ダブルクォーテーションマーク)で括った文字列を使用します。
            検査の種類戻り値
            "address"対象範囲の左上隅にあるセル番地を表す文字列を返します。
            "col"対象範囲の左上隅にあるセルの列番号を返します。
            "color"負の数を色で表す書式がセルに設定されている場合は 1、それ以外の場合は 0を返します。
            "contents"対象範囲の左上隅にあるセルの内容を返します。
            "filename"対象範囲を含むファイルの名前 (絶対パス名) を表す文字列を返します。
            対象範囲を含むファイルがまだ保存されていない場合、結果は空白文字列 (") になります。
            "format"セルの表示形式に対応する文字列定数を返します。
            "parentheses"正の数またはすべての値をかっこで囲む書式がセルに設定されている場合は 1、それ以外の場合は 0を返します。
            "prefix"セルに入力されている文字列の配置に対応する文字列定数を返します。
            セルが左詰めの文字列を含むときは一重引用符 (')
            右詰めの文字列を含むときは二重引用符 (")
            中央配置の文字列を含むときはキャレット (^)
            均等配置の文字列を含むときは円記号 (\)
            そのほかのデータが入力されているときは空白文字列 (") になります。
            "protect"セルがロックされていない場合は 0、ロックされている場合は 1を返します。
            "row"対象範囲の左上隅にあるセルの行番号を返します。
            "type"セルに含まれるデータのタイプに対応する文字列定数を返します。
            セルが空白の場合は "b" (Blank の頭文字)
            セルに文字列定数が入力されている場合は "l" (Label の頭文字)
            そのほかの値が入力されている場合は "v" (Value の頭文字) になります。
            "width"小数点以下を切り捨てた整数のセル幅を返します。
            セル幅の単位は、標準のフォント サイズの 1 文字の幅と等しくなります。
        • 【使用例】以下の返される値の例は使用環境により異なります。あくまでも私の使っているPC及び環境での表示例です。
          • =CELL("address",A1)
            • $A$1 と絶対参照の形で返されます。
          • =CELL("col",A1)
            • A1が対象ですのでA列つまり1が返されます。
              Excel2002の最終列を指定すると、=CELL("col",IV1) で「256」となります。
          • =CELL("color",A1)
            • A1セルに表示形式で 「0_ ;[赤]-0」のような設定をしていると「1」が返ります。
              「0_ ;-0」 の場合は「0」が返ります。
          • =CELL("contents",A1)
            • A1セルに「文字」と入力されていると、「文字」が返ります。
              空白セルだと「0」が返されます。
          • =CELL("filename",A1)
            • C:\Users\Yone\Documents\Excel_test\[HP_Cell関数.xls]Sheet2 が返りました。
              ファイル名およびシート名までが返されました。
              なお、ファイルが保存されていないときは空白「""」が返ります。
          • =Cell("format",A1)
            • セルの表示形式に対応する文字列定数を返します。
              Excel の表示形式戻り値
              G/標準G
              0F0
              #,##0",0"
              0.00F2
              #,##0.00",2"
              #,##0;-#,##0 または
              $#,##0_);($#,##0)
              ",0"
              #,##0;[赤]-#,##0 または
              $#,##0_);[赤]($#,##0)
              ",0-"
              #,##0.00;-#,##0.00 または
              $#,##0.00_);($#,##0.00)
              ",2"
              #,##0.00;[赤]-#,##0.00 または
              $#,##0.00_);[赤]($#,##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+00S2
              # ?/? または # ??/??G
              ge.m.dD4
              gggg"年"m"月"d"日"D4
              yyyy/m/dD1
              yyyy"年"m"月"d"日"D1
              m/d/yyD1
              d-mmm-yyD1
              d-mmmD3
              mmm-yyD2
              yyyy/m/d h:mmD1
              h:mm AM/PMD7
              h:mm:ss AM/PMD6
              h:mmD9
              h:mm:ssD8
              h"時"mm"分"D9
              h"時"mm"分"ss"秒"D8
          • =CELL("parentheses",A1)
            • (0);[赤](0) のように正の数をかっこで囲む表示形式が設定されていると「1」を返す。
              0_);[赤](0) の場合は「0」となります。
          • =CELL("prefix",A1)
            • 左揃えなどの設定に応じて一重引用符 (')などが返されます。
              CELL関数:配置の例
          • =CELL("protect",A1)
            • セルがロックされていたら「1」が返ります。ロックされていないときは「0」となります。
              シートの保護は関係ありません。
          • =CELL("row",A1)
            • セルの行番号が返ります。この場合は「1」となります。
          • =CELL("type",A1)
            • セルに文字列が入力されていたら「l」(LabelのL(エル)の小文字、空白の時は「b」、数値などの場合は「v」となります。
          • =CELL("width",A1)
            • セル幅の整数値を返します。標準のフォント サイズの 1 文字の幅が1となります。

        IF関数の入れ子の制限

        • Excel2003以前では最大7個となっていましたが、Excel2007,Excel2010では64個となっています。
        • IF関数で多くの条件を使うことが可能にはなったのですが、数式の可読性が悪くなります。
          多くの条件で分けたい場合は、リストを作成するなどしてLOOKUP関数、VLOOKUP関数、HLOOKUP関数を使うことをお勧めします。

        IF関数の入れ子の作り方

        • ネスト(入れ子)の一例としては以下のような数式が挙げられます。
          =IF(論理式1, [真の場合1], IF(論理式2, [真の場合2], IF(論理式3, [真の場合3], [偽の場合3])))
          つまり、[偽の場合]の部分に次の条件を入れて処理していきます。
        • 逆に真の場合に入れることもできますが、ちょっと理解しづらいかもしれません。

        練習1

        • 得点が0以上30以下は×、60以下は△、60を超え100以下は○と評価することにします。
          BCD
          2名前得点評価
          3井上80
          4上野54
          5内田30×
          6榎田15×
          7岡本77
          8大野91
        • 条件の付け方によって数式はいろいろなものができます。
          1. ここでは、得点の低い方から順番に処理してみます。
            IF関数の入れ子の例1
            1. 30点以下は×とすると、以下のようになります。
              =IF(C3<=30,"×",偽の場合)
            2. 次に60点以下は△とします。「偽の場合」の部分に書きます。
              =IF(C3<=30,"×",IF(C3<=60,"△",偽の場合))
              となり、ここで偽となるのは60を超える得点ですので、「60を超え100以下は○」を入れることになり、
              =IF(C3<=30,"×",IF(C3<=60,"△","○"))
              で、完成です。
            3. 得点が未入力(C列が未入力)の場合があると、×となりますので、その処理を加えます。
              未入力の場合は30以下に含まれてしまいますので、一番最初に書いて処理する必要があります。
              =IF(C3="","",IF(C3<=30,"×",IF(C3<=60,"△","○")))
              となります。
          2. では、得点の大きい方から処理するケースは?
            IF関数の入れ子の例2
            1. 今回は、空白の処理から始めます。
              =IF(C3="","",偽の場合)
            2. 60を超えたら○としますので、
              =IF(C3="","",IF(C3>60,"○",偽の場合))
            3. 30を超えたら△とします。
              =IF(C3="","",IF(C3>60,"○",IF(C3>30,"△",偽の場合))
              これらの条件に当てはまらないのは×となりますので、
              =IF(C3="","",IF(C3>60,"○",IF(C3>30,"△","×"))
              となります。
            4. なお、空白の処理を最後に持ってくると、以下のように書くこともできます。
              =IF(C3>60,"○",IF(C3>30,"△",IF(C3="","","×")))
          3. 各区分ごとに判定すると考えると・・・
            IF関数の入れ子の例3
            1. 各区分の条件は
              0以上30以下:AND(C3>=0,C3<=30)
              30を超えて60以下:AND(C3>30,C3<=60)
              60を超えて100以下:AND(C3>60,C3<=100)
              と書くことができますので、これをIF関数に入れ込みます。
            2. すると、
              =IF(AND(C3>=0,C3<=30),"×",IF(AND(C3>30,C3<=60),"△",IF(AND(C3>60,C3<=100),"○","")))
              のようになります。
              このケースでは順序が変わっても問題はなく、
              =IF(AND(C3>30,C3<=60),"△",IF(AND(C3>=0,C3<=30),"×",IF(AND(C3>60,C3<=100),"○","")))
              としても結果は同じですが、解読がしずらいので順番に書いた方がよろしいかと思います。
          4. 上記A〜Cとは異なった考え方
            IF関数の入れ子の例4
            • =IF(C3<>"",IF(C3<=60,IF(C3<=30,"×","△"),"○"),"")
              といった数式にすることもできます。
              しかし、このように[真の場合]に入れ子としていくのは、ちょっと理解しづらいかもしれません。
        • 上記のように、どのような条件にするのか、その着目するところによってさまざまな数式が作成できます。
          分かりやすいのは、大きい方または小さい方から順次処理していく方法です。

        IF関数を使わずに条件分岐する数式を作る

        • このページのタイトルからは脱線してしまいますが、条件分岐にはIF関数がよくつかわれますが、他の関数でも数式を作ることができます。
        • 問題1

          • 上記と同じ問題です。
            得点が0以上30以下は×、60以下は△、60を超え100以下は○と評価することにします。
            BCD
            2名前得点評価
            3井上80
            4上野54
            5内田30×
            6榎田15×
            7岡本77
            8大野91
          • 条件は3つあって、それぞれで分岐できればよいのですからCHOOSE関数を使う方法も考えられます。
            • CHOOSE関数の構文は=CHOOSE(インデックス,値1,値2,値3・・・)ですので
              =CHOOSE(インデックス,"×","△","○") となるような「インデックス」を作成します。
            • 0以上で1point、30を超えたら1point、60を超えたら1pointと加算することで可能と考えました。
              (C3>=0)+(C3>30)+(C3>60) と論理和を求めることにします。
              • 例えば、得点が50なら
                (C3>=0)+(C3>30)+(C3>60) は (True)+(True)+(False) = 1+1+0 = 2
                といった計算結果になります。
            • 数式は =CHOOSE((C6>=0)+(C6>30)+(C6>60),"×","△","○") となります。
            • なお、CHOOSE関数のインデックスには、1〜254の数値、または1〜254 の数値を返す数式またはセル参照を指定することができます。
          • IF関数でのネストして作成する例とCHOOSE関数で作成した例で違いを見てみます。
            • 問題例:A1セルの値が「1のときはAを表示、2のときはBを表示、3のときはCを表示、4のときはDを表示する。それ以外はXを表示する」
              • =IF(A1=1,"A",IF(A1=2,"B",IF(A1=3,"C",IF(A1=4,"D","X"))))
              • =CHOOSE(A1,"A","B","C","D") とシンプルな数式になります。
                しかし、CHOOSE関数では「それ以外はXを表示する」といった処理ができませんので、この部分はIF関数を利用します。
                =IF(OR(A1="",A1>4),"X",CHOOSE(A1,"A","B","C","D")) としました。
        • 問題2

          • 得点が80以上は5、70以上は4、60以上は3、40以上は2、それ以外は1 と5段階表示したい。
            BCD
            2名前得点評価
            3井上805
            4上野542
            5内田301
            6榎田512
            7岡本774
            8大野603
            • IF関数での解答例
              • =IF(C2>=80,5,IF(C2>=70,4,IF(C2>=60,3,IF(C2>=40,2,1))))
            • 論理和を使って求めることができます。
              • =(C3>=0)+(C3>=40)+(C3>=60)+(C3>=70)+(C3>=80)
            • LOOKUP関数で求めることもできます。
              • =LOOKUP(C3,{0,40,60,70,80},{1,2,3,4,5})
            • VLOOKUP関数で求めることもできます。
              • =VLOOKUP(C3,{0,1;40,2;60,3;70,4;80,5},2)
            • MATCH関数で求めることもできます。
              • =MATCH(C3,{0,40,60,70,80})
          • 5段階評価で1〜5と数値を返す例でしたので、上記のようにシンプルな数式になりました。
            では、返す値が文字列であったら?
            A,B,C,D,Eの文字列で評価することにします。
            BCD
            2名前得点評価
            3井上80A
            4上野54D
            5内田30E
            6榎田51D
            7岡本77B
            8大野60C
            • IF関数での解答例
              • =IF(C3>=80,"A",IF(C3>=70,"B",IF(C3>=60,"C",IF(C3>=40,"D","E"))))
            • 論理和を使って求めることができます。
              • =CHOOSE((C3>=0)+(C3>=40)+(C3>=60)+(C3>=70)+(C3>=80),"E","D","C","B","A")
              • =MID("EDCBA",(C3>=0)+(C3>=40)+(C3>=60)+(C3>=70)+(C3>=80),1)
            • LOOKUP関数で求めることもできます。
              • =LOOKUP(C3,{0,40,60,70,80},{"E","D","C","B","A"})
            • VLOOKUP関数で求めることもできます。
              • =VLOOKUP(C3,{0,"E";40,"D";60,"C";70,"B";80,"A"},2)
            • INDEX関数とMATCH関数で求めることもできます。
              • =INDEX({"E","D","C","B","A"},0,MATCH(C3,{0,40,60,70,80}))

        IFS関数(IFのネストが簡潔になります)

        論理式が真の場合の値を返します。
         イフズ
        =IFS(論理式1,1が真の場合,[論理式2,2が真の場合],・・・)

        • 論理式(条件)を満たす場合に指定した値を返します。
          以前からあるIF関数は =IF(論理式,真の場合,偽の場合) といった構文でしたので、複数の条件を1つのIF関数で指定するには、=IF(論理式1,1が真の場合,IF(論理式2,2が真の場合,2が偽の場合)) といった具合にネストした数式を組み立てる必要がありました。
          ネストしたIF関数は作成するのや解読するのがちょっと面倒な感じがするものでした。
          IFS関数では論理式(条件式)を順番に並べて書く方式なので作成しやすくまた理解しやすくなると考えます。
        • なお、現在(2016/4/11)この関数IFSが使用できるのは以下の場合に限られています。このページではExcelOnlineの画像を使って説明しています。
          • Office 365 の最新のもの
          • Excel Online を使用している場合
          • Excel Mobile を使用している場合
          • Excel for Android フォンおよび Excel for Android タブレットを使用している場合
        【問題1】
        • B列の年齢を30歳代、40歳代、50歳代と区分けをしなさい。なお、50歳以上は50歳代とします。
        【解答例】
        • D2セルの数式は =IFS(B2>=50,"50歳代",B2>=40,"40歳代",B2>=30,"30歳代") とします。
          D2セルの数式を D3:D15セルへコピー&貼り付け(オートフィル)して完成です。
          • この数式は前から順番に「B2>=50」を満たせば「50歳代」を返し、「B2>=40」を満たせば「40歳代」を返し、「B2>=30」を満たせば「30歳代」を返すといった具合になっています。
        • なお、IFS関数がつかえない場合はIF関数を使って数式を作成することができます。
          • D2セルに =IF(B2>=50,"50歳代",IF(B2>=40,"40歳代","30歳代")) とします。

        【問題2】
        • E列に得点の評価を表示しなさい。平均点以上は「平均以上」、平均点未満は「平均未満」と表示しなさい。
        【解答2例】
        1. IFS関数を使うと、 =IFS(C2>=AVERAGE(C2:C15),"平均以上") と、ここまでは書けると思います。
          ところがIFS関数は真となる場合に値を返すのみですので、偽になる場合(条件を満たさない場合)は #N/A とエラーになります。
        2. IF関数では =IF(C2>=AVERAGE(C2:C15),"平均以上","平均未満") と書くことができるのですが、
          平均点未満といった条件を書く必要があります。
          よって、IFS関数を使う場合は =IF(C2>=AVERAGE(C2:C15),"平均以上",C2<AVERAGE(C2:C15),"平均未満") とする必要があります。
          ネストが少ないケースでは逆に不便に感じることになりそうです。

        INDEX関数の使い方

        • リストから値を引き出す関数としてはVLOOKUP関数やHLOOKUP関数が代表的ですが、これらの関数はキーとなるデータがリストの左端列や最上行にあることが前提条件となります。
        • これらの関数で表引きできないケースではINDEX関数を利用します。ただし、INDEX関数単独ではなくMATCH関数と組み合わせることが多いでしょう。

        範囲の中から、行位置と列位置を指定して値を取り出す  インデックス
        =INDEX(範囲,行番号,列番号)

        • 【問題】Sheet2に下図のようなリストがあります。Sheet1のA2セルに氏名を入力すると、B2セルにコードNoを表示するようにしなさい。
          • Sheet2のリスト
        • 【解答例】
          • Sheet1のB2セルに=INDEX(Sheet2!$A$2:$A$6,MATCH(Sheet1!A2,Sheet2!$B$2:$B$6,0)) と入力します。
            • 求めるコードNoはSheet2!$A$2:$A$6となります。
              ここでは絶対参照にしていますが、これは下方向へコピーして使うことを考慮しています。
            • 引数の「行番号」はMATCH関数の完全一致MATCH(Sheet1!A2,Sheet2!$B$2:$B$6,0)で求めています。
            • 範囲が1列なので、引数の「列番号」は省略しています。
        •  マッチ
          =MATCH(検索値,範囲 [,照合の型])
             照合の型:「0」完全に一致する値を検索する
                  「1」一致するものがない場合、検索値以下の最大の値を検索する。(データは
          昇順に並んでいることが必要)
                  「-1」一致するものがない場合、検索値よりも大きい最小の値を検索する。(データは
          降順に並んでいることが必要)


        • 【問題2】成績表ができました。この成績表は生徒Noの順番に並んでいますので、成績の良い方(合計の大きい方)から順番に並べ替えなさい。
          なお、このページはINDEX関数の練習ですので、INDEX関数を用いてください。
          また、合計得点に同点は存在しないものとします。(同点がある場合はちょっと面倒になるため、簡略化した例で練習します))
          • BCDEFGHI
            2No氏名ふりがな性別国語数学英語合計
            31赤羽 美幸アカバネ ミユキ859183259
            42葛西 祐基カサイ ユウキ959170256
            53川井 美里カワイ ミサト695786212
            64笹川 満ササガワ ミツル667964209
            75柴崎 優シバザキ ユウ804848176
            86平 奈央タイラ ナオ789454226
            97高畑 勇介タカハタ ユウスケ958870253
            108浜田 希ハマダ ノゾミ829569246
            119平岡 那奈ヒラオカ ナナ867769232
            1210藤本 ヒロフジモト ヒロ856568218
            1312横田 まさしヨコタ マサシ615870189
        • 【解答例2】
          • 下図はM3セル以降に書き出しています。
            M3セルの数式は =INDEX($B$3:$I$13,MATCH(LARGE($I$3:$I$13,ROW($A1)),$I$3:$I$13,0),COLUMN(A$1)) としました。
            この数式を右方向へコピーし、さらにコピーした3行目の数式を下方向へコピーすれば完成します。
          • =INDEX($B$3:$I$13,MATCH(LARGE($I$3:$I$13,ROW($A1)),$I$3:$I$13,0),COLUMN(A$1)) の説明
            • LARGE($I$3:$I$13,ROW($A1) はLARGE関数で合計得点を大きい方から順番に取り出します。
              LARGE(I3:I13,1)、LARGE(I3:I13,2)、LARGE(I3:I13,3)、・・・ と順番に取り出すために ROW($A1) を使っています。
              下方向にコピーしたとき、1,2,3・・・となるようにしています。
            • MATCH(LARGE($I$3:$I$13,ROW($A1)),$I$3:$I$13,0) は一番大きい合計得点から順番に、I3:I13 から探して、一致した行位置を返します。
              I3:I13 の合計得点は昇順ではないので、MATCH関数の引数の照合の種類を 0 とします。
            • =INDEX($B$3:$I$13,MATCH(LARGE($I$3:$I$13,ROW($A1)),$I$3:$I$13,0),COLUMN(A$1))
              この数式は INDEX(データ範囲,合計の一致した行,列位置) となります。
              列位置は列方向へコピーしたときに、1,2,3・・・となるように COLUMN(A$1) としています。

        範囲の中から、行位置と列位置を指定して値を取り出す  インデックス
        =INDEX(範囲,行位置,列位置 [,領域番号])
            領域番号は、離れた場所にある複数の範囲を指定する時に使う。

        • 【問題1】INDEX関数とMATCH関数を使って運賃を求めなさい。

          • BCDE
            2運賃表
            3東京名古屋大阪
            4鹿児島50,00040,00035,000
            5宮崎45,00035,00030,000
            6熊本40,00030,00025,000
            7福岡30,00020,00015,000
            8
            9到着地名古屋
            10出発地熊本
            11運賃は30,000
        • 【解答1例】

          • INDEX関数での検索範囲はデータの範囲C4:E7で、
          • 行位置はMATCH関数で出発地の熊本(C10)の位置をB4:B7の範囲から検索し、
          • 列位置はMATCH関数で到着地名古屋(C9)の位置はC3:E3の範囲から検索します。
          • MATCH関数の照合の型は「完全に一致」ですので「0」を指定しています。
          • BCDE 
            2運賃表 
            3東京名古屋大阪 
            4鹿児島50,00040,00035,000 
            5宮崎45,00035,00030,000 
            6熊本40,00030,00025,000 
            7福岡30,00020,00015,000 
            8 
            9到着地名古屋 
            10出発地熊本 
            11運賃は=INDEX(C4:E7,MATCH(C10,B4:B7,0),MATCH(C9,C3:E3,0)

        • 【問題2】大人運賃表と子供運賃表を使って運賃を求めなさい

          • BCDEFGHIJ
            2運賃表 (A:大人)運賃表 (B:子供)
            3東京名古屋大阪東京名古屋大阪
            4鹿児島50,00040,00035,000鹿児島25,00020,00017,500
            5宮崎45,00035,00030,000宮崎22,50017,50015,000
            6熊本40,00030,00025,000熊本20,00015,00012,500
            7福岡30,00020,00015,000福岡15,00010,0007,500
            8
            9到着地名古屋
            10出発地熊本
            11大人/子供子供
            12運賃は15,000
        • 【解答2例】

          • =INDEX(範囲,行位置,列位置 ,領域番号)の形式を使います。
          • 範囲に(C4:E7,H4:J7) と大人運賃表と子供運賃表の2つの領域を指定しています。
          • 領域番号の指定を MATCH(C11,{"大人","子供"},0) として、大人なら「1」、子供なら「2」が返るようにしています。
          • BCDEFGHIJ
            2運賃表 (A:大人)運賃表 (B:子供)
            3東京名古屋大阪東京名古屋大阪
            4鹿児島50,00040,00035,000鹿児島25,00020,00017,500
            5宮崎45,00035,00030,000宮崎22,50017,50015,000
            6熊本40,00030,00025,000熊本20,00015,00012,500
            7福岡30,00020,00015,000福岡15,00010,0007,500
            8
            9到着地名古屋
            10出発地熊本
            11大人/子供子供
            12運賃は=INDEX((C4:E7,H4:J7),MATCH(C10,B4:B7,0),MATCH(C9,C3:E3,0),MATCH(C11,{"大人","子供"},0))

        情報関数(INFO関数、CELL関数)

        • エクセルの情報関数のINFO関数とCELL関数についてまとめています。
          INFO関数で使用できる検査の種類はExcel2003以前とExcel2007以降で異なっていますのでご注意ください。

        INFO関数CELL関数

        現在の操作環境に関する情報を返します   インフォ
        =INFO(検査の種類)

        • 検査の種類
          • 検査の種類には「"」(二重引用符、ダブルクォーテーションマーク)で括った文字列を使用します。
            検査の種類返す値
            "directory"カレントディレクトリ(フォルダ)のパス
            "memavail"使用可能なメモリ容量 (単位:バイト)
            Excel2007以降では使用できません
            "memused"データを一時的に保存するために使用されているメモリ容量 (単位:バイト)
            Excel2007以降では使用できません
            "totmem"既に使用されているメモリも含めた総メモリ容量 (単位 : バイト)
            Excel2007以降では使用できません
            "numfile"開かれているワークシートの枚数
            "origin"Lotus 1-2-3 リリース 3.x との互換性を維持するためのもの
            現在ウィンドウに表示されている範囲の左上隅のセル番地が絶対参照の形で返されます。
            "osversion"現在使用されているオペレーティング システムのバージョン
            "recalc"現在設定されている再計算のモード ("自動" または "手動")が返されます。
            "release"Excel のバージョン
            "system"操作環境の名前
            Macintosh 版 Excel では "mac"
            Windows 版 Excel では "pcdos"
          • Excel2007以降では検査の種類で使用できる数が減っています。
            下図はExcel2010での数式オートコンプリートの機能を使って、使用できる検査の種類を表示しています。
        • 【使用例】以下の返される値の例は使用環境により異なります。あくまでも私の使っているPC及び環境での表示例です。
          • =INFO("directory")
            • C:\Users\Yone\Documents\ のように最後に「\」が付きます。
              Excelの起動直後ではツール→オプションの全般タブのカレントフォルダが返されます。
              Excelの操作中に他のディレクトリのファイルを開くとそこのディレクトリのパスが返されます。
              ファイル→開くで表示されるフォルダのパスと書いた方がわかりやすいかもしれません。
          • =INFO("memavail") ※Exce2007以降では使用できません。#N/A エラー値が返されます。
            • 1,048,576と表示されましたので、約1000KByteがExcelが使用可能なメモリ容量と分かります。
              (1KByte=1000Byteでおおまかに換算しています。1024で割るべきでしょうが手抜きです)
          • =INFO("memused") ※Exce2007以降では使用できません。#N/A エラー値が返されます。
            • 1,038,412と表示されましたので、約1,000KByteがExcelの一時ファイル用として使用されるメモリ容量と分かります。
          • =INFO("totmem") ※Exce2007以降では使用できません。、#N/A エラー値が返されます。
            • 2,091,804と表示されましたので、約2,000KByteのメモリがExcelで使用可能であるのがわかります。
              PCの搭載メモリ容量とは異なります。
          • =INFO("numfile")
            • 4と表示されました。シートは3枚なのですが?何か隠れたものまで数えていそうです。
              アドインとの関係があるような記述を見かけましたがよくわかりませんでした。
              • なお、マクロで以下のコードを実行すると「3」となりました。
                Sub test()
                  MsgBox ThisWorkbook.Worksheets.Count
                End Sub
          • =INFO("origin")
            • 起動直後は$A:$A$1と表示されました。
              シートをスクロールして[F9]で再計算すると、表示されているウィンドウの左上のセル番地が表示されるのがわかります。
          • =INFO("osversion")
            • Windows (32-bit) NT 6.00 と表示されました。Windows Vistaの32ビット版を使用しています。
              下表はWindowsのバージョンと返される値の例です。
              Windowsのバージョン返される値
              Windows2000Windows (32-bit) NT 5.00
              Windows XpWindows (32-bit) NT 5.01
              Windows VistaWindows (32-bit) NT 6.00
              Windows 7Windows (32-bit) NT 6.01
              Windows 8Windows (32-bit) NT 6.02
              Windows 10Windows (32-bit) NT 10.00
              • Windows (32-bit) NT 10.00 と表示されましたが、実際のOSは Windows10の64bitです。(2017/9/25 追記)
                Excelが32bitなので、(32-bit)と表示されるのたと推測します。よって使用しているOSではなく、動いているOSといった感じでしょうか・・・
          • =INFO("recalc")
            • 自動と表示されました。
              ツール→オプションの計算方法タブの計算方法で自動/手動を切り替えることができます。
          • =INFO("release")
            • 14.0と表示されました。 Excel2010を使用しています。
              下表はExcelのバージョンと返される値の例です。
              Excelのバージョン返される値
              Excel 200210.0
              Excel 200712.0
              Excel 201014.0
              Excel 201315.0
              Excel201616.0
          • =INFO("system")
            • pcdosと表示されました。Windows版のExcelであることがわかります。

        対象範囲の左上隅にあるセルの書式、位置、内容についての情報を返します   セル
        =CELL(検査の種類,対象範囲)
         対象範囲は省略可能ですが、最後に変更されたセルについの情報が表示されます。
         セル範囲を入力した場合は左上端のセルについての情報が表示されます。

        • 検査の種類
          • 検査の種類には「"」(二重引用符、ダブルクォーテーションマーク)で括った文字列を使用します。
            検査の種類戻り値
            "address"対象範囲の左上隅にあるセル番地を表す文字列を返します。
            "col"対象範囲の左上隅にあるセルの列番号を返します。
            "color"負の数を色で表す書式がセルに設定されている場合は 1、それ以外の場合は 0を返します。
            "contents"対象範囲の左上隅にあるセルの内容を返します。
            "filename"対象範囲を含むファイルの名前 (絶対パス名) を表す文字列を返します。
            対象範囲を含むファイルがまだ保存されていない場合、結果は空白文字列 (") になります。
            "format"セルの表示形式に対応する文字列定数を返します。
            "parentheses"正の数またはすべての値をかっこで囲む書式がセルに設定されている場合は 1、それ以外の場合は 0を返します。
            "prefix"セルに入力されている文字列の配置に対応する文字列定数を返します。
            セルが左詰めの文字列を含むときは一重引用符 (')
            右詰めの文字列を含むときは二重引用符 (")
            中央配置の文字列を含むときはキャレット (^)
            均等配置の文字列を含むときは円記号 (\)
            そのほかのデータが入力されているときは空白文字列 (") になります。
            "protect"セルがロックされていない場合は 0、ロックされている場合は 1を返します。
            "row"対象範囲の左上隅にあるセルの行番号を返します。
            "type"セルに含まれるデータのタイプに対応する文字列定数を返します。
            セルが空白の場合は "b" (Blank の頭文字)
            セルに文字列定数が入力されている場合は "l" (Label の頭文字)
            そのほかの値が入力されている場合は "v" (Value の頭文字) になります。
            "width"小数点以下を切り捨てた整数のセル幅を返します。
            セル幅の単位は、標準のフォント サイズの 1 文字の幅と等しくなります。
        • 【使用例】以下の返される値の例は使用環境により異なります。あくまでも私の使っているPC及び環境での表示例です。
          • =CELL("address",A1)
            • $A$1 と絶対参照の形で返されます。
          • =CELL("col",A1)
            • A1が対象ですのでA列つまり1が返されます。
              Excel2002の最終列を指定すると、=CELL("col",IV1) で「256」となります。
              Excel2016で最終列を指定すると、=CELL("col",XFA1) で「16,381」となります。(桁区切りスタイルです)
          • =CELL("color",A1)
            • A1セルに表示形式で 「0_ ;[赤]-0」のような設定をしていると「1」が返ります。
              「0_ ;-0」 の場合は「0」が返ります。
          • =CELL("contents",A1)
            • A1セルに「文字」と入力されていると、「文字」が返ります。
              空白セルだと「0」が返されます。
          • =CELL("filename",A1)
            • C:\Users\Yone\Documents\Excel_test\[HP_Cell関数.xls]Sheet2 が返りました。
              ファイル名およびシート名までが返されました。
              なお、ファイルが保存されていないときは空白「""」が返ります。
          • =Cell("format",A1)
            • セルの表示形式に対応する文字列定数を返します。
              Excel の表示形式戻り値
              G/標準G
              0F0
              #,##0",0"
              0.00F2
              #,##0.00",2"
              #,##0;-#,##0 または
              $#,##0_);($#,##0)
              ",0"
              #,##0;[赤]-#,##0 または
              $#,##0_);[赤]($#,##0)
              ",0-"
              #,##0.00;-#,##0.00 または
              $#,##0.00_);($#,##0.00)
              ",2"
              #,##0.00;[赤]-#,##0.00 または
              $#,##0.00_);[赤]($#,##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+00S2
              # ?/? または # ??/??G
              ge.m.dD4
              gggg"年"m"月"d"日"D4
              yyyy/m/dD1
              yyyy"年"m"月"d"日"D1
              m/d/yyD1
              d-mmm-yyD1
              d-mmmD3
              mmm-yyD2
              yyyy/m/d h:mmD1
              h:mm AM/PMD7
              h:mm:ss AM/PMD6
              h:mmD9
              h:mm:ssD8
              h"時"mm"分"D9
              h"時"mm"分"ss"秒"D8
          • =CELL("parentheses",A1)
            • (0);[赤](0) のように正の数をかっこで囲む表示形式が設定されていると「1」を返す。
              0_);[赤](0) の場合は「0」となります。
          • =CELL("prefix",A1)
            • 左揃えなどの設定に応じて一重引用符 (')などが返されます。
          • =CELL("protect",A1)
            • セルがロックされていたら「1」が返ります。ロックされていないときは「0」となります。
              シートの保護は関係ありません。
          • =CELL("row",A1)
            • セルの行番号が返ります。この場合は「1」となります。
          • =CELL("type",A1)
            • セルに文字列が入力されていたら「l」(LabelのL(エル)の小文字、空白の時は「b」、数値などの場合は「v」となります。
          • =CELL("width",A1)
            • セル幅の整数値を返します。標準のフォント サイズの 1 文字の幅が1となります。

        IS関数

        • 情報関数のISで始まる関数についてまとめています。
          ISで始まる関数の返り値はTRUE/FALSEですので、IF関数と組み合わせて使うケースが多くなります。
        ISERROR関数ISERR関数ISBLANK関数
        ISODD関数ISEVEN関数ISTEXT関数
        ISNONTEXT関数ISUMBER関数ISLOGICAL関数
        ISNA関数その他のIS関数 

         イズエラー
        =ISERROR(テストの対象)

         テストの対象が任意のエラー値 を参照するとき TRUE を返します。
         エラー値:#N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME? または #NULL! のいずれか

        • E5の式は=D5/C5*100ですが、C5が空白であるためにエラー(#DIV/0!)となります。
        • エラー表示をなくすためにIF関数とISERROR関数を組み合わせて使います。
          E8セルの例:=IF(ISERROR(D8/C8),"",D8/C8*100)
        • 式の意味は「もしD8/C8がエラー値であったら、「""」(空白)としなさい、そうでなかったらD8/C8*100の結果を表示しなさい。」となります。
        • If05
        • Excel2007以降では IFERROR関数 が使用できます。
          IFERROR関数を使うと =IFERROR(D8/C8*100,"") と、シンプルな計算式(数式)にすることができます。

         イズエラー
        =ISERR(テストの対象)

         テストの対象が#N/Aをのぞくエラー値 を参照するとき TRUE を返します。

        • ISERROR関数と似ていますが、#N/Aをのぞくエラー値に対してTRUEを返します。
        • #N/A エラーとなる場合には、#N/Aが返されます。
        • #VALUE エラーとなるようなケースではISERR関数を使って処理することができます。

         イズ エヌ エー
        =ISNA(テストの対象)

         テストの対象がエラー値 #N/A を参照するとき TRUE を返します。

        • エラー値 #N/A に対してTRUEを返します。
        • #N/A エラーとなる場合、IF関数と組み合わせて #N/A が表示されなくします。
          下図では #N/A エラーの時は 0 を返すようにしています。

         イズブランク    =ISBLANK(テストの対象)
           テストの対象が空白セルを参照するとき TRUE を返します。

        • ISBLANK関数を使って空白の判定をすると、下記のようにOR関数と組み合わせて使います。
          E8セルの例:=IF(OR(ISBLANK(C8),ISBLANK(D8)),"",D8/C8*100)
        • 式の意味は「もし、C8が空白であるか または D8が空白であったら、「""」(空白)を表示しなさい、そうでなかったらD8/C8*100の結果を表示しなさい」となります。
        • If06
        • 【注意】ISBLANK関数で空白の判定ができない例
          • ISBLANK関数はIF関数などで空白("")を返しているセルに対しては「FALSE」となります。
          • C列の価格欄にはIF関数で『=IF(A5="","",VLOOKUP($A5,$F$3:$H$4,3,0))』と、A列が空白なら空白を返すようにしています。
          • E列で金額の計算時にISBLANK関数を使って『=IF(ISBLANK(C5),"",C5*D5)』とすると、空白と判定されません。
            この様な場合は「=IF(C6="","",C6*D6)」とします。

         イズオッド    =ISODD(テストの対象)
           テストの対象が奇数のとき TRUE を返します。

        • 数値に整数以外の値を指定すると、小数点以下が切り捨てられます。
          整数部分のみで判定されます。
        • 使用例
          B列には=ISODD(A1) と数式が入力されています。

         イズイーブン    =ISEVEN(テストの対象)
           テストの対象が偶数のとき TRUE を返します。

        • 数値に整数以外の値を指定すると、小数点以下が切り捨てられます。
          整数部分のみで判定されます。
        • 使用例
          B列には=ISEVEV(A1) と数式が入力されています。

         イズテキスト    =ISTEXT(テストの対象)
           テストの対象が文字列のとき TRUE を返します。

        • 参照先が文字列か否かを調べます。
          B列には=ISTEXT(A1) と数式が入力されています。
        • 下図ではA4セルがちょっと変わっている例になります。
          • A4セルは「1」と入力した時点で「数値」です。表示形式を文字列としても「文字列」とはなっていません。

         イズノンテキスト    =ISNONTEXT(テストの対象)
           テストの対象が文字列でないのとき TRUE を返します。

        • 参照先が文字列でないか否かを調べます。
          B列には=ISNONTEXT(A1) と数式が入力されています。

         イズナンバー    =ISUMBER(テストの対象)
           テストの対象が数値のとき TRUE を返します。

        • 参照先が数値か否かを調べます。
          B列には=ISNUMBER(A1) と数式が入力されています。
          • 表示されている値は「1」でも入力の仕方や表示形式などの設定順によって異なることがわかります。
          • Excelでは数値を判定できるものは数値として計算してくれたりしますが、関数では数値と文字列とが区別されることがあったりします。
            期待するものが返らないときなど、入力されている値が文字列/数値の判定をしたいときも利用します。

         イズロジカル    =ISLOGICAL(テストの対象)
           テストの対象が論理値のとき TRUE を返します。

        • 参照先が論理値か否かを調べます。
          B列には=ISLOGICAL(A1) と数式が入力されています。

        その他のIS関数   

        • ISERROR対象が(#N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME? または #NULL! のいずれか) を参照するとき TRUE を返します。
          ISBLANK対象が空白セルを参照するとき TRUE を返します。
          ISERR対象が #N/A を除くエラー値を参照するとき TRUE を返します。
          ISLOGICAL対象が論理値を参照するとき TRUE を返します。
          ISNA対象がエラー値 #N/A (使用する値がない) を参照するとき TRUE を返します。
          ISNONTEXT対象が文字列でない項目を参照するとき TRUE を返します
          (対象が空白セルを参照するときも TRUE になりますので注意してください)。
          ISNUMBER対象が数値を参照するとき TRUE を返します。
          ISREF対象がセル範囲を参照するとき TRUE を返します。
          ISTEXT対象が文字列を参照するとき TRUE を返します。

        Excel関数一覧表

        • エクセルで一番悩むところが関数の使い方です。ここではエクセル関数を種類別一覧表、アルファベット順、機能別一覧表にまとめています。
        • Excel2007、Excel2010、Excel2013で追加された新しい関数の使い方も説明を加えています。
        • 使用頻度の高いExcel関数は機能別一覧表に分類し、Excel関数の技でも解説しています。

        関数の挿入[fx]ダイアログを使って関数を入力する方法

        ※Excel2007で追加された関数には を、Excel2010で追加された関数にはを付けています。
        Excel2013で追加された関数にはを付けています。
        Office365またはExcel Onlineで使用できる関数にはを付けています。

        【種類別エクセル関数一覧表】  作成済みエクセル関数の数:170個

        合計・平均の関数カウントの関数四捨五入など最大最小など
        日付の関数時刻の関数文字列の操作1文字列の操作2
        検索/行列の関数IF関数&IS関数三角関数・数学データベース関数

        財務関数エンジニアリング関数情報関数論理関数
           

        【アルファベット順エクセル関数一覧表 

        ABCD
        EFGH
        IJKL

        MNOP
        QRST

        UVWX
        YZその他


        【機能別エクセル関数一覧表】  

        機 能関 数
        数値の計算
        合計SUM SUBTOTAL SUMPRODUCT
         条件付きで合計するSUMIF  SUMIFS   DSUM AGGREGATE
        平均値AVERAGE AVERAGEA
         条件付きで平均する AVERAGEIF AVERAGEIFS  ***DAVERAGE
        中央値MEDIAN
        最頻値MODE MODE.MULT MODE.SNGL
        セルを数えるCOUNTCOUNTACOUNTBLANK
         条件付きでセルを数えるCOUNTIF COUNTIFS DCOUNT DCOUNTA FREQUENCY(度数分布) SUMPRODUCT
        四捨五入ROUNDMROUNDFIXED
        切り上げROUNDUPCEILINGEVEN(偶数に) ODD(奇数に)
        切り捨てROUNDDOWN FLOOR  INT TRUNC←結果の違いには注意が必要
        最大値MAXLARGE(大きい方から)
        最小値MINSMALL(小さい方から)
        順位RANK RANK.EQ RANK.AVG
        除算の商と余りQUOTIENT MOD
        PRODUCT
        絶対値ABS
        度・ラジアンRADIANS DEGREES
        三角関数SIN COS TAN
        乱数RAND RANDBETWEEN
         
        文字列の計算
        文字の長さLENLENB
        文字を取り出すLEFTMID   RIGHT   PHONETIC(ふりがな)
        文字を探す/比較するFINDSEARCH  EXACT
        文字種を変換ASC JIS  UPPERLOWER   PROPERNUMBERSTRING
        文字を取り除くCLEANTRIM
        文字を置き換えるSUBSTITUTE REPLACE
        文字をつなぐ(演算子)CONCATENATE
        数値を文字列に変えるTEXT
        文字列を繰り返し表示するREPT
        文字コード CODE  CHAR UNICODE UNICHAR
          
        検索/行列の関数
        一致した値を返す LOOKUP  VLOOKUP  HLOOKUP  INDEX  MATCH  CHOOSE
        セル位置を返す ROW・ROWS  COLUMN・COLUMNS  OFFSET  INDIRECT  TRANSPOSE   ADDRESS
        他のセル位置へ移動する HYPERLINK
        セルを参照する INDIRECT  ADDRESS
        行と列を入れ替えるTRANSPOSE
          
        日付/時刻の関数 
        現在の日付/時刻TODAY() NOW()
        年月日を取り出すYEAR MONTH DAY
        時分秒を取り出すHOUR MINUTE SECOND
        シリアル値を返すDATE DATEVALUE TIME TIMEVALUE
        文字列を返すDATESTRING TEXT
        曜日を求めるWEEKDAY WEEKDAY TEXT
        稼働日数WORKDAY NETWORKDAYS WORKDAY.INTL NETWORKDAYS.INTL
        期間の年・月・日数DATEDIF
        月末・何ヶ月後・数日後EOMONTH EDATE
        週番号WEEKNUM WEEKNUM ISOWEEKNUM
          
        セルの情報の関数
        セルの内容を調べるCELL INFO ISBLANK ISERR ISERROR
        ISEVEN ISFORMULA ISLOGICAL ISNONTEXT ISNUMBER ISODD
        数式を表示するFORMULATEXT
        エラー処理の関数 
        エラー処理に使う関数IF IFERROR IFNA
        ISERR ISERROR***エラー値とその対策

        LOOKUP関数の使い方

         ルックアップ
        =LOOKUP(検査値,検査範囲,対応範囲)  [ベクトル形式]
           対応範囲:1行/1列のみのセル範囲を指定。検査範囲と同じサイズであること。
        (注)検査範囲の値は昇順に並べておく必要があります。英字の大文字と小文字は区別されません。
            また、日本語文字を並べ替える場合「ふりがなを使用しない」で並べ替えます。

        =LOOKUP(検査値,配列) [配列形式]

        • 【問題】成績の評価を付けたいと思います。右の評価一覧表(G4:J6)にしたがって、D4:E6セルに数式を入力しなさい。

          •  BCDEFGH
            2評価一覧表
            3名前得点評価A得点評価A
            4今田500×
            5河野20×40
            6山田7070
        • 【解答例】

          • LOOKUP関数の場合、得点欄の値以上の意味になります。得点欄(F列)は昇順に並んでいることが必要です。
          •  BCDEFGH
            2評価一覧表
            3名前得点評価A得点評価A
            4今田50=LOOKUP(C4,$F$4:$F$6,$H$4:$H$6)0×
            5河野20=LOOKUP(C5,$F$4:$F$6,$H$4:$H$6)40
            6山田70=LOOKUP(C6,$F$4:$F$6,$H$4:$H$6)70
        • 関数の挿入ボタンを使った場合
          1. LOOKUP関数を選択して[OK]ボタンをクリックします。
          2. 引数の選択で、ベクトル形式か配列形式かの選択をします。
          3. 選択した引数のダイアログボックスが表示されます。
            引数を入力します。
        • 【別解】配列形式を使うと、D4セルは以下のように書くこともできます。

          • =LOOKUP(C4,$F$4:$H$6)
            (範囲の右端の列の値を返す。)
          • =LOOKUP(C4,{0,"×";40,"△";70,"○"})
            =LOOKUP(C4,{0,40,70;"×","△","○"})
        • (参考) LOOKUP関数のその他の用途(文字列から数値を取り出す方法など)


        • 【問題2】 下表のB3セルにコードを入力すると、C3:D3セルにF〜H列の表から商品名と単価を検索して表示するように数式を入力しなさい。
          • BCDEFGH
            2コード商品名単価コード商品名単価
            3130ぶどう300100りんご100
            4110みかん120
            5120200
            6130ぶどう300
            7140250
            8150パイナップル400
        • 【解答例2A】ベクトル形式
          • この問題では、D3セルの数式は C3セルの値(商品名)を検査値にして単価を検索することも考えられます。
            しかし、商品名は昇順に並んでいないので、この商品名を検索値にしたLOOKUP関数は使えません。
            よって、検査値には昇順に並んでいるコードを使用することになります。
          • C3セルには =LOOKUP($B$3,$F$3:$F$8,G3:G8) と入力します。
            =LOOKUP(検査値,検査範囲,対応範囲) の検査値は B3 、検査範囲は F3:F8 、対応範囲は G3:G8 となります。
            右のセル D3セルにコピーするために検査値は $B$3 、検査範囲は $F$3:$F$8 は絶対参照としています。
            BCDEFGH
            2コード商品名単価コード商品名単価
            3130=LOOKUP($B$3,$F$3:$F$8,G3:G8)=LOOKUP($B$3,$F$3:$F$8,H3:H8)100りんご100
            4110みかん120
            5120200
            6130ぶどう300
            7140250
            8150パイナップル400
        • 【解答例2B】配列形式
          • C3セルには =LOOKUP($B$3,$F$3:G8) と入力します。
            =LOOKUP(検査値,配列) の検査値は B3 、配列は F3:G8 となります。
            右のセル D3セルにコピーするために検査値は $B$3 、配列は $F$3:G8 と絶対参照にしています。
            BCDEFGH
            2コード商品名単価コード商品名単価
            3130=LOOKUP($B$3,$F$3:G8)=LOOKUP($B$3,$F$3:H8)100りんご100
            4110みかん120
            5120200
            6130ぶどう300
            7140250
            8150パイナップル400

        MATCH関数の使い方


        範囲内で値を検索し、見つかった値が何番目に位置するかを数値で返す。   マッチ
        =MATCH(検索値,範囲 [,照合の型])
           照合の型:「0」完全に一致する値を検索する
                「1」一致するものがない場合、検索値以下の最大の値を検索する。(データは
        昇順に並んでいることが必要)
                「-1」一致するものがない場合、検索値よりも大きい最小の値を検索する。(データは
        降順に並んでいることが必要)

        [A] MATCH関数で完全に一致する値を検索する

        【問題】

        • 到着地の名古屋(C9セル)は運賃表の左から何番目ですか?E9セルに数式を入れなさい。
        • 出発地の熊本(C10セル)は運賃表の上から何番目ですか?E10セルに数式を入れなさい。
        •  BCDEF
          2運賃表
          3東京名古屋大阪
          4鹿児島50,00040,00035,000
          5宮崎45,00035,00030,000
          6熊本40,00030,00025,000
          7福岡30,00020,00015,000
          8
          9到着地名古屋は左から2番目です。
          10出発地熊本は上から3番目です。
          11

        【解答例】

        • 到着地(C9セル)は範囲(C3:E3)からMATCH関数の完全一致で求めます。
        • 出発地(C10セル)は範囲(B4:B7)からMATCH関数の完全一致で求めます。

        (別解) VLOOKUP関数やINDEX関数とMATCH関数を組み合わせて求める方法

        • VLOOKUP関数やINDEX関数と組み合わせて運賃を求めることができます。(下の方に説明があります)
        • (注)VLOOKUP関数、INDEX関数のどちらを使っても同じ結果が得られますが、VLOOKUP関数とINDEX関数とで中に使うMATCH関数の範囲が異なります。
        • BCDEF
          2運賃表
          3東京名古屋大阪
          4鹿児島50,00040,00035,000
          5宮崎45,00035,00030,000
          6熊本40,00030,00025,000
          7福岡30,00020,00015,000
          8
          9到着地名古屋は左から=MATCH(C9,C3:E3,0)番目です。
          10出発地熊本は上から=MATCH(C10,B4:B7,0)番目です。
          11運賃は=VLOOKUP(C10,B4:E7,MATCH(C9,B3:E3,0),FALSE)
          12運賃は=INDEX(C4:E7,MATCH(C10,B4:B7,0),MATCH(C9,C3:E3,0)
          • INDEX関数とMATCH関数を組み合わせて使う方法は INDEX関数 をご覧ください。

        MATCH関数で検索値以下の最大値を検索する。

        • MATCH関数の照合の型に「1」を使います。
        • 検索範囲(B3:E3)の20〜80の中で検索値(B8)の45以下で最も近い値は(C3)の40であり、
        • (C3)の40は検索範囲(B3:E3)の左から2番目にあるので、答えは2となります。
        • vlookup05

        MATCH関数で検索値よりも大きい最小の値を検索する。

        • MATCH関数の照合の型に「-1」を使います。
        • 検索範囲(B3:E3)の20〜80の中で検索値(B8)の85以上で、最も近い値は(B3)の100であり、
        • (B3)の100は検索範囲(B3:E3)の左から1番目にあるので、答えは1となります。
        • vlookup06

        VLOOKUP とMATCH の複合     縦横の検索表から、一致する値を取り出すのに、VLOOKUP関数とMATCH関数を組み合わせて使う方法です。

        【問題】VLOOKUP関数とMATCH関数を使って運賃を求めなさい。

        • BCDE
          2運賃表
          3東京名古屋大阪
          4鹿児島50,00040,00035,000
          5宮崎45,00035,00030,000
          6熊本40,00030,00025,000
          7福岡30,00020,00015,000
          8
          9到着地名古屋
          10出発地熊本
          11運賃は30,000

        【解答例】

        • 出発地熊本(C10セル)の行位置をVLOOKUP関数で求めます。
          VLOOKUP関数は左端の列を検索するので、範囲は『B7:E7』となります。
          =VLOOKUP(C10,B4:E7,○○,FALSE)
        • 到着地の名古屋(C9セル)が何列目になるのかMATCH関数で求めます。
          (注)VLOOKUP関数は検索列(一番左の列)を含む範囲になるので、MATCH関数の範囲は『B3:E3』とします。
          MATCH(C9,B3:E3,0) 
        • この両方の式を合わせて完成です。
          =VLOOKUP(C10,B4:E7,MATCH(C9,B3:E3,0),FALSE)
        • BCDE
          2運賃表
          3東京名古屋大阪
          4鹿児島50,00040,00035,000
          5宮崎45,00035,00030,000
          6熊本40,00030,00025,000
          7福岡30,00020,00015,000
          8
          9到着地名古屋
          10出発地熊本
          11運賃は=VLOOKUP(C10,B4:E7,MATCH(C9,B3:E3,0),FALSE)

        VLOOKUP と MATCH および INDIRECT の複合    参照する表が2種類ある場合、切り替えて使いたい時にINDIRECT関数が使えます。
         インダイレクト

        =INDIRECT(参照文字列,参照形式)
             参照文字列で入力したセル、セル範囲名を計算式で参照できるようにする。
             参照形式:TRUE または省略した場合、A1形式でのセル参照。
                    FALSE R1C1形式でのセル参照。

        【料金計算の例】

        • 料金表が【大人】と【子供】の2種類あります。計算時にこれらの表を切り替えて使う方法です。
        1. 大人の料金表のE4:H7の範囲に【大人】と名前をつけます。
        2. 大人の料金表の到着地行E3:H3に【大人到着地】と名前をつけます。
        3. 子供の料金表のE11:H24の範囲に【子供】と名前をつけます。
        4. 子供の料金表のタイトル行E10:H20に【子供到着地】と名前をつけます。
        5. C5に数式 =VLOOKUP(C2,INDIRECT(B4),MATCH(C3,INDIRECT(B4&"到着地"),0),FALSE)*C4 を、入力します。

        【説明】

        • INDIRECT(B4&"到着地"):B4セルの文字列が『子供』であれば『子供到着地』を参照します。
        • MATCH(C3,INDIRECT(B4&"到着地"),0),FALSE):でC3セルの到着地『名古屋』の列位置を返します。
        • VLOOKUP(C2,INDIRECT(B4)・・・:B4セルの文字列『子供』ならば、セル範囲『子供』からC2セルの出発地『宮崎』を検索し、 
        • MATCH関数で求めた列位置の一人分の料金を出します。そして、人数を掛けて料金を計算しています。

        (ステップアップ)入力規則を使って入力値を制限する

        • 入力ミスを防ぐ&マウス操作のみにするため、C2,C3,B4セルには入力規則をつけます。
        • 【データ】→【入力規則】を選択し、
          • C2には【リスト】で【E4:E7】
          • C3には【リスト】で【F3:H3】
          • B4には【リスト】で【大人,子供】 
          とすれば、リストからの選択となり、入力しなくても良いです。
        • 更に、C4にも【リスト】で【1,2,3,4,5,6】としておけば、マウス操作のみで料金が表示されます。

        vlookup10

        最大/最小の関数

        • 最大値(MAX関数)、最小値(MIN関数)、大きい方からの順位の値(LARGE関数)、小さい方からの順位の値(SMALL関数)を求めるExcel関数の使い方を説明しています。
        • RANK関数は順位の関数へ移動しました。

        最大値(MAX関数)最小値(MIN関数)
        大きい順(LARGE関数)小さい順(SMALL関数)

        範囲内の最大値を求めます   マックス
        =MAX(範囲)

        範囲内の最小値を求めます 
         ミン
        =MIN(範囲)

        • 最大値と最小値を求める(問題1)
        • 上限や下限がある場合に使う方法(問題2〜3)
        【問題1】
        • 各教科の最高点と最低点をC10:F11に求めなさい。
        • なお、C9:F9に平均点、F3:F8に合計も計算してみましょう。
        •  BCDEF
          2名前国語数学英語合計
          3井上808588253
          4会田706558193
          5上野908876254
          6岡田556247164
          7釜元776471212
          8木下647569208
          9平均点72.773.268.2214
          10最高点908888254
          11最低点556247164
        【解答例】
        • 最高点はMAX関数、最低点はMIN関数を使って求めます。
        • なお、平均はAVERAGE関数、合計はSUM関数を使います。
        •  BCDEF
          2名前国語数学英語合計
          3井上808588=SUM(C3:E3)
          4会田706558=SUM(C4:E4)
          5上野908876=SUM(C5:E5)
          6岡田556247=SUM(C6:E6)
          7釜元776471=SUM(C7:E7)
          8木下647569=SUM(C8:E8)
          9平均点=AVERAGE(C3:C8)=AVERAGE(D3:D8)=AVERAGE(E3:E8)=AVERAGE(F3:F8)
          10最高点=MAX(C3:C8)=MAX(D3:D8)=MAX(E3:E8)=MAX(F3:F8)
          11最低点=MIN(C3:C8)=MIN(D3:D8)=MIN(E3:E8)=MIN(F3:F8)

        【問題2】
        • 通勤距離が片道4Kmを超える場合、ガソリン代1Km当たり200円20日分支給されます。
          ただし、一月の支給額は30,000円を上限とします。
          各通勤距離のガソリン支給額を求めなさい。
          BC
          2通勤距離(片道km)支給額(円/月)
          330
          440
          558,000
          6616,000
          7724,000
          8830,000
          9930,000
        【解答2例】
        1. ガソリン代が支給される通勤距離は4qを超えない場合は0とします。
          MAX(0,B3-4) とし、往復分の「2」、1Km当たりの「200」、支給日数の「20」をかけて、
          MAX(0,B3-4)*2*20*200 とします。
        2. 支給金額の上限は「30,000」であるので、
          =MIN(30000,MAX(0,B3-4)*2*20*200) とします。
          BC
          2通勤距離(片道km)支給額(円/月)
          33=MIN(30000,MAX(0,B3-4)*2*20*200)
          44=MIN(30000,MAX(0,B4-4)*2*20*200)
          55=MIN(30000,MAX(0,B5-4)*2*20*200)
          66=MIN(30000,MAX(0,B6-4)*2*20*200)
          77=MIN(30000,MAX(0,B7-4)*2*20*200)
          88=MIN(30000,MAX(0,B8-4)*2*20*200)
          99=MIN(30000,MAX(0,B9-4)*2*20*200)

        【問題3】
        • 勤務時間が9:00〜17:00である時、出勤時刻と退勤時刻からこの時間帯に出社していた時間を求めなさい。
          ただし、エラー処理や小数誤差の対策は考慮しないものとします。
           BCD
          2出社時刻退社時刻勤務時間
          38:2515:306:30
          410:1516:206:05
          510:3518:006:25
        【解答3例】
        1. 計算の起点は、出勤時刻と"9:00"の大きい方を取り出せばいいので、MAX(B3,"9:00")
        2. 計算の終点は、退勤時刻と"17:00"の小さい方を取り出せばいいので、MIN(C3,"17:00")
        3. よって数式は =MIN(C3,"17:00")-MAX(B3,"9:00") となります。
           BCD
          2出社時刻退社時刻勤務時間
          38:2515:30=MIN(C3,"17:00")-MAX(B3,"9:00")
          410:1516:20=MIN(C4,"17:00")-MAX(B4,"9:00")
          510:3518:00=MIN(C5,"17:00")-MAX(B5,"9:00")

        大きいほうからの順位の数値を求める   ラージ
        =LARGE(範囲,順位)

        小さいほうからの順位の数値を求める
         スモール
        =SMALL(範囲,順位)

        2番目、3番目に大きい値を求めるにはLARGE関数、2番目、3番目に小さい値を求めるにはSMALL関数を使うと便利です。
        これらの関数でも最大値や最小値を求めることができます。

        【問題1-1】

        • 合計得点の大きい方から第一位、第二位 および 最下位、ブービー(下から二番目)の得点とその名前を求めなさい。
           BCDEFGHI
          2名前国語数学英語合計得点名前
          3井上808588253一位254上野
          4会田706558193二位253井上
          5上野908876254
          6岡田556247164最下位164岡田
          7釜元776471212ブービー193会田
          8木下647569208

        【解答例1-1】

        1. 一位、二位は大きい方からの順位ですので、LARGE関数を使います。
        2. 最下位、ブービーは小さい方からの順位なので、SMALL関数を使います。
        3. 名前は INDEX関数とMATCH関数を組み合わせて検索してみました。
        •  BCDEFGHI
          2名前国語数学英語合計得点名前
          3井上808588253一位=LARGE(F3:F8,1)=INDEX($B$3:$B$8,MATCH(H3,$F$3:$F$8,0))
          4会田706558193二位=LARGE(F3:F8,2)=INDEX($B$3:$B$8,MATCH(H4,$F$3:$F$8,0))
          5上野908876254
          6岡田556247164最下位=SMALL(F3:F8,1)=INDEX($B$3:$B$8,MATCH(H6,$F$3:$F$8,0))
          7釜元776471212ブービー=SMALL(F3:F8,2)=INDEX($B$3:$B$8,MATCH(H7,$F$3:$F$8,0))
          8木下647569208

        【問題1-2】

        • 各教科の0点を除いた最低点をC9:D9に求めなさい。
           BCD
          2名前テスト1テスト2
          3井上800
          4会田7065
          5上野088
          6岡田550
          7釜元00
          8木下6475
          9最低点5565
        • 0点の次に小さい値を求めればよいので、0点の数を求め、その次に小さい値をSMALL関数で求めます。
          C9セルは=SMALL(C3:C8,COUNTIF(C3:C8,0)+1) となります。
          BCD
          2名前テスト1テスト2
          3井上800
          4会田7065
          5上野088
          6岡田550
          7釜元00
          8木下6475
          9最低点=SMALL(C3:C8,COUNTIF(C3:C8,0)+1)=SMALL(D3:D8,COUNTIF(D3:D8,0)+1)

        MAXIFS関数(条件付きで最大値を求める)


        条件に合致したセルの最大値を求めます 
         マックス イフズ
        =MAXIFS(最小範囲,条件範囲1,条件1,[条件範囲2,条件2],・・・)

        • 条件に合うセルの最大値を求める ことができます。
          なお、現在(2016/4/11)この関数MAXIFSが使用できるのは以下の場合に限られています。このページではExcelOnlineの画像を使って説明しています。
          • Office 365 の最新のもの
          • Excel Online を使用している場合
          • Excel Mobile を使用している場合
          • Excel for Android フォンおよび Excel for Android タブレットを使用している場合
        【問題1】
        • A列の値が"A"であるB列の値の最大値を求めなさい。
          同様に、"B"、"C"の時の最大値も求めましょう。
        【解答例】
        • E2セルの数式は =MAXIFS($B$2:$B$13,$A$2:$A$13,D2) とします。
          E2セルの数式を E3:E4セルへコピー&貼り付けして完成です。
        • なお、MAXIFS関数がつかえない場合は配列数式を利用することができます。
          • E2セルに {=MAX(IF($A$2:$A$13=D2,$B$2:$B$13))} とします。
            配列数式なので、=MAX(IF($A$2:$A$13=D2,$B$2:$B$13)) と入力して、[Shift]+[Ctrl]+[Enter] で入力します。すると数式が { } でくくられた配列数式になります。
        • ほかにもいろいろな方法がありますので エクセル関数の技:条件付きで最大値、最小値を求める をご覧ください。

        【問題2】
        • 各年代の最高得点を求めなさい。ただし、50歳代は50歳以上の最大値を求めなさい。
        【解答2例】
        1. 30歳代の最高得点を求めるには、30歳代の条件を 30以上 40未満と設定しました。
          数式は =MAXIFS(C2:C15,B2:B15,">=30",B2:B15,"<40") となります。
        2. 40歳代も同様に、年齢の条件を 40以上、50未満と設定しました。
          数式は =MAXIFS(C2:C15,B2:B15,">=40",B2:B15,"<50") としました。
        3. 50歳代は、ここでは50歳以上としますので、数式は =MAXIFS(C2:C15,B2:B15,">=50") としました。

        MINIFS関数(条件付きで最小値を求める)


        条件に合致したセルの最小値を求めます 
         ミン イフズ
        =MINIFS(最小範囲,条件範囲1,条件1,[条件範囲2,条件2],・・・)

        • 条件に合うセルの最小値を求める ことができます。
          なお、現在(2016/4/11)この関数MINIFSが使用できるのは以下の場合に限られています。このページではExcelOnlineの画像を使って説明しています。
          • Office 365 の最新のもの
          • Excel Online を使用している場合
          • Excel Mobile を使用している場合
          • Excel for Android フォンおよび Excel for Android タブレットを使用している場合
        【問題1】
        • A列の値が"A"であるB列の値の最小値を求めなさい。
          同様に、"B"、"C"の時の最小値も求めましょう。
        【解答例】
        • E2セルの数式は =MINIFS($B$2:$B$13,$A$2:$A$13,D2) とします。
          E2セルの数式を E3:E4セルへコピー&貼り付けして完成です。
        • なお、MINIFS関数がつかえない場合は配列数式を利用することができます。
          • E2セルに {=MIN(IF($A$2:$A$13=D2,$B$2:$B$13))} とします。
            配列数式なので、=MIN(IF($A$2:$A$13=D2,$B$2:$B$13)) と入力して、[Shift]+[Ctrl]+[Enter] で入力します。すると数式が { } でくくられた配列数式になります。
        • ほかにもいろいろな方法がありますので エクセル関数の技:条件付きで最大値、最小値を求める をご覧ください。

        【問題2】
        • B列で0を除いた最小値を求めなさい。
          ちなみに、=MIN(B2:B13) では 0 となってしまいます。
        【解答2例】
        1. 数式は =MINIFS(B2:B13,B2:B13,"<>0") となります。
          条件範囲を B2:B13 として、条件を "<>0" (0と等しくない) としています。

        最頻値を求める関数

        • 最も頻度の多い値を求める関数(MODE関数、MODE.SNGL関数、MODE.MULT関数)の使い方を解説しています。
          MODE.SNGL関数、MODE.MULT関数はExcel2010で追加された関数です。
        MODE関数MODE.SNGL関数MODE.MULT関数

        最頻値を求める   モード
        =MODE(数値1,[数値2],・・・)

        • 数値2は省略可能で、2〜254個の数値を指定できます。
          また、単一配列や、配列への参照を指定することもできます。
        • 引数には、数値、数値配列、または数値を含む範囲を参照する名前かセル参照を指定します。
        • 文字列、論理値、または空白セルは無視されます。
          数値として 0 (ゼロ) は計算の対象となります。
        • エラー値または数値に変換できない文字列を引数に指定すると、エラーになります。
          重複しない数値がないときはエラー 「#N/A」 になります。
        • 最頻値が複数ある場合は、最初に出てきた数値が返されます。
          複数の最頻値はExcel2010以降で追加されたMODE.MULT関数 を使って求めることができます。
        • 【問題】データの最頻値をC9セルに求めなさい。
          •  BC
            2データ
            380
            455
            590
            655
            755
            880
            9最頻値55
        • 【解答例】
          •  BC
            2データ
            380
            455
            590
            655
            755
            880
            9最頻値=MODE(C2:C7)

        最頻値を求める   モード シングル
        =MODE.SNGL(数値1,[数値2],・・・)
        Excel2010で追加された関数です。従来のMODE関数と同様の使い方をします。

        • 【問題】データの最頻値をC9セルに求めなさい。
          •  BC
            2データ
            380
            455
            590
            655
            755
            880
            9最頻値55
        • 【解答例】
          •  BC
            2データ
            380
            455
            590
            655
            755
            880
            9最頻値=MODE.SNGL(C2:C7)

        最頻値を求める   モード マルチ
        =MODE.MULT(数値1,[数値2],・・・)
         Excel2010で追加された関数です。

        • 最頻値が複数あるときには、配列数式として入力すると複数の最頻値を求めることができます。
        • 【問題】データの最頻値をC12セル以降に求めなさい。
          •  BC
            2データ
            370
            480
            570
            655
            755
            880
            990
            1055
            1180
            12最頻値80
            13最頻値55
            14
        • 【解答例】
          • 通常のように数式を入力すると、最初に現れる最頻値が1個だけ求められます。
            MODE.SNGL関数と同じです。
            最頻値が複数あるので、これでは不十分です。
            •  BC
              2データ
              370
              480
              570
              655
              755
              880
              990
              1055
              1180
              12最頻値=MODE.MULT(C3:C11)
              13最頻値
              14
          • 複数の最頻値を求めるには配列数式とします

            1. C12:C14セルを選択。
              結果を表示するセルを選択しておいてから、数式を入力します。
            2. C12セルに=MODE.MULT(C3:C11) と入力し、[Ctrl]+[Shift]+[Enter]で入力を確定します
            3. C12:C14セルには {=MODE.MULT(C3:C11)} と配列数式で入力されます
            4. 下図のように数式が入力されます。
              ただし、この表をコピーしてExcelへ貼り付けても配列数式にはなりませんのでご注意ください。
               BC
              2データ
              370
              480
              570
              655
              755
              880
              990
              1055
              1180
              12最頻値{=MODE.MULT(C3:C11)}
              13最頻値{=MODE.MULT(C3:C11)}
              14{=MODE.MULT(C3:C11)}
            5. 計算結果は下図のようになります。
              • 最頻値は「80」と「55」でそれぞれデータが3個あります。
                3つ目の最頻値はないので 3つ目の数式の箇所には#N/A エラーが返されています。
               BC
              2データ
              370
              480
              570
              655
              755
              880
              990
              1055
              1180
              12最頻値80
              13最頻値55
              14#N/A
          • 複数の最頻値を横方向へ求めるには?

            1. C12:E12セルを選択。
              結果を表示するセルを選択しておいてから、数式を入力します。
            2. C12セルに =TRANSPOSE(MODE.MULT(C3:C11)) と入力し、[Ctrl]+[Shift]+[Enter]で入力を確定します
            3. C12:C14セルには {=TRANSPOSE(MODE.MULT(C3:C11))} と配列数式で入力されます
            4. 下図のように数式が入力されます。
              ただし、この表をコピーしてExcelへ貼り付けても配列数式にはなりませんのでご注意ください。
               BCDE
              2データ
              370
              480
              570
              655
              755
              880
              990
              1055
              1180
              12最頻値{=TRANSPOSE(MODE.MULT(C3:C11))}{=TRANSPOSE(MODE.MULT(C3:C11))}{=TRANSPOSE(MODE.MULT(C3:C11))}
            5. 計算結果は下図のようになります。
               BCDE
              2データ
              370
              480
              570
              655
              755
              880
              990
              1055
              1180
              12最頻値8055#N/A

        文字列の関数(1)

        • エクセルで文字列のデータを操作する時に使用するワークシート関数です。
        • 文字種の変更(ASC関数,JIS関数,UPPER関数,LOWER関数,PROPER関数,NUMBERSTRING関数)
          文字を取出す関数(LEFT関数,RIGHT関数,MID関数,PHONETIC関数)
          文字の長さを調べる関数(LEN関数,LENB関数)、文字を検索する関数(FIND関数,SEARCH関数)
          について説明しています。
        半角/全角の変換(ASC,JIS関数)大文字/小文字の変換(UPPER,LOWER,PROPER関数)
        漢数字に変換(NUMBERSTRING関数)文字列を取り出す(LEFT,RIGHT,MID関数)
        文字列の検索(FIND関数)文字列の検索(SEARCH関数)
        ふりがなを取り出す(PHONETIC関数)文字列の長さを返す(LEN,LENB関数)

        文字列を取出す関数の使い分け方

        1. 取出す文字列の位置が決まっている場合
          • 左から何文字・・・LEFT関数
          • 右から何文字・・・RIGHT関数
          • 何文字目から何文字まで・・・MID関数
        2. 決まった文字を基準にする場合
          • 大文字と小文字を区別する・・・FIND関数と上記「A」の関数を組み合わせる
          • 大文字と小文字を区別しない・・・SEARCH関数と上記「A」の関数を組み合わせる

        半角/全角の文字に変換します   アスキー
        =ASC(文字列) :全角の文字列(英数字、カタカナ)を半角の文字に変換します。
         ジス
        =JIS(文字列) :半角の文字列(英数字、カタカナ)を全角の文字に変換します。
           (注)ひらがな、漢字は全角文字ですので、半角文字には変換されません。

        • 【問題】C2〜C5セルに入力されている半角文字は全角文字に、全角文字は半角文字に変換してE列に表示しなさい。
          なお、(半角カタカナ)部分はご自分でExcelへ半角カタカナの文字列を入力してください。

          •  BCDE
            2半角文字→KAGOSHIMA全角文字→KAGOSHIMA
            3半角文字→(半角カタカナ)全角文字→カゴシマ
            4全角文字→KAGOSHIMA半角文字→KAGOSHIMA
            5全角文字→カゴシマ半角文字→(半角カタカナ)
        • 【解答例】
          •  BCDE
            2半角文字→KAGOSHIMA全角文字→=JIS(C2)
            3半角文字→(半角カタカナ)全角文字→=JIS(C3)
            4全角文字→KAGOSHIMA半角文字→=ASC(C4)
            5全角文字→カゴシマ半角文字→=ASC(C5)

        アルファベットの大文字/小文字の変更を行う   アッパー
        =UPPER(文字列)  :小文字を大文字に変換します。
         ロウワー
        =LOWER(文字列)  :大文字を小文字に変換します。
         プロパー
        =PROPER(文字列) :1文字目を大文字に、2文字目以降を小文字に変換します。
           (注) カタカナやひらがなには、大文字/小文字の区別はありませんので、何も変化しません。

        • 【例】ASC関数との組み合わせもできます。

        数値を指定した表示形式の漢数字に変換する   ナンバーストリング
        =NUMBERSTRING(数値,表示形式)
        (注)他の表計算アプリケーションとの互換を保つために用意された関数のため、ヘルプおよび関数ウィザードには表示されません。
          また、日本語版 Excel でのみ追加されたものです。

        • 【問題】下記の数字をそれぞれの表示形式に変更しなさい。

          •  BCDE
            2数値表示形式1表示形式2表示形式3
            312345一万二千三百四十五壱萬弐阡参百四拾五一二三四五
        • 【解答例】
          •  BCDE
            2数値表示形式1表示形式2表示形式3
            312345=NUMBERSTRING(B3,1)=NUMBERSTRING(B3,2)=NUMBERSTRING(B3,3)

        文字列から、指定した位置の文字を取り出します   レフト
        =LEFT(文字列,[文字数])       :文字列の左端から指定した文字数だけ取り出す。
         文字数を省略すると1を指定したことになります(1の時は省略できる)。
         ライト
        =RIGHT(文字列,[文字数]      :文字列の右端から指定した文字数だけ取り出す。
         文字数を省略すると1を指定したことになります(1の時は省略できる)。
         ミッド
        =MID (文字列,開始位置,文字数) :文字列の指定した位置から指定した文字数だけ取り出す。

        • 【問題1】下記の住所からそれぞれ指定の文字を表示しなさい。
          •  BCDE
            2左から4文字左から5文字目から4文字右から6文字
            3鹿児島県鹿児島市山下町1番地鹿児島県鹿児島市山下町1番地
        • 【解答1例】
          • それぞれLEFT、MID、RIGHT関数を使います。
             BCDE
            2左から4文字左から5文字目から4文字右から6文字
            3鹿児島県鹿児島市山下町1番地=LEFT(B3,4)=MID(B3,5,4)=RIGHT(B3,6)

        (Step-Up1)FIND関数を使い、「県」を検索して、その位置を基準に文字列を取り出します。

        •  BCD
          2県名を取り出す県名より後の文字を取り出す
          3鹿児島県鹿児島市山下町1番地=LEFT(B3,FIND(”県”,B3))=MID(B3,FIND("県",B3)+1,LEN(B3))

        (Step-Up2)都道府県名を取り除くにはどうすればよいでしょうか?

        • 【問題1】下記の住所からそれぞれ都道府県名を取り除いてください。
          • BC
            2住所都道府県名を削除
            3鹿児島県鹿児島市鴨池新町10番1号鹿児島市鴨池新町10番1号
            4大阪府大阪市中央区大手前2丁目大阪市中央区大手前2丁目
            5東京都新宿区西新宿2-8-1新宿区西新宿2-8-1
            6宮崎県宮崎市橘通東二丁目10番1号宮崎市橘通東二丁目10番1号
        • 【解答1例】
          • 都:東京都  道:北海道 府:大阪府、京都府 県:4文字(鹿児島県、和歌山県、神奈川県)と3文字(宮崎県、熊本県など)の2パターン
          • これらのことから4文字目に"県"が含まれるものと3文字で表示されるものの2パターンがあることになりますので
            4文字目が「県」である時は5文字目以降を、それ以外は4文字目以降を取り出せばよいことになります。
          • BC
            2住所都道府県名を削除
            3鹿児島県鹿児島市鴨池新町10番1号=IF(MID(B3,4,1)="県",MID(B3,5,LEN(B3)-4),MID(B3,4,LEN(B3)-3))
            4大阪府大阪市中央区大手前2丁目=IF(MID(B4,4,1)="県",MID(B4,5,LEN(B4)-4),MID(B4,4,LEN(B4)-3))
            5東京都新宿区西新宿2-8-1=IF(MID(B5,4,1)="県",MID(B5,5,LEN(B5)-4),MID(B5,4,LEN(B5)-3))
            6宮崎県宮崎市橘通東二丁目10番1号=IF(MID(B6,4,1)="県",MID(B6,5,LEN(B6)-4),MID(B6,4,LEN(B6)-3))
            • ここではMID(B3,5,LEN(B3)-4) と住所の文字数を数えて都道府県の文字数4(または3)を引いて取り出す文字数を計算しています。
              MID関数では取り出す文字数が指定した文字列の数より多くてもエラーとなりませんので、
              MID(B3,5,LEN(B3)) としても同じ結果が得られます。
              よって、=IF(MID(B3,4,1)="県",MID(B3,5,LEN(B3)),MID(B3,4,LEN(B3))) とか
              住所の文字数が100を超えることがないなら、=IF(MID(B3,4,1)="県",MID(B3,5,100),MID(B3,4,100)) とすることもできます。

        (Step-Up3)都府県名から右の1文字を削除するにはどうすればよいでしょうか?

        • 【問題1】下記のB3:B6の都府県名から右の1文字を削除しなさい。(都府県の1文字を削除しなさい。)
          • BC
            2都府県名右1文字を削除
            3東京都東京
            4大阪府大阪
            5鹿児島県鹿児島
            6宮崎県宮崎
        • 【解答1例】
          • LEFT関数とLEN関数を組み合わせて使います。
            右一文字を削除するということは、文字列の左から「文字数-1」の文字を取り出すことと同じです。
            左から文字を取り出すのはLEFT関数、文字数はLEN関数で計算できます。
          • BC
            2都府県名右1文字を削除
            3東京都=LEFT(B3,LEN(B3)-1)
            4大阪府=LEFT(B4,LEN(B4)-1)
            5鹿児島県=LEFT(B5,LEN(B5)-1)
            6宮崎県=LEFT(B6,LEN(B6)-1)

        LEFTB(文字列,[バイト数])  :文字列の先頭から指定されたバイト数の文字を返す。
        RIGHTB(文字列,[バイト数])  :文字列の末尾 (右端) から指定されたバイト数の文字を返す。
         バイト数を省略すると1を指定したことになります(1の時は省略できる)。
        MIDB(文字列,開始位置,バイト数) :文字列の任意の位置から指定されたバイト数の文字を返す。
         半角文字は1バイト、全角文字は2バイトとなります。ただしUNICODOでは半角文字も2Byteです。

        文字列が開始位置から何番目にあるかを返します   ファインド
        =FIND(検索文字列,対象,開始位置)
          (注) 英字の大文字と小文字を区別できる代わりに、ワイルドカード文字を使用することができません。

        • 【使用例1】B2セルの住所から、「県」の文字位置を求め、県名や県名を除いた住所を取り出す例です。

          •  BCD
            2鹿児島県鹿児島市山下町1番地=FIND("県",B2)4
            3=LEFT(B2,FIND("県",B2))鹿児島県
            4=MID(B2,FIND("県",B2)+1,LEN(B2))鹿児島市山下町1番地
        • 【使用例2】特定の文字の後ろの文字列を取り出します。

          • 特定の文字「_」(アンダーバー)の後ろの文字列を取り出してみます。
          • C2セルに=IF(LEN($B2)=0,"",MID($B2,FIND("_",$B2)+1,LEN($B2))) としています。
            BC
            2123_456456
            3123#VALUE!
            4_1212
            512_
          • 「_」が含まれない時。#VALUE!エラーとなっていしまいます。
            対策として、対象セルの後ろに &"_" と「_」を付与しておきます。するとエラーが出なくなります。
            D2セルでは=IF(LEN($B2)=0,"",MID($B2,FIND("_",$B2&"_")+1,LEN($B2))) としました。
            BCD
            2123_45645645
            3123#VALUE!
            4_121212
            512_
        • 【使用例3】

          • 文字列が含まれるか否かを調べることもできます。
          • 大文字と小文字は区別されますので、含まれない場合は「#VALUE!」となります。
          • ワイルドカードは使えませんので、「#VALUE!」となります。
            • BCD
              2ABCDEFG=FIND("DE",$B$2)=FIND("DE",B2)>0
              3=FIND("de",B2)=FIND("de",B2)>0
              4=FIND("DE?G",B2)=FIND("DE?G",B2)>0
            • この様になります。
              BCD
              2ABCDEFG4TRUE
              3#VALUE!#VALUE!
              4#VALUE!#VALUE!
        • 別の関数を使う例
          • B列の文字列に"A"を含む時は1、"B"を含む時は2、いずれも含まないときは0としたい。
            両方含む時は"A"を優先して1、とします。
            • =IF(FIND("A",A2),1,IF(FIND("B",A2),2,0)) とすれば良さそうですが、FIND関数がエラーとなるときにうまく計算できません。
            • =IF(LEN(A1)>LEN(SUBSTITUTE(A1,"A","")),1,IF(LEN(A1)>LEN(SUBSTITUTE(A1,"B","")),2,0))
              とすると良さそうです。
            BC
            2BUS2
            3CAT1
            4DOG0

        文字列が開始位置から何番目にあるかを返します   サーチ
        =SEARCH(検索文字列,対象,開始位置)
          (注) 英字の大文字と小文字を区別できませんが、ワイルドカード文字を使用できます。

        • FIND関数と似ています。文字列が含まれるか否かを調べることもできます。
        • 上のFIND関数との違いに注意してください。
          • BCD
            2ABCDEFG=SEARCH("DE",$B$2)=SEARCH("DE",B2)>0
            3=SEARCH("de",B2)=SEARCH("de",B2)>0
            4=SEARCH("DE?G",B2)=SEARCH("DE?G",B2)>0
          • この様になります。
            BCD
            2ABCDEFG4TRUE
            34TRUE
            44TRUE

        セル内の文字列のふりがなを取り出す    フォネティック
        =PHONETIC(セル番地)

        • 入力時のふりがなを別のセルに取出します。
          • 取出すセルに「=PHONETIC(セル番地)」と入力します。
          • 表示されるふりがなは設定された文字(ひらがな、全角カタカナ、半角カタカナ)で表示されます。
            • Excel2007以降は漢字の入力されているセルを選択して、[ふりがな]→[ふりがなの設定]を実行。
              Excel2003以前は漢字の入力されているセルを選択して、【書式】→【ふりがな】→【設定】を選択。

              ふりがなタブで種類を選択。
              下図では「ひらがな」を選択しています。
        • 入力した文字列のふりがなを表示するには
          • Excel2007以降は、[ホーム]タブの[ふりがなの表示/非表示]をクリックします。
            Excel2003以前は、メニューバーの【書式】→【ふりがな】→【表示/非表示】を選択。


        • ふりがなが意図しないものであったら、書き換えることができます。
          • 漢字の入力されているセルを選択。
            Excel2007以降は、[ホーム]タブの[ふりがな]→[ふりがなの編集]をクリックします。
            Excel2003以前は、メニューバーの【書式】→【ふりがな】→【編集】を選択。

            ふりがな部にカーソルが表示され編集が可能になります。
          • ふりがなを表示し、セルをダブルクリックしてセルにカーソルを表示してから、ふりがな部分をクリックしても編集が可能です。

        (ステップアップ)VBAでふりがなを作成する

        • 隣のセルなどに、ふりがなを表示した方がデータを使い回す場合には便利です。
        • 他のシートからの参照、外部データをインポートした場合にはふりがな情報が欠落します。
          • VBAのGetPhoneticメソッドでふりがなを振ることが可能です。
            Sub myPhone()
             Dim c As Range
              For Each c In Selection
                c.Offset(0, 1).Value = Application.GetPhonetic(c)
              Next c
            End Sub

          • ふりがなを設定するにはSetPhoneticメソッドを使います。
            Sub myPhone2()
             Dim c As Range
              For Each c In Selection
                c.SetPhonetic
              Next c
            End Sub

        文字列の文字数を取り出します   レン
        =LEN(文字列) :文字列の文字数を返します。半角文字と全角文字との区別はされません
         レンビー
        =LENB(文字列) :文字列のバイト数を返します。
            一般的には半角文字は1Byte(バイト) :全角文字は2Byteですが、UNICODOでは半角文字も2Byteです。
            ついでに1Byte=8Bit(ビット)です。

        • 半角文字と全角文字が混在しているか否かを判断するには?
          =IF(LEN(A1)*2=LENB(A1),"全角文字",IF(LEN(A1)=LENB(A1),"半角文字","混在している"))
          とします。

        文字列の関数(2)

        • エクセルで文字列のデータを操作する時に使用するワークシート関数です。
        • 文字列の置換や繰り返し(SUBSTITUTE関数,REPLACE関数,REPT関数)、文字列の結合(&,CONCATENATE関数)、
          空白や制御コードの削除(TRIM関数,CLEAN関数)、文字コードに関する関数(CHAR関数,CODE関数)
          について説明しています。
        文字列の置換(SUBSTITUTE)文字列の比較(EXACT)文字列を結合する(&,CONCATENATE)
        文字列の置換(REPLACE)余分な空白の削除(TRIM)コードから文字を返す(CHAR)
        数値を文字列へ変換(TEXT)制御コードの削除(CLEAN)文字コードを返す(CODE)
        文字を繰り返し表示(REPT)通貨スタイルの文字列(YEN、DOLLAR)
        ASCIIコード表文字列を結合する(CONCAT)

        文字列から、印刷できない文字を削除します   クリーン
        =CLEAN(文字列)
           他のアプリケーションからデータを取り込んだ時など、
           データ ファイルの先頭や末尾に含まれている印刷できない制御コードを削除することができます。

        • B1セルには「鹿児島県」と「揖宿郡」が同一セル内で改行されています。
          • ="鹿児島県"&CHAR(10)&"揖宿郡" とします。
            または、
            「鹿児島県」 キーボードの【Alt】+【Enter】 「揖宿郡」と入力します。
            (セルの表示形式の配置タブで「折り返して全体を表示する」にチェックを入れます。)
        • =CREAN(B1) で改行コードを取り除くことができます。

        文字列から余分なスペースを取り除きます   トリム
        =TRIM(文字列)
           先頭の空白はすべて削除されます。文字間の空白は1個残します。

        【問題】B2セルの文字列から余分な空白を取り除き、C2セルに表示しなさい。

        •  BC
          2鹿児島県   揖宿郡     開聞町鹿児島県 揖宿郡 開聞町

        【解答例】

        • TRIM関数を使います。
           BC
          2鹿児島県   揖宿郡     開聞町=TRIM(B2)
        • なお、文字間の空白も取り除きたい場合は、SUBSTITUTE関数を使います。
           BC
          2鹿児島県   揖宿郡     開聞町=SUBSTITUTE(B2," ","")
          3鹿児島県揖宿郡開聞町
          • 空白が半角スペースと全角スペースとが混在している場合には、
            =SUBSTITUTE(SUBSTITUTE(B2," ","")," ","")
            「=SUBSTITUTE(SUBSTITUTE(B2,"全角スペース",""),"半角スペース","")」
            と、まず全角スペースを除き、更に半角スペースを除くように式を組み立てます。

        文字列を比較します   イグザクト
        =EXACT(文字列1,文字列2)
           2つの文字列を比較して、まったく同じである場合は TRUE を、そうでない場合は FALSE を返します。
         
        英字の大文字と小文字は区別されます。

        • B列とC列の文字列が同一かどうかを調べます。
        • D2セルに =EXACT(B2,C2) と入力して、下方向へコピーします。
        • 同じ文字列であれば「TRUE」、異なっていれば「FALSE」を返します。
           BCDE
          2鹿児島鹿児島TRUE=EXACT(B2,C2)
          3ABCABCFALSE=EXACT(B3,C3)
          4ABCABCTRUE=EXACT(B4,C4)
          5abcABCFALSE=EXACT(B5,C5)
          • フォントによっては見た目ではわかりにくいのですが、上記例の入力値には以下の違いがあります。
            B3は半角文字、C3は全角文字です。
            B4、C5とも全角大文字です。
            B5は半角の小文字、C5は半角の大文字です。
        • 文字列の比較を「=」で行うと・・・
          • EXACTでは英字の大文字と小文字は区別されますが、「=」(イコール)では区別されない例です。
          BCDE
          2鹿児島鹿児島TRUE=B2=C2
          3ABCABCFALSE=B3=C3
          4ABCABCTRUE=B4=C4
          5abcABCTRUE=B5=C5
        • (参考) IF関数と組み合わせて結果を日本語化した例です。
          BCDE
          2鹿児島鹿児島同じ=IF(EXACT(B2,C2),"同じ","違う")
          3ABCABC違う=IF(EXACT(B3,C3),"同じ","違う")
          4ABCABC同じ=IF(EXACT(B4,C4),"同じ","違う")
          5abcABC違う=IF(EXACT(B5,C5),"同じ","違う")

        文字列を結合します   アンド
         & (演算子です)
         コンカティネイト
        =CONCATENATE(文字列1,文字列2・・・,文字列30)

        【問題】

        • B2〜C2セルに入力されている文字を結合しなさい。
        • F2セルには 「&」 F3セルにはCONCATENATE関数を使いなさい。
        •  BCDEF
          2鹿児島県揖宿郡開聞町 & を使って→鹿児島県揖宿郡開聞町
          3CONCATENATE を使って→鹿児島県揖宿郡開聞町

        【解答例】

        •  BCDEF
          2鹿児島県揖宿郡開聞町 & を使って→=B2&C2&D2
          3CONCATENATE を使って→=CONCATENATE(B2,C2,D2)

        文字列を結合します   コンカット
        =CONCAT(セル範囲)
         Office365またはExcel Onlineで使用できる関数です

        • 文字列が入力されているセル範囲を指定することができるようになりました。
          セル範囲 B2:D2に文字列が入力されている場合、=CONCAT(B2:D2) と数式を作成することができます。
        • 複数行に場合は、下図のように数式を =CONCAT(B7:C9) と作成することができます。

        文字列中から検索文字列を探し、置換文字列に置き換えます   サブスティチュート
        =SUBSTITUTE(文字列,検索文字列,置換文字列,置換対象
           文字列中の特定の位置にある文字をほかの文字に置き換えるときは、REPLACE 関数を使用します。
           置換対象:置換対象を指定した場合、文字列中の置換対象番目の検索文字列だけが置き換えられます。
                省略した場合は、文字列中のすべての検索文字列が置き換えの対象となります。

        【問題】

        • 西鹿児島駅はH26年九州新幹線の部分開業に伴い、鹿児島中央駅に改称されました。
        • 下の表の西鹿児島駅を鹿児島中央駅に変更しなさい。
        •  BCDEF
          2出発地到着地出発地到着地
          3鹿児島駅西鹿児島駅鹿児島駅鹿児島中央駅
          4西鹿児島駅指宿駅鹿児島中央駅指宿駅
          5指宿駅西鹿児島駅指宿駅鹿児島中央駅

        【解答例】

        • SUBSTITUTE関数を使って、文字列を置換します。
        •  BCDEF
          2出発地到着地出発地到着地
          3鹿児島駅西鹿児島駅=SUBSTITUTE(B3,"西鹿児島駅","鹿児島中央駅")=SUBSTITUTE(C3,"西鹿児島駅","鹿児島中央駅")
          4西鹿児島駅指宿駅=SUBSTITUTE(B4,"西鹿児島駅","鹿児島中央駅")=SUBSTITUTE(C4,"西鹿児島駅","鹿児島中央駅")
          5指宿駅西鹿児島駅=SUBSTITUTE(B5,"西鹿児島駅","鹿児島中央駅")=SUBSTITUTE(C5,"西鹿児島駅","鹿児島中央駅")
        • 「西鹿児島」を「鹿児島中央」に置き換えても同じ結果が得られます。
        • (注) 同一セルで文字列を置き換えたい場合には、【編集】→【置換】を使います。

        【問題2】

        • B2:B5に文字列が入力されています。
        • C列に表示されているように一部またはすべての大文字の「ABC」を小文字の「abc」に置き換えなさい。
        •  BC
          2ABCABCABCabcABCABC
          3ABCABCABCABCabcABC
          4ABCABCABCABCABCabc
          5ABCABCABCabcabcabc

        【解答例】

        • SUBSTITUTE関数で置換対象を指定します。指定しないとすべてが置き換えられます。
        •  BC
          2ABCABCABC=SUBSTITUTE(B2,"ABC","abc",1)
          3ABCABCABC=SUBSTITUTE(B3,"ABC","abc",2)
          4ABCABCABC=SUBSTITUTE(B4,"ABC","abc",3)
          5ABCABCABC=SUBSTITUTE(B5,"ABC","abc")

        【問題3】

        • B2:B4に文字列が入力されています。
        • それぞれの文字列中に「b」が何文字含まれているか数えてC列に表示しなさい。
        •  BC
          2abcdeB1
          3abbBde2
          4acbBbb3

        【解答例】

        • 対象文字を空白に置き換えて(取り除いて)、文字列の長さを比較すれば、対象文字の数を求めることができます。
        • また、検索文字列の大文字と小文字は区別されます。
           BC
          2abcdeB=LEN(B2)-LEN(SUBSTITUTE(B2,"b",""))
          3abbBde=LEN(B3)-LEN(SUBSTITUTE(B3,"b",""))
          4acbBbb=LEN(B4)-LEN(SUBSTITUTE(B4,"b",""))
          =LEN(B2)-LEN(SUBSTITUTE(B2,"b",)) と「""」を省略することもできます。

        文字列中の指定された文字数の文字を別の文字に置き換えます   リプレース
        =REPLACE(文字列,開始位置,文字数,置換文字列)

        • 置き換える文字の位置が決まっている場合に使用できます。

        【問題】B3:B5セルにはよけいな数字が紛れ込んでいます。REPLACE関数を使って取り除きなさい。

        •  BC
          2置換え前置換え後
          31鹿児島駅鹿児島駅
          412西鹿児島駅西鹿児島駅
          5指23宿駅指宿駅

        【解答例】

        •  BC
          2置換え前置換え後
          31鹿児島駅=REPLACE(B3,1,1,"")
          412西鹿児島駅=REPLACE(B4,1,2,"")
          5指23宿駅=REPLACE(B5,2,2,"")
        • =REPLACE(B3,1,1,) と「""」は省略することもできます。

        指定した数値をASCIIまたはJISコードの番号と見なし、それに対応する文字を返します  キャラクター
        =CHAR(数値)

        • VBAでは使うことがありますが、通常の数式で使うことはほとんど無いと思います。
        • CODEと逆の関係になります。

        【例1】セル内改行の例です。

        • セル内改行のAlt+EnterはCHAR(10)になりますので、C2セルに =B2&CHAR(10)&B3 と入力します。
        • セルの表示形式で、「配置」の「折り返して全体を表示する」にチェックを入れます。
        •  BC
          2東京都東京都
          新宿区
          3新宿区

        【参考】

        • セル内改行のAlt+EnterはCHAR(10)になります。
          (参考:VBAの定数)
          セル内改行(LF・ラインフィード)=CHAR(10)vbLf
          Space(半角空白)=CHAR(32)
          改行(CR・キャリッジリターン)=CHAR(13)vbCr
          キャリッジ リターンとライン フィードの組み合わせ=CHAR(10)+CHAR(13)vbCrLf
          Tab=CHAR(9)vbTab
          Back Space=CHAR(8)vbBack

        【例2】アルファベットA〜ZをCHAR関数を使って入力することができます。セル内改行の例です。

        • 大文字の「A」の10進数コードは65、「Z」は90と順番に並んでいます。
          B,D列に連続数値を入力して、 =CHAR(B4) とします。

        文字列の先頭文字に対応する ASCIIまたはJISコードを返します   コード
        =CODE(文字列)

        • CHARと逆の関係になります。
        • ASCIIコード表の10進数を参照してください。CODE関数では10進数のコード番号が返されているのが分かります。

        【例】B列に入力された文字種を判別する例です。

        • C2セルに =IF(AND(CODE(B4)>=48,CODE(B4)<=57),"数字です",
        • C3セルに =IF(AND(CODE(B4)>=65,CODE(B4)<=90),"大文字の英字です",
        • C4セルに =IF(AND(CODE(B4)>=97,CODE(B4)<=122),"小文字の英字です")))
        •  BC
          21数字です
          3a小文字の英字です
          4A大文字の英字です

        (参考)【ASCIIコード表】の一部

        • SPはスペースです。
          文字10進16進文字10進16進文字10進16進文字10進16進文字10進16進文字10進16進
          SP322004830@6440P8050`9660p11270
          !332114931A6541Q8151a9761q11371
          "342225032B6642R8252b9862r11472
          #352335133C6743S8353c9963s11573
          $362445234D6844T8454d10064t11674
          %372555335E6945U8555e10165u11775
          &382665436F7046V8656f10266v11876
          '392775537G7147W8757g10367w11977
          (402885638H7248X8858h10468x12078
          )412995739I7349Y8959i10569y12179
          *422A:583AJ744AZ905Aj1066Az1227A
          +432B;593BK754B[915Bk1076B{1237B
          ,442C<603CL764C\925Cl1086C|1247C
          -452D=613DM774D]935Dm1096D}1257D
          .462E>623EN784E^945En1106E~1267E
          /472F?633FO794F_955Fo1116F1277F

        数値を書式設定した文字列に変換します 
         テキスト
        =TEXT(値,表示形式)

        • 数値は書式設定された文字列に変換され、その計算結果は数値として計算に利用できなくなります。
          TEXT関数では表示形式を引数に使います。表示形式(ユーザー定義)の設定方法日付の表示形式を参考にしてください。
          • なお、書式→セルの表示形式で表示を変更するとセルの表示が変わるだけで、文字列には変換されません。計算に利用できます。
        • TEXT関数を使って文字列に変換して利用する例
          • 日付のシリアル値から曜日を取り出す例。時刻のシリアル値から分数を取り出す例。
            • ここの例では文字列の間に曜日や時刻を挿入して表示する例を書いています。
              表示形式 aaaa [m] を引数内に使っているのがポイントです。
              BCD
              22005/7/1今日は金曜日です=TEXT(B2,"今日はaaaaです;;")
              31:1575分経過しました=TEXT(B3,"[m]分経過しました")
        • 8桁の数値をTEXT関数で日付を作成する
          • 表示形式 "0000!/00!/00" を利用します。 =TEXT(A2,"0000!/00!/00") と日付の形式の文字列に変換できます(B列)。
            日付の文字列をシリアル値に変換するには =TEXT(A2,"0000!/00!/00")*1 と演算をすることでExcelが日付として扱い、シリアル値に変換ができます(C列)。
            あとは表示形式を適切なものにすれば完成です。 ここの例では表示形式を yyyy/m/d としています(D列)。
        • 数値の四捨五入にTEXT関数を使う例
          • 表示形式で「0」とすることで、四捨五入された整数値になります。
            TEXT関数では文字列になるので、「*1」で数値にします。
            (C列は四捨五入されていることを示すために表示桁数を増やして表示しています)
          • 指数の表示形式で三桁を表示するようにします。
            四桁目が四捨五入された値が得られます。
        • 時間の計算例
          • A1に「9:00」と入力し、A63までコピーしています。
            B1に「17:00」、B2に「17:01」と入力し、B1:B2を選択後、フィルハンドルをダブルクリックして、連続値を入力します。
            C1は「=FLOOR(B1-A1,"0:30")」 D1は「=FLOOR(TEXT(B1-A1,"h:mm")*1,"0:30")」と入力して、C63:D63までコピーします。
            31行目と、61行目で「B1-A1」の計算に違いが生じているのがわかります。
          • フィル機能で連続値を入力した際にB列の値「17:30」と「18:00」は、手入力した値と比べると異なっているのが判ります。
            このような微小な値を、TEXT関数を使って表示形式(h:mm)で丸める(四捨五入する)ことができます。

        文字列を指定回数繰り返し表示します 
         リピート
        =REPT(文字列,繰り返し回数)

        • 指定した文字列を指定回数繰り返し表示します。
        • 繰り返し回数:0を指定すると「""」空白が返されます。小数値は切り捨てて整数値と見なされます。
        • 表示される文字列は32,767 文字まで。これを超える場合は、エラー値 #VALUE! が返されます。
        • BCD
          21230*1230=REPT("*",5-LEN(B2))&B2
          3230**230=REPT("*",5-LEN(B3))&B3

        • 【問題1】B列の数値をC列にグラフ化しなさい。
          BC
          27■■■■■■■
          34■■■■
          410■■■■■■■■■■
          【解答例1】
          BC
          27=REPT("■",B2)
          34=REPT("■",B3)
          410=REPT("■",B4)

        通貨スタイルの文字列を表示します 
         エン
        =YEN(数値,桁数)
         ダラー
        =DOLLAR(数値,桁数)
          桁数で四捨五入された値を返します。

        • 通貨書式 ¥または $ を設定した文字列に変換します。
        • 桁数を省略すると、YEN関数の場合は「0 」を、DOLLAR関数の場合は「2」を指定したと見なされます。
        • 文字列で返された値は、計算の際に、Excelが自動的に数値に変換するため数式などで使用できます。
        • BCDEFGH
          21234\1,234=YEN(B2)12.34$12.34=DOLLAR(F2)
          3 \1,230=YEN(B2,-1)$12.3=DOLLAR(F2,1)
          4 \1,200=YEN(B2,-2)$12=DOLLAR(F2,0)
          5$10=DOLLAR(F2,-1)

        稼動日数を求める(NETWORKDAYS関数)

        • NETWORKDAYS関数とExcel2010で追加されたNETWORKDAYS.INTL関数の使い方を説明します。
        NETWORKDAYS関数NETWORKDAYS.INTL関数

        指定された期間の稼動日数を求めます    ネットワークデイズ
        =NETWORKDAYS(開始日,終了日,祭日)
           指定した期間(開始日〜終了日)の稼働日数を返します。稼動日とは、土曜、日曜、および指定された祭日を除く。
         (注) Excel2003以前のバージョンでは、エラー値 #NAME? が返される場合は、分析ツール アドインを組み込む必要があります。

        • 【問題1】

          • 2013年1月10日に工事を開始します。完了日は2013年1月25日です。
          • 土日は休みとします(祝日は工事をします)。実質は何日の工事日数となるでしょうか?
          •  BC
            2工事開始日2013/1/10
            3工事完了日2013/1/25
            4工事日数12
        • 【解答例】

          • NETWORKDAYS関数を使った例です。(祭日は考慮しません)
             BC
            2工事開始日2013/1/10
            3工事完了日2013/1/25
            4工事日数=NETWORKDAYS(C2,C3)
          • 2013年のカレンダーで確認してください。

        • 【問題2】

          • 2013年1月10日に工事を開始します。完了日は2013年1月25日です。
          • 土日と祝日は休みとします。実質は何日の工事日数となるでしょうか?
          •  BCDEF
            2工事開始日2013/1/10祝日一覧
            3工事完了日2013/1/252013/1/1元旦
            4工事日数112013/1/14成人の日
            52013/2/11建国記念日
        • 【解答例】

          • 祝日を考慮する場合は、祝日の表を作成します。祝日の項に祝日の範囲を指定します。
             BCDEF
            2工事開始日2013/1/10祝日一覧
            3工事完了日2013/1/252013/1/1元旦
            4工事日数=NETWORKDAYS(C2,C3,E3:E5)2013/1/14成人の日
            52013/2/11建国記念日
          • 2013年のカレンダーで確認してください。
            1/14は祝日なのでカウントしません。

        指定された期間の稼動日数を求めます    ネットワークデイズ インターナショナル
        =NETWORKDAYS.INTL(開始日,終了日,[週末],[祭日])
           指定した期間(開始日〜終了日)の稼働日数を返します。稼動日とは、週末および指定された祭日を除く。
         (注) Excel2010で追加された関数です

        • 従来のNETWORKDAYS関数に[週末]が追加された形です。土日以外の非稼働日にも対応できるようになっています。
        • 週末の曜日とその日数を示すパラメーターを使用して、2 つの日付の間の稼働日数を返します。
          週末および休日として指定された日は稼働日と見なされません。
          • 週末の指定方法
            週末番号週末の曜日
            1または省略土曜日と日曜日
            2日曜日と月曜日
            3月曜日と火曜日
            4火曜日と水曜日
            5水曜日と木曜日
            6木曜日と金曜日
            7金曜日と土曜日
            11日曜日
            12月曜日
            13火曜日
            14水曜日
            15木曜日
            16金曜日
            17土曜日
            • 週末の指定は7桁の文字列での指定もできます。
            • 月曜日から始まる各曜日を表し、1は非稼働日を表し、0は稼働日を表します。
              上の表に無い月曜日と水曜日を休みとしたいときは"1010000"と指定します。
        • 【問題1】

          • 2013年1月10日に工事を開始します。完了日は2013年1月25日です。
          • ただし、日曜日は休みとしますが、土曜日と祝日は工事をします。実質は何日の工事日数となるでしょうか?
          •  BCDEF
            2工事開始日2013/1/10祝日一覧
            3工事完了日2013/1/252013/1/1元旦
            4工事日数142013/1/14成人の日
            52013/2/11建国記念日
        • 【解答例】

          • NETWORKDAYS.INTL関数を使った例です。(祭日は考慮しません)
            日曜日は引数[週末]で11を指定します。
             BC
            2工事開始日2013/1/10
            3工事完了日2013/1/25
            4工事日数=NETWORKDAYS.INTL(C2,C3,11)
          • 2013年のカレンダーで確認してください。

        • 【問題2】

          • 2013年1月10日に工事を開始します。完了日は2013年1月25日です。
          • ただし、火曜日と金曜日、さらに祝日は休みとしますが、土曜日と日曜日は工事をします。実質は何日の工事日数となるでしょうか?
          •  BCDEF
            2工事開始日2013/1/10祝日一覧
            3工事完了日2013/1/252013/1/1元旦
            4工事日数102013/1/14成人の日
            52013/2/11建国記念日
        • 【解答例】

          • NETWORKDAYS.INTL関数を使った例です。(祭日は考慮しません)
            火曜日と金曜日は引数[週末]で "0100100" と指定します。
            祝日は引数[祭日]でセル範囲 E3:E5 を指定します。
             BCDEF
            2工事開始日2013/1/10祝日一覧
            3工事完了日2013/1/252013/1/1元旦
            4工事日数=NETWORKDAYS.INTL(C2,C3,"0100100",E3:E5)2013/1/14成人の日
            52013/2/11建国記念日
          • 2013年のカレンダーで確認してください。

        Excel(エクセル)基本講座:データ/数式/関数の入力とオートフィル

        データの入力修  正オートフィル
        数値の入力文字列の入力文字列の修正連続した文字列連続した数値
        日付の入力セル内での改行数式の修正数式のコピー
        数式の入力関数の入力連続した文字列の登録
        文字列をリストから選択するフォームを利用した入力オートフィルが機能しない場合

        データ(数値/文字列)の入力    Topへ

        • 入力するセルにマウスポインタを合わせてクリックします。
          黒枠で強調表示されます(アクティブセルといいます)。
        • キーボードのキーを押すと入力されます。
          • ワープロでいう上書き状態での入力ですので、既に入力済みの場合は書き換えられます。
        • セル範囲へ効率よくセルに入力する方法は、Excel(エクセル)基本講座:セルの操作の「効率よく入力する」で説明しています。
        1. 数字の入力
          • 日本語入力をオフの状態で入力するのが効率的です。
            日本語入力がオンの状態では変換、確定の操作が必要なため、[Enter]キーを2度押すことになります。
        2. 文字の入力
          • 日本語入力は必要に応じてオンにします。([半角/全角]キーを押して切り替えます。)
          • Excelでは日本語入力はオフの状態が標準です。
        【入力例】
        • 標準状態では数字はセルの右端に、文字は左端に詰めて表示されます。

        入力した文字列をリストから選択する方法 ([Alt]+[↓]キー)  Topへ

        • 同じ文字列を入力するのは、面倒であるし、入力間違いの元にもなります。
        • 同じ表の列に入力する文字列がある場合は、[Alt] +[↓]キーで候補が表示されます
          この一覧表から選択して、入力できます。入力間違いの防止になります。
          (入力規則とは別の機能です)
        • (注)連続したセルで有効です。空白行があるとそこでとぎれます。

        同一セル内で改行する方法 ([Alt]+[Enter]キー)  

        1. 改行したいところで、[Alt]+[Enter]キーを押します。
          (Macでは、Commandキー+Option+Return のようです。)
        2. 複数のセル内容を合成して改行する場合には  と CHAR(10) を使って数式を作成します。

          ※ セルの書式設定で『折り返して全体を表示する』にチェックが入っている必要があります
          • 【書式】→【セル】の【配置】タブにあります。

        セル内改行を関数で取り除く方法(別セルへ) (CLEAN関数)

        • CHAR(10)をセルから取り除くにはCLEAN関数を使います。
          BCD
          2鹿児島市=B2&CHAR(10)&B3鹿児島市
          山田太郎
          3山田太郎=CLEAN(C2)鹿児島市山田太郎
        • ()C2セルは【書式】→【セル】の書式設定が[折り返して全体を表示する]にチェックが入っている必要があります。

        セル内改行を置換で取り除く方法(同一セル)

        1. [編集]→[置換]を選択。
        2. 「置換」タブの「検索する文字列」の入力ボックス内を選択し、[Ctrl]+[J]キーを押します。
          (注)この時、ボックス内には変化が見られません。(空白の状態のままです。)
        3. 「全て置換」ボタンをクリックします。

        複数のセルに同じデータを入力する ([Ctrl]+[Enter]キー)  Topへ

        1. 入力するセルを選択。
        2. 1個のセルにデータを入力します。
          (最後に選択した範囲の白いセル(アクティブセル)に入力)
        3. [Ctrl]+[Enter]キーを押して、セルの値を確定します。
          選択していたセル全てに同じ値が入力されます。

        数式の入力   Topへ

        四則演算に使用する演算子

        • 数式や関数を使うときは最初に「=」(イコール)を入力します。
          演算の種類演算子関数では?
          足し算+ (プラス)=5+3=SUM(5,3)
          引き算- (マイナス、ハイフン)=5-3
          かけ算* (アスタリスク)=5*3=PRODUCT(5,3)
          割り算/ (スラッシュ)=5/3
          べき乗^ (キャレット)=5^3=POWER(5,3)

        加減乗除の入力方法(D1:D4に入力例を示します。)

        • セル番地はキーボードから入力しても良いですが、セルをクリックするとセル番地が表示、入力されます
        1. D2セルをクリックして選択。(D2セルをアクティブセルにします。)
        2. 「=」をキーボードから入力します。(Excel2000なら「=」(数式入力ボタン)をクリックします)
        3. B2セルをクリックします(D2セルには「=B2」とセル番地が表示されます。
        4. 演算子「+」をキーボードから入力します。
        5. C2セルをクリックします(C2セルには「=B2+C2」と表示されます)。
          (数式で参照されているセルは色付きの枠で点滅表示されます。カラーリファレンスと言います。)
        6. [Enter]キーを押すと計算されます(D2セルには計算結果の12が表示されます)。
          (計算式を確認するにはD2セルをクリックしてアクティブにすると、数式バーに表示されます)

        関数の入力    Topへ

        [オートSUM]ボタンを使った自動合計の使用方法

        (操作例1) 合計の関数SUMの入力
        1. 関数を入力するB6セルをクリックしてアクティブにします。
        2. ツールバーの[オートSUM]ボタンをクリックします。
        3. B6セルと数式バーにに[=SUM(B2:B5)]と表示され、B2:B5セルが破線で囲まれます。
          • 合計の範囲はこれで良いので【Enter】キーを押すと決定され、計算結果が表示されます。
          • (注)表示された範囲が違う場合は、自分で正しい範囲をドラッグして指示します。
        4. B6セルには計算結果「100」が表示され、数式バーには「=SUM(B2:B5)」が表示されます。

        Excel 2002以降のみ

        • Excel2002から[オートSUM]ボタンからよく使われる関数、
          [平均 AVERAGE]、[データの個数 COUNT]、[最大値 MAX]、[最小値 MIN]
          が入力できるようになっています。
        • [その他の機能]は[関数の挿入]ボタン(数式バーの横の【fx】ボタン)と同じ機能で、関数の挿入ダイアログが開きます。 

        【関数の挿入】ボタンを使った関数の入力方法

        1. 入力するセル(B7セル)を選択。
        2. [関数の挿入]ボタンをクリックします。
        3. [関数の挿入]ダイアログが開きます。
          [関数の分類]を[全て表示]にすると、関数がアルファベット順に表示されます。
          使用する関数をクリックします。
        4. 平均の関数[AVERAGE]を選択すると、数値1に「B2:B6]と範囲が表示されます。
          ところが、今回の場合の範囲は「B2:B5」でないといけません。
          正しいセル範囲【B2:B5】をドラッグして選択すると、引数の入力欄に選択範囲が表示されます。
          • 【関数の引数】ダイアログが邪魔になる時は、入力欄の右端のボタンをクリックして、最小化します。
            または、タイトルバーをドラッグして邪魔にならないところに移動します。
          • 関数の引数を折りたたんだ状態でセル範囲を選択。
          • 【Enter】キーを押すか、入力欄の右端のボタンをクリックして、【関数の引数】ダイアログを元のサイズに戻します。
        5. 【関数の引数】ダイアログの【OK】ボタンをクリックします。【Enter】キーを押しても同じです。
        6. セルに計算結果が、数式バーに計算式が表示されました。

        選択したセルに同時に数式を入力する方法

        1. 同じ数式を同時に入力するには[Ctrl]+[Enter]で入力することができます。
          1. 入力するセルF2:F5を選択。
          2. アクティブセル(F2セル)に数式=SUM(D2:E2)を入力し、[Ctrl]+[Enter]で確定します。
          3. 選択していたセルに数式が入力できました。
        2. ダイアログの場合
          1. 入力するセルF2:F5を選択。
          2. 関数の引数を設定し、[Ctrl]キーを押しながら[OK]ボタンをクリックします。
          3. 選択していたセルに数式が入力できました。

        名前ボックスを利用した関数の入力    Topへ

        • (例) D2セルに「=IF(AND(B2>=70,C2>=70),"合格","不合格")」と入力する場合で説明します。
        1. D2セルに「=」を入力します。名前ボックスがグレーになり関数が選択できるようになります。
        2. 名前ボックスの「▼」をクリックすると最近使用した関数が表示されます。

          • ここに表示されない場合は「その他の関数」を選択すると、関数の挿入ダイアログが表示されます。
        3. 真の場合と、偽の場合にそれぞれ「合格」「不合格」と入力し、理論式のボックスを選択しカーソルを表示します。
        4. 名前ボックスから、関数「AND」を選択。
        5. AND関数の理論式1,2を入力して、【OK】ボタンをクリックします。
        6. 完成しました。

        複数の関数を入力する   Topへ

        • (例) =ROUND(AVERAGE(A1:C1),1)を「関数の入力ボタン」を使って入力する方法
        • 【Point】関数の引数ダイアログの[OK]ボタンは一番最後まで押さないこと。
        1. 入力するを選択し、関数の挿入ボタン[fx]をクリックしてROUND関数を選択。
          数値の入力欄にカーソルが表示されているのを確認します。
        2. 名前ボックスの[▼]ボタンをクリックし、AVERAGE関数を選択。
        3. AVERAGE関数の数値欄に平均するセル範囲を設定します。
        4. 数式バーの「ROUND」の部分をクリックすると、ROUND関数の引数ダイアログが表示されます。
        5. ROUND関数の桁数の入力欄に「1」と入力し、[OK]ボタンをクリックします。
        6. D1セルに「=ROUND(AVERAGE(A1:C1),1)」と入力できました。

        日付の入力方法   Topへ

        西暦で入力する   Topへ

        • 基本は年/月/日と入力します。区切りは/(スラッシュ)の他に-(ハイフン)も使えます。
        • パソコンの日付と同じ年を入力する時は年の入力は省略できます。
          (違う年の日付の場合は 2002/2/25 のように年から入力します。)
        • 『平成18年2月25日』、『H28.2.15』と表示したいなど、表示を変えたい場合は表示形式を変更します。
          日付の表示形式についてはこちらを参照
        • 【入力例】
          1. キーボードから「2/25」と入力します。
            (『2-25』と入力しても同じです)
          2. 【Enter】キーを押します。
            • セルには「2月25日」と表示されます。
            • 数式バーにセルの値「2006/2/25」が表示されます。
          3. (注)セルの値(中身)は「2006/2/25」となることに注意!
            (このページを作成したのは2006年です。パソコンの日付、時刻が使用されます。)
            パソコンの日付は正しく設定しましょう。設定方法はこちらを参照

        和暦で入力する(元号を使う)方法   Topへ

        • 元号..日」の形式で入力します。(H28.2.25のように「.」(ピリオド,ドット)で区切ります。
          元号の後ろには『.』を使いません。『H.18.2.25』としたら文字列になります)
        • 平成18年2月25日 と日本語で入力してもエクセルが日付と判断して「2006/2/25」と変換し結果は同じになります。
        • 【入力例】
          1. キーボードから「H28.2.25」と入力します。
          2. [Enter]キーを押します。
            • 数式バーにセルの値「2006/2/25」が表示されます。
        • 【参考1】
          • 明治の場合: M33.1.1 以降 (M32以前(1900年以前)は文字列となり、日付として認識しません。)
          • 大正の場合: T10.2.25
          • 昭和の場合: S40.2.25
        • 【参考2】
          • Windows版 Excelでは1900年日付システムが既定で使用されていますので、1900年以前については注意が必要です。
            なお、Macintosh版Excelでは1904年日付システムが既定で使用されています。
          • 日付システムを変更するには、[ツール]→[オプション]の[計算方法]タブをクリックして「1904 年から計算する」をオンまたはオフにします。
        • 【参考資料】西暦を下2桁で入力する場合は注意が必要です。

        文字や数式の修正    Topへ

        • セルを選択して、キーボードのキーを押すと即入力されます。
          Excelでは上書き状態で入力されますので、今どこがアクティブになっているか注意が必要です。
          さもないと変なところに変な文字が入力されたり、式が変更されたりしてしまいます。

        文字の修正(3通り説明します)

        1. セル内で修正する方法(1)

          1. 修正する文字にマウスポインタを合わせ、ダブルクリックします。
          2. カーソルが表示されます。
          3. キーボードから修正します。
        2. 数式バーで修正する方法

          1. 修正するセルをクリックします。
          2. 数式バー内をクリックすると、
            数式バーにカーソルが表示されます。
          3. キーボードから修正します。
        3. セル内で修正する方法(2)

          1. 修正するセルをクリックして、選択した後、
            [F2]キーを押すとカーソルが表示されます。
          2. キーボードから修正します。

        数式の修正                Topへ

        • セル内と数式バーで修正ができます。
          1. 方法1 数式のセル範囲をキーボードを使って修正します。
            (セル内でも数式バー内でもどちらでも好きなほうで結構です。)
          2. 方法2 マウス操作で、数式内のセル範囲を修正します。
            (カラーリファレンスを使う方法)
        1. 数式バーで修正する方法(カラーリファレンスを使う)

          1. セルをアクティブにして、数式バーのセル範囲をクリックします。
            セル範囲が青線で囲まれます。
          2. 青線のコーナー部をドラッグして、正しいセル範囲を青線で囲みます。
            (数式内のセル範囲も青線の範囲に合わせて変化します。)
          3. [Enter] キーを押して完了です。
        2. セル内で修正する方法(カラーリファレンスを利用する)

          1. セルをダブルクリックします。
            セルに数式とカーソルが表示され、セル範囲が青線で囲まれます。
          2. 青線のコーナー部をドラッグして、正しいセル範囲を青線で囲みます。
            (数式内のセル範囲も青線の範囲に合わせて変化します。)
          3. [Enter] キーを押して完了です。

        オートフィル    Topへ

        オートフィル ハンドル「+」が表示されない場合

        • 選択したセルの右下のオートフィル ハンドルをポイントしても「+」が表示されない時、フィルハンドルが表示されているか否かを確認します。
          フィルハンドルが表示されていないフィルハンドルが表示されている
          1. メニューバーの[ツール]→[オプション]で[編集]タブを選択。
          2. 「ドラッグ アンド ドロップ 編集を行う」のチェックが外れていませんか? チェックを入れましょう。

        連続した文字列の入力(オートフィルの使い方)

        • 画面に表示されている範囲など、ある程度狭い範囲はマウスのドラッグ操作で簡単にできる。
          逆に広い範囲の場合はメニュー操作[編集]→[フィル]→[連続データ]の方が便利。
        • 【入力例】
          1. A2セルに「月」と入力します。
          2. 「月」(A2セル)をクリックして選択。
          3. 右下隅(フィルハンドル)にマウスポインタを合わせると、黒十字に変わります。
          4. 黒十字の状態で、下へドラッグします。
          5. 連続した文字列が入力されます。
        • (注)上図の例では列方向(下方向)ですが、行方向(横方向)でも同様です。
        • また、基準のセルから上方向や左方向にドラッグすると、連続したマイナスの値になります。

        登録されている連続データ(ユーザー設定リスト)

        • 登録されているリストの確認方法
          • メニューバーの[ツール]→[オプション]の[ユーザー設定リスト]タブを選択。
            • 表示されたリストが初期状態で登録されているリストです。
        • 自分でデータを登録することもできます。

          よく使う連続した文字列の登録方法       Topへ

          • 【例】名簿など名前を入力する場合、1度登録しておけばオートフィルで簡単に入力できます。
            1. 名前を入力し、入力したセル範囲を選択。
            2. メニューバーの[ツール]→[オプション]を選択し、[ユ−ザー設定リスト]タブを選択。
              「リストの取り込み元範囲」に選択したセル範囲が表示されます。
            3. [インポート]ボタンをクリックすると、「リストの項目」に選択していたセルの値が表示されます。
            4. セルに1つ名前を入力し、フィルハンドルをドラッグします。
            5. 登録したリスト順で名前が入力されます。
        • 文字列に数字が含まれるものも連続した値が入力できます。(登録の必要はない)
          (注:漢数字の場合は連続になりません)

        連続した数値の入力(オートフィル)   Topへ

        • オートフィルオプションを使う方法(Excel2002以降の場合)

          1. 最初の数字を入力して、フィルハンドルをドラッグします。
          2. 右下にオートフィルオプションが表示されます


          3. オートフィルオプション ボタンをクリックして、メニューを開き、[連続データ]を選択。
          4. 連続した数値「1,2,3・・・10」に変換されます。
        • 数値データを2個入力する方法(Excel 2000 & 2002 共通)

          • (注)2つのセルの規則性によって値がコピーされます。
            • 10と20なら 30,40・・・・100となります(+10の規則性)。
            • 2と4なら 6,8,10・・・・20となります(+2の規則性)。
            • ドラッグする方向が右および下方向ならプラス、左および上方向ならマイナスされます。
          1. セルに1と2を入力します。
          2. 1と2のセルを選択し、フィルハンドルをポイントします。
          3. フィルハンドルをドラッグします。
            (右下に値が表示されます)
          4. マウスのボタンを離すと、連続データが入力されます。
        • [Ctrl]キーを押しながらドラッグする(Excel 2000 & 2002 共通)

          1. 1と入力して、[Ctrl]キーを押しながらドラッグします。
            (マウスポインタ+に+が付いています。)
          2. 2,3,4・・・と増分1で入力されます。
          • なお、文字列の場合にはコピーになります。
        • 右ドラッグでの方法(Excel 2000 & 2002 共通)

        • 増分が+1の時

          1. 1と入力して、フィルハンドルを右ドラッグします。
          2. マウスの右ボタンを離すとメニューが出ます。
          3. メニューの[連続データ]を選択します。
          4. +1の連続数値が入力されます。
        • 増分を自分で決めたい時

          1. セルに最初の値を入力します
          2. メニューバーの[編集]→[フィル]→[連続データの作成]を選択。
          3. 方向、種類を選択。
            行方向へ入力したい時は[列]にチェックを入れます。
          4. 増分値と停止値を入れます。

          連続した数値の入力(メニュー操作から)     

          1. 開始セルに値を入れます。
          2. メニューバーの[編集]→[フィル]→[連続データの作成]を選択。
          3. 「連続データ」ダイアログで設定します。
            • (例1)連続データ『1,2,3・・・20』を下方向に入力する場合 
              • 最初のセルには『1』を入力しておきます。
              • 範囲:『列』
                種類:『加算』
                増分値:『1』
                停止値:『20』
                と、設定します。
            • (例2)連続データ『2,4,6・・・20』を下方向に入力する場合 
              • 最初のセルには『2』を入力しておきます。
              • 範囲:『列』
                種類:『加算』
                増分値:『2』
                停止値:『20』
                と、設定します。

        数式のコピー(オートフィル)     Topへ

        • 数式のコピーもオートフィルを使うと便利です。
          1. E2セルをアクティブにして、右下のフィルハンドルをドラッグします。
          2. フィルハンドルをダブルクリックします。
            左列のデータが入力されているセルと、同じ行まで下側にコピーされます。

        オートフィルが表示されない/機能しない?

        1. メニューバーの[ツール]→[オプション]の[編集]タブを選択。
        2. 『ドラッグ アンド ドロップ 編集を行う』のチェックが外れていませんか?
          チェックを入れましょう。

        フォームを利用した入力    Topへ

        • 項目数が多くなると、入力時に横スクロールをして入力し、次の行(レコード)では左端へ戻るといった作業になります。
        • また、途中に関数で表引きしたり、計算した列があれば飛ばして入力しなければならず、ちょっと煩わしく感じます。
        • VBAを使って、入力用のユーザーフォームを作成すればいいのでしょうが、ちょっと面倒という時には一般機能のフォームが利用できます。
        • 【操作手順】
          1. データの項目、計算式等を5行ほど入力しておきます。(*1)
          2. データの入力時に、データ表内のセルをアクティブに(選択)します。
          3. 【データ】→【フォーム】を選択。
            入力用のフォームが表示されます。関数が入力されている部分は入力できないようになっています。
          4. データを追加する時は[新規]ボタンをクリックして、各項目データを入力します。
          5. 入力時の項目移動は[Tab]キーで行うか、マウスで選択。
            [Enter]キーを押すとレコードの入力が完了したことになり、次のレコードの入力へ移ります。
        • (*1)5行ほど計算式が入力されていれば、次の行(レコード)にデータが入力されると自動的に数式も入力されるからです。
          また、あらかじめすべての行に数式を入力していたら、[新規]ボタンで入力したい行が選択できなくなります。
          (数式の入力されている最下行の次が新規とみなされるため)
          • この機能を利用するには[ツール]→[オプション]の[編集]タブにある「リスト形式および数式を拡張する」にチェックを入れて起きます。

        OFFSET関数の使い方

        • 基準としたセルからのシフトした位置のセルやセル範囲を指定することができるOFFSET関数の使い方を説明します。
          OFFSET関数を使うことで、可変な位置の指定や、可変な範囲の計算できますのでいろいろと応用ができます。

         オフセット
        =OFFSET(基準,行数,列数 [,高さ,幅]
             基準のセルまたはセル範囲から指定された行数と列数だけシフトした位置にある高さと幅のセル
             またはセル範囲の参照 (オフセット参照) を返します。

        • OFFSET関数の引数の「基準」「行数」「列数」「高さ」「幅」の関係を下図に示します。
          • 行数は行方向の移動距離、列数は列方向の移動距離となります。
            =OFFSET(A1,2,3) は A1セルから下へ2つ移動し、右へ3つ移動したところになります。
            セル位置はD3となるので、その値「34」が表示されます。
          • 高さと幅はセル範囲を表します。
            =OFFSET(A1,2,3,2,3) は =OFFSET(A1,2,3,2,3) まででD3セルになり、=OFFSET(A1,2,3,2,3)で高さ「2」、幅「3」のセル範囲となります。
            よって、セル範囲ではD3:F4となるので、=SUM(OFFSET(A1,2,3,2,3)) で =SUM(D3:F4) を求めたことになります。
        • OFFSET関数を使うことで、可変な位置の指定や、可変な範囲の計算できます。以下の例では合計だけですがいろいろと応用ができます。

        • 【問題1】OFFSET関数とMATCH関数を使って、出発地〜到着地の運賃を求めなさい。

          • BCDE
            2運賃表
            3東京名古屋大阪
            4鹿児島50,00040,00035,000
            5宮崎45,00035,00030,000
            6熊本40,00030,00025,000
            7福岡30,00020,00015,000
            8
            9到着地名古屋
            10出発地熊本
            11運賃は30,000
        • 【解答例1】

          • 基準のセルを「B3」として、出発地を「B4:B7」と一致する行数、到着地を「C3:E3」と一致する列数を求めます。
            行方向の位置はMATCH(C10,B4:B7,0)で求め、列方向の位置はMATCH(C9,C3:E3,0)で求めています。
          • BCDE
            2運賃表
            3東京名古屋大阪
            4鹿児島50,00040,00035,000
            5宮崎45,00035,00030,000
            6熊本40,00030,00025,000
            7福岡30,00020,00015,000
            8
            9到着地名古屋
            10出発地熊本
            11運賃は=OFFSET(B3,MATCH(C10,B4:B7,0),MATCH(C9,C3:E3,0))
            • =OFFSET(B3,MATCH(C10,B4:B7,0),MATCH(C9,C3:E3,0)) は =OFFSET(B3,3,2) となります。
              基準セルB3から3行下へ、さらに2つ右の列へ移動しますので、D6セルの値が表示されます。
          • なお、問題の意図からは外れますが、INDEX関数とMATCH関数でも求めることができます。
            =INDEX(C4:E7,MATCH(C10,B4:B7,0),MATCH(C9,C3:E3,0))
            • INDEX関数の時は 何行目、何列目といった指定方法ですので、
              =INDEX(C4:E7,MATCH(C10,B4:B7,0),MATCH(C9,C3:E3,0)) は =INDEX(C4:E7,3,2) となり、下図のような数え方になります。
              • セル範囲C3:E7の3行目で2列目のセル(D6セル)の値が表示されます。
              • INDEX関数については INDEX関数の使い方 をご覧ください。

        • 【問題2】OFFSET関数とMATCH関数を使って4月度〜7月度(C7セルに入力されている月まで)の合計を求めなさい。
          • BCDEFGHIJKLMN
            2商品名4月度5月度6月度7月度8月度9月度10月度11月度12月度1月度2月度3月度
            3りんご3,6878,8103,4292818,8046,6943,6339,0385,2169,3928,0421,890
            4みかん7,3736,340958,4309,1532,7606,7634,1923,3163,4911,1707,926
            5バナナ4,1871,4137,9997,3733,2561,4989,6408,9427,3685,6879,3761,196
            6
            77月度
            8りんご16,207
            9みかん22,238
            10バナナ20,972
        • 【解答例2】

          • 基準のセルを「C3」として、C7セルに入力された「7月度」と一致するセル範囲を合計します。
            • =OFFSET(基準,行数,列数 ,高さ,幅) の高さは「1」として、幅をMATCH関数で求めています。
              なお、行数と列数は「0」なので、=SUM(OFFSET(C3,,,1,MATCH(C$7,$C$2:$N$2,0))) と書くこともできます。
            BCDEFGHIJKLMN
            2商品名4月度5月度6月度7月度8月度9月度10月度11月度12月度1月度2月度3月度
            3りんご3,6878,8103,4292818,8046,6943,6339,0385,2169,3928,0421,890
            4みかん7,3736,340958,4309,1532,7606,7634,1923,3163,4911,1707,926
            5バナナ4,1871,4137,9997,3733,2561,4989,6408,9427,3685,6879,3761,196
            6
            77月度
            8りんご=SUM(OFFSET(C3,0,0,1,MATCH(C$7,$C$2:$N$2,0)))
            9みかん=SUM(OFFSET(C4,0,0,1,MATCH(C$7,$C$2:$N$2,0)))
            10バナナ=SUM(OFFSET(C5,0,0,1,MATCH(C$7,$C$2:$N$2,0)))
            • =SUM(OFFSET(C3,0,0,1,MATCH(C$7,$C$2:$N$2,0))) は =SUM(OFFSET(C3,0,0,1,4)) となります。
              C3セルを基準に高さ1、幅4のセル範囲 C3:F3 になりますので、 =SUM(C3:F3) の結果と同じになります。

        • 【問題3】OFFSET関数とMATCH関数を使って8月度(C7セルに入力されている月)〜11月度(E7セルに入力されている月まで)の合計を求めなさい。
          • BCDEFGHIJKLMN
            2商品名4月度5月度6月度7月度8月度9月度10月度11月度12月度1月度2月度3月度
            3りんご3,6878,8103,4292818,8046,6943,6339,0385,2169,3928,0421,890
            4みかん7,3736,340958,4309,1532,7606,7634,1923,3163,4911,1707,926
            5バナナ4,1871,4137,9997,3733,2561,4989,6408,9427,3685,6879,3761,196
            6
            78月度11月度
            8りんご28,169
            9みかん22,868
            10バナナ23,336
        • 【解答例3】

          • 基準のセルを「C3」として、C7セルに入力された「11月度」と一致するセル範囲を合計します。
            これから、4月度〜7月度の合計を差し引いて求めるのですが、-SUM(OFFSET(B3,0,0,1,MATCH(C$7,$C$2:$N$2,0)) としています。
            基準のセルをB3と一つ左にずらしています。
            • -SUM(OFFSET(C3,0,0,1,MATCH(C$7,$C$2:$N$2,0)-1) としてもよさそうですが、C7セルに「4月度」としたときにエラーとなってしまいます。
              これを防ぐために、基準セルをずらすという小細工をしています。
            BCDEFGHIJKLMN
            2商品名4月度5月度6月度7月度8月度9月度10月度11月度12月度1月度2月度3月度
            3りんご3,6878,8103,4292818,8046,6943,6339,0385,2169,3928,0421,890
            4みかん7,3736,340958,4309,1532,7606,7634,1923,3163,4911,1707,926
            5バナナ4,1871,4137,9997,3733,2561,4989,6408,9427,3685,6879,3761,196
            6
            78月度11月度
            8りんご=SUM(OFFSET(C3,0,0,1,MATCH(E$7,$C$2:$N$2,0)))-SUM(OFFSET(B3,0,0,1,MATCH(C$7,$C$2:$N$2,0)))
            9みかん=SUM(OFFSET(C4,0,0,1,MATCH(E$7,$C$2:$N$2,0)))-SUM(OFFSET(B4,0,0,1,MATCH(C$7,$C$2:$N$2,0)))
            10バナナ=SUM(OFFSET(C5,0,0,1,MATCH(E$7,$C$2:$N$2,0)))-SUM(OFFSET(B5,0,0,1,MATCH(C$7,$C$2:$N$2,0)))
          • 引き算の部分 -SUM(OFFSET(B3,0,0,1,MATCH(C$7,$C$2:$N$2,0) の説明です。
            MATCH(C$7,$C$2:$N$2,0) は 5 となります。OFFSET(B3,0,0,1,5)と基準をB3にしているため B3:F3が計算対象になります。
            • なお、B列の商品名は文字列であるので、SUM関数では計算されないことをもとに作成したものです。よって、B列が数値である時はこの数式は使用できません。

        ランダムな数値を返す関数(RAND関数、RANDBETWEEN関数)

        • エクセルの乱数を発生させる関数RAND関数と任意の範囲のランダムな整数値を発生させるRANDBETWEEN関数についてまとめています。
          これらの関数を使うことでサンプルデータの作成や、データをランダムに並べ替えるといった使い方ができます。
        RAND関数RANBETWEEN関数

        乱数を返す   ランド(ランダム)
        =RAND()
        0以上で1より小さい乱数を発生させます。
        ワークシートが再計算されるたびに、新しい乱数が返されます。

        • RAND関数で乱数を発生させた後、ワークシートが再計算されるたびに乱数の値が変更されます。
        • RAND関数では0以上で1よりも小さい数値が返されます。1は含まれませんのでご注意ください。
        • 数式を数値に置き換えるには、数式バーに「=RAND()」と入力して[F9]キーを押します。
          • この「F9」は数式の検証(デバッグ)になります。再計算の[F9]とは異なる使い方です。
            1. 数式バーにカーソルが表示されています
            2. [F9]キーを押すと、値に変換されます。
            3. 元の数式に戻すには[Esc]キーを押します。
        • 「a」と「b」の範囲で乱数を発生させるには、=RAND()*(b-a)+a とします。
          • 1〜10の範囲で乱数を発生させる例
            1. セルB1に=RAND()*(10-1)+1と入力し、B10までフィルハンドルをドラッグして数式をコピーします。
              B列に乱数が表示されました。
            2. セルC1に=ROUND(B1,0)と入力し、C10までフィルハンドルをドラッグして数式をコピーします。
              1〜10の整数値に丸めています。
              • =ROUND(RAND()*(10-1)+1,0)と一つの数式にできますが、説明のために2列に分けています。
                (RAND関数で変える値は小数値になっていることを示すためです。)
        • 上記の方法では、1〜10の乱数が表示できましたが、同じ値「4」が2個あり、「7」がありません。
        • 1〜10の整数値をA1:A10にランダムに表示するには? 

          1. 10個の乱数を発生させて、整数値にしても同じ値が出てくることが上記の例でわかると思います。
            同じ値が出てこないようにするには、10個の乱数の大小で順位を付けることで1〜10をそれぞれ1個だけにすることができます。
            なお、この考えでは10個の乱数のなかに同じものはない・・・ということが前提になります。
            1. 作業列(C列)を使います。セルC1に=RAND() と入力し、C10までフィルハンドルをドラッグして数式をコピーします。
            2. セルA1に=RANK(C1,$C$1:$C$10) と入力し、A10までフィルハンドルをドラッグして数式をコピーします。
              重複しない1〜10の数値を表示することができました。
            3. 再計算または【F9】キーを押すごとに値が変化しますので、値を固定したい時は値の貼り付けを行います。
              1. A1:A10を選択して、【コピー】ボタンをクリック。
              2. 【編集】→【形式を選択して貼り付け】で「値」にチェックを入れて【OK】ボタンをクリックします。
              3. A1:A10が数値になります。C列は不要ですので削除します。
          2. 上記の例は1〜10と連続した値で下が、任意の数値を重複しないように1個だけ表示したい場合は?
            連続しない数値なので、表示したい任意の数値をどこかに入力する必要があります。(以下の例ではF列を使っています)
            1. 下図のような作業列を利用してみました。
              • D列に乱数を入れます。 =RAND()
              • E列では乱数の順位を求めます。 =RANK(D1,$D$1:$D$10)
              • F列に表示したい任意の数値を入力します。
              A列に =VLOOKUP(ROW(A1),$E$1:$F$10,2,FALSE) として任意の数値を表示することができました。
              • RANK関数で求めた1〜10の横のセルの値をVLOOKUP関数で順番に取り出しています。
                参照の型 FALSEを0(ゼロ)として、 =VLOOKUP(ROW(A1),$E$1:$F$10,2,0) としてもOKです。
        • データをランダムに並べ替える 

          • A3:A12の名前をランダムに並べ替える例です。
            1. A3:A12に名前が入力されています。
              B3:B12に =RAND() と入力しています。
            2. B列のセルを選択した状態で、「昇順で並べ替え」または「降順で並べ替え」を実行。
              この並べ替えを実行するたびに再計算が行われますので、RAND()で返す値が変わり、データがこの変わった値で並べ替えられます。
              よって、A列の並び順はランダムに変わります。
              • 並べ替えを実行した後に再計算されますので、B列の値は昇順になっていません。
                表示されている乱数で並べ替えて、そのあと再計算で乱数の値が変化しています。
                つまり、並べ替えの基になった値は再計算の実行によって消えており、実行後には確認することはできません。
              • 「昇順で並べ替え」または「降順で並べ替え」を実行することで並び順が変化するのを確認できます。
              • Excel2007以降では「昇順で並べ替え」または「降順で並べ替え」は[データ]タブにあります。
        • 乱数を使ってパスワードを作成する方法は、以下のリンク先を参照してください。
        • マクロ(VBA)を使って乱数を生成する例は、以下のリンク先を参照してください。
        • 手動で再計算を行うには?

          • Excel2003以前では[ツール]→[オプション]を実行。
            [計算方法]タブの「手動」にチェックを入れます。これで、再計算は手動になり自動で再計算されなくなります。
            手動で再計算を行うには[再計算実行]ボタンをクリックするか、[F9]キーを押すことで再計算が実行されます。
          • Excel2007以降は[オプション]で設定します。
            [数式]を選択して、「手動」にチェックを入れます。これで、再計算は手動になり自動で再計算されなくなります。


            [数式]タブの計算方法 グループにある[再計算実行]をクリックするか、[F9]キーを押して再計算を実行。

        指定範囲の乱数を返す   ランド ビトウィーン(ランダム ビトウィーン)
        =RANDBETWEEN(最小値,最大値)
        指定された範囲で一様に分布する整数の乱数を返します
        Excel2003以下のバージョンでエラー値 #NAME? が返される場合は、分析ツール アドインを組み込む必要があります。

        • RANDBETWEEN関数では指定した範囲の整数の乱数が返されます。
        • =RANDBETWEEN(1,10)として、1〜10の乱数を発生させた例です。
          • 上記のように、1〜10の整数値をランダムに10個発生させると、同じ値が複数あることに気づきます。
            同じ整数値が1個だけ表示するには、RAND関数とRANK関数を使う方法が考えられます。
        • RANDBETWEEN関数を使って、10人の中から一人を抽選で選んでみたいと思います。
          1. A2:A11に候補者名が入力してあります。
          2. C2セルに=INDEX(A2:A11,RANDBETWEEN(1,10)) として、A2:A11からINDEX関数とRANDBETWEEN関数でランダムに1つのセルの値を取り出しています。
            • [F9]キーで再計算を実行すると、当選者名が変わるのを確認することができます。

        順位の関数(RANK関数)

        • 順位(RANK関数)を求めるExcel関数の使い方を説明しています。
          Excel2010ではRANK.EQ関数とRANK.AVG関数が追加されました。 RANK.EQ関数が従来のRANK関数と同じ結果を返します。
          なお、RANK関数はExcel2010以降でも使用できます。
        RANKRANK.EQRANK.AVG

        指定した数値の順位を求める   ランク
        =RANK(数値,範囲,順序)
           順序:「0」は大きいほうからの順(降順):省略可
           順序:「1」は小さいほうからの順(昇順):省略不可

        【問題1】

        • 合計得点の大きい方から順位を付けなさい。
           BCDEFG
          2名前国語数学英語合計順位
          3井上8085882532
          4会田7065581935
          5上野9088762541
          6岡田5562471646
          7釜元776471212 3
          8木下647569208 4

        【解答1例】

        • 順位はRANK関数で求めます。 大きい順ですので、降順の「0」を指定します。
          なお、範囲は同じ範囲を指定しますので絶対参照とします。絶対参照は[F4]キーを使うと便利です。
        • なお、この「0」は省略可ですので =RANK(F3,$F$3:$F$8) としてもOKです。
        •  BCDEFG
          2名前国語数学英語合計順位
          3井上808588253=RANK(F3,$F$3:$F$8,0)
          4会田706558193=RANK(F4,$F$3:$F$8,0)
          5上野908876254=RANK(F5,$F$3:$F$8,0)
          6岡田556247164=RANK(F6,$F$3:$F$8,0)
          7釜元776471212=RANK(F7,$F$3:$F$8,0)
          8木下647569208=RANK(F8,$F$3:$F$8,0)

        【問題2】

        • 総得点が同点の場合、G列のように順位が飛び飛びになります。
        • H列のように同点の場合は表示順の行番号が若い方を上にするにはどうしたらいいでしょう?
        •  BCDEFGHI
          2名前国語数学英語合計順位A順位B作業列
          3井上81858825411
          4会田70655819355
          5上野90887625412
          6岡田55624716466
          7釜元77647121233
          8木下68756921234

        【解答2例】

        • 作業列としてI列を使用します。
        • I3セルに『=F3-ROW()/1000』 として、1点に満たない数値(行番号の千分の一)を差し引き、同得点間に差を付けてやります。
          • 逆に『=F3+ROW()/1000』とすると、行番号が大きい方が上位になります。
        • 順位はI列を基準にRANK関数で出します。
           BCDEFGHI
          2名前国語数学英語合計順位A順位B作業列
          3井上818588254=RANK(F3,$F$3:$F$8,0)=RANK(I3,$I$3:$I$8,0)=F3-ROW()/1000
          4会田706558193=RANK(F4,$F$3:$F$8,0)=RANK(I4,$I$3:$I$8,0)=F4-ROW()/1000
          5上野908876254=RANK(F5,$F$3:$F$8,0)=RANK(I5,$I$3:$I$8,0)=F5-ROW()/1000
          6岡田556247164=RANK(F6,$F$3:$F$8,0)=RANK(I6,$I$3:$I$8,0)=F6-ROW()/1000
          7釜元776471212=RANK(F7,$F$3:$F$8,0)=RANK(I7,$I$3:$I$8,0)=F7-ROW()/1000
          8木下687569212=RANK(F8,$F$3:$F$8,0)=RANK(I8,$I$3:$I$8,0)=F8-ROW()/1000
        • COUNTIF関数で順位Bをだすには
          =COUNTIF($F$3:$F$8,">"&F3)+COUNTIF($F$3:F3,F3)
          とすれば、作業列は不要になります。

        【問題3】

        • 順位をJ2セルの入力して、その順位の名前をJ3セル以降に取出してください。
          なお、G列で同順位の場合、行番号が若い方を上にします。
        •  BCDEFGHIJ
          2名前国語数学英語合計順位作業列順位3
          3井上8185882541名前釜元
          4会田7065581935木下
          5上野9088762541
          6岡田5562471646
          7釜元7764712123
          8木下6875692123

        【解答3例】

        • 作業列としてH列を使用します。
        • H3セルに『=G3&"_"&COUNTIF($G$3:G3,G3)』としてH8セルまでコピーします。
        • J3セルに『=IF(COUNTIF($H$3:$H$8,$J$2&"_"&ROW(A1))=0,"",
          INDEX($B$3:$B$8,MATCH($J$2&"_"&ROW(A1),$H$3:$H$8,0)))』としてJ8セルまでコピーします。
        • 計算結果は下表のようになります。
          BCDEFGHIJ
          2名前国語数学英語合計順位作業列順位3
          3井上81858825411_1名前釜元
          4会田70655819355_1木下
          5上野90887625411_2
          6岡田55624716466_1
          7釜元77647121233_1
          8木下68756921233_2
        • 数式は以下のようになります。
          BCDEFGHIJ
          2名前国語数学英語合計順位作業列順位3
          3井上818588254=RANK(F3,$F$3:$F$8,0)=G3&"_"&COUNTIF($G$3:G3,G3)名前=IF(COUNTIF($H$3:$H$8,$J$2&"_"&ROW(A1))=0,"",
          INDEX($B$3:$B$8,MATCH($J$2&"_"&ROW(A1),$H$3:$H$8,0)))
          4会田706558193=RANK(F4,$F$3:$F$8,0)=G4&"_"&COUNTIF($G$3:G4,G4)=IF(COUNTIF($H$3:$H$8,$J$2&"_"&ROW(A2))=0,"",
          INDEX($B$3:$B$8,MATCH($J$2&"_"&ROW(A2),$H$3:$H$8,0)))
          5上野908876254=RANK(F5,$F$3:$F$8,0)=G5&"_"&COUNTIF($G$3:G5,G5)=IF(COUNTIF($H$3:$H$8,$J$2&"_"&ROW(A3))=0,"",
          INDEX($B$3:$B$8,MATCH($J$2&"_"&ROW(A3),$H$3:$H$8,0)))
          6岡田556247164=RANK(F6,$F$3:$F$8,0)=G6&"_"&COUNTIF($G$3:G6,G6)=IF(COUNTIF($H$3:$H$8,$J$2&"_"&ROW(A4))=0,"",
          INDEX($B$3:$B$8,MATCH($J$2&"_"&ROW(A4),$H$3:$H$8,0)))
          7釜元776471212=RANK(F7,$F$3:$F$8,0)=G7&"_"&COUNTIF($G$3:G7,G7)=IF(COUNTIF($H$3:$H$8,$J$2&"_"&ROW(A5))=0,"",
          INDEX($B$3:$B$8,MATCH($J$2&"_"&ROW(A5),$H$3:$H$8,0)))
          8木下687569212=RANK(F8,$F$3:$F$8,0)=G8&"_"&COUNTIF($G$3:G8,G8)=IF(COUNTIF($H$3:$H$8,$J$2&"_"&ROW(A6))=0,"",
          INDEX($B$3:$B$8,MATCH($J$2&"_"&ROW(A6),$H$3:$H$8,0)))

        (余談1) COUNTIF関数を使った順位の出し方

        • COUNTIF関数で求める得点より高い得点の数を数えます。順位はその次になるので1を加えます。
        • 合計欄が空欄や文字列であったらうまく計算できないので、
          =IF(ISNUMBER(F3),COUNTIF($F$3:$F$8,">"&F3)+1,"")
          のように、ISNUMBER関数の処理を加えてみました。
        • 重複値は同順位となります。
           BCDEFGH
          2名前国語数学英語合計順位結果
          3井上808588253=COUNTIF($F$3:$F$8,">"&F3)+12
          4会田706573208=COUNTIF($F$3:$F$8,">"&F4)+14
          5上野908876254=COUNTIF($F$3:$F$8,">"&F5)+11
          6岡田556247164=COUNTIF($F$3:$F$8,">"&F6)+16
          7釜元776471212=COUNTIF($F$3:$F$8,">"&F7)+13
          8木下647569208=COUNTIF($F$3:$F$8,">"&F8)+14

        (余談2) SUMIF関数を使った順位の出し方

        • 同順位が有る場合、以下の順位を繰り上げるには?
        • 以下の表のような順位にしたい場合、作業列を使って処理してみました。
        •  BCDEFGH
          2名前国語数学英語合計順位作業列
          3井上80858925411
          4会田70657320831
          5上野9088762541
          6岡田55624716441
          7釜元77647121221
          8木下6475692083

        【計算例】

        • 同得点は無視して、異なる得点のみから順位を求めます。
        • 順位は、求めたい得点より大きい得点の数を求め「+1」することによって可能です。
        •  BCDEFGH
          2名前国語数学英語合計順位作業列
          3井上808589254=SUMIF($F$3:$F$8,">"&F3,$H$3:$H$8)+1=IF(COUNTIF($F$3:F3,F3)>1,"",1)
          4会田706573208=SUMIF($F$3:$F$8,">"&F4,$H$3:$H$8)+1=IF(COUNTIF($F$3:F4,F4)>1,"",1)
          5上野908876254=SUMIF($F$3:$F$8,">"&F5,$H$3:$H$8)+1=IF(COUNTIF($F$3:F5,F5)>1,"",1)
          6岡田556247164=SUMIF($F$3:$F$8,">"&F6,$H$3:$H$8)+1=IF(COUNTIF($F$3:F6,F6)>1,"",1)
          7釜元776471212=SUMIF($F$3:$F$8,">"&F7,$H$3:$H$8)+1=IF(COUNTIF($F$3:F7,F7)>1,"",1)
          8木下647569208=SUMIF($F$3:$F$8,">"&F8,$H$3:$H$8)+1=IF(COUNTIF($F$3:F8,F8)>1,"",1)

        指定した数値の順位を求める   ランク イコール
        =RANK.EQ(数値,範囲,順序)
           順序:「0」は大きいほうからの順(降順):省略可
           順序:「1」は小さいほうからの順(昇順):省略不可
        Excel2010で追加された関数です。

        • 重複した数値は同じ順位と見なされ、それ以降の数値の順位がずれていきます。
          従来のRANK関数と同じ結果になります。
        • 【問題1】

          • 合計得点の大きい方から順位を付けなさい。ただし、同得点のときは同順位とします。
            BCD
            2名前合計得点順位
            3井上2531
            4会田1935
            5上野2531
            6岡田1646
            7釜元2083
            8木下2083

          【解答1例】

          • 順位はRANK.EQ関数で求めます。 大きい順ですので、降順の「0」を指定します。
            なお、この「0」は省略可ですので =RANK.EQ(C3,$C$3:$C$8) としてもOKです。
            • BCD
              2名前合計得点順位
              3井上253=RANK.EQ(C3,$C$3:$C$8,0)
              4会田193=RANK.EQ(C4,$C$3:$C$8,0)
              5上野253=RANK.EQ(C5,$C$3:$C$8,0)
              6岡田164=RANK.EQ(C6,$C$3:$C$8,0)
              7釜元208=RANK.EQ(C7,$C$3:$C$8,0)
              8木下208=RANK.EQ(C8,$C$3:$C$8,0)

        指定した数値の平均順位を求める   ランク アベレージ
        =RANK.AVG(数値,範囲,順序)
           順序:「0」は大きいほうからの順(降順):省略可
           順序:「1」は小さいほうからの順(昇順):省略不可
        Excel2010で追加された関数です。

        • 複数の値が同じ順位にあるときは、平均の順位が返されます。
          従来のRANK関数とは重複する値があると異なった結果になります。
        • 【問題1】

          • 合計得点の大きい方から順位を付けなさい。ただし、同得点のときは順位の平均で求めなさい。
            BCD
            2名前合計得点順位
            3井上2531.5
            4会田1935
            5上野2531.5
            6岡田1646
            7釜元2083.5
            8木下2083.5

          【解答1例】

          • 順位はRANK.AVG関数で求めます。 大きい順ですので、降順の「0」を指定します。
            なお、この「0」は省略可ですので =RANK.AVG(C3,$C$3:$C$8) としてもOKです。
            • 井上と上野は同得点で1位、2位となるので、順位はその平均値で (1+2)/2=1.5 となります。
              BCD
              2名前合計得点順位
              3井上253=RANK.AVG(C3,$C$3:$C$8,0)
              4会田193=RANK.AVG(C4,$C$3:$C$8,0)
              5上野253=RANK.AVG(C5,$C$3:$C$8,0)
              6岡田164=RANK.AVG(C6,$C$3:$C$8,0)
              7釜元208=RANK.AVG(C7,$C$3:$C$8,0)
              8木下208=RANK.AVG(C8,$C$3:$C$8,0)

        ROMAN関数、ARABIC関数

        • エクセルの数学・三角関数に分類されるROMAN関数とARABIC関数についてまとめています。
          アラビア数字とローマ数字を相互に変換する関数です。なお、ARABIC関数はExcel2013で追加された関数です。
        ROMAN関数ARABIC関数

        アラビア数字をローマ数字を表す文字列に変換します。   ローマン
        =ROMAN(数値,書式)
        数値に負の値を指定すると、エラー値 #VALUE! が返されます。
        数値に 3999 より大きい値を指定すると、エラー値 #VALUE! が返されます。

        • 書式
          書式種類
          0または省略正式
          1簡略化した形式
          21 より簡略化した形式
          32 より簡略化した形式
          4略式
          TRUE正式
          FALSE略式
        • A列のアラビア数字を2行目に示した書式で表示します。
          • BCDEFGHI
            2 0または省略1234TRUEFALSE
            31=ROMAN(B3)=ROMAN(B3,1)=ROMAN(B3,2)=ROMAN(B3,3)=ROMAN(B3,4)=ROMAN(B3,TRUE)=ROMAN(B3,FALSE)
            42=ROMAN(B4)=ROMAN(B4,1)=ROMAN(B4,2)=ROMAN(B4,3)=ROMAN(B4,4)=ROMAN(B4,TRUE)=ROMAN(B4,FALSE)
            53=ROMAN(B5)=ROMAN(B5,1)=ROMAN(B5,2)=ROMAN(B5,3)=ROMAN(B5,4)=ROMAN(B5,TRUE)=ROMAN(B5,FALSE)

            6行目以下は省略します。
          • 下表のような結果が得られます。
            BCDEFGHI
            2引数0または省略1234TRUEFALSE
            31IIIIIII
            42IIIIIIIIIIIIII
            53IIIIIIIIIIIIIIIIIIIII
            64IVIVIVIVIVIVIV
            75VVVVVVV
            86VIVIVIVIVIVIVI
            97VIIVIIVIIVIIVIIVIIVII
            108VIIIVIIIVIIIVIIIVIIIVIIIVIII
            119IXIXIXIXIXIXIX
            1210XXXXXXX
            1350LLLLLLL
            1460LXLXLXLXLXLXLX
            1590XCXCXCXCXCXCXC
            16100CCCCCCC
            17200CCCCCCCCCCCCCC
            18400CDCDCDCDCDCDCD
            19500DDDDDDD
            20600DCDCDCDCDCDCDC
            21900CMCMCMCMCMCMCM
            221000MMMMMMM
            231459MCDLIXMLDIXMLDIXMLDIXMLDIXMCDLIXMLDIX
            241499MCDXCIXMLDVLIVMXDIXMVDIVMIDMCDXCIXMID
            252000MMMMMMMMMMMMMM
            263000MMMMMMMMMMMMMMMMMMMMM
            273999MMMCMXCIXMMMLMVLIVMMMXMIXMMMVMIVMMMIMMMMCMXCIXMMMIM
            284000#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!

        ローマ数字をアラビア数字に変換します。 Excel2013から使用できる関数です  アラビック
        =ARABIC(文字列)
        エラー値 #VALUE! を返す値は、数値、日付、無効なローマ数字の文字列などです。
        入力値として空の文字列 ("") が使用されている場合は、0 が返されます。

        • Excel2013での新しい関数です。
        • 【問題】B列のローマ数字をアラビア数字に直しなさい、
          • BC
            2I1
            3II2
            4III3
            5IV4
            6V5
            7VI6
            8VII7
            9VIII8
            10IX9
            11X10
            12L50
            13LX60
            14XC90
            15C100
            16CC200
            17CD400
            18D500
            19DC600
            20CM900
            21M1000
            22MCDLIX1459
            23MCDXCIX1499
            24MM2000
            25MMM3000
            26MMMCMXCIX3999
        • 【解答例】
          • BC
            2I=ARABIC(B2)
            3II=ARABIC(B3)
            4III=ARABIC(B4)
            5IV=ARABIC(B5)
            6V=ARABIC(B6)
            7VI=ARABIC(B7)
            8VII=ARABIC(B8)
            9VIII=ARABIC(B9)
            10IX=ARABIC(B10)
            11X=ARABIC(B11)
            12L=ARABIC(B12)
            13LX=ARABIC(B13)
            14XC=ARABIC(B14)
            15C=ARABIC(B15)
            16CC=ARABIC(B16)
            17CD=ARABIC(B17)
            18D=ARABIC(B18)
            19DC=ARABIC(B19)
            20CM=ARABIC(B20)
            21M=ARABIC(B21)
            22MCDLIX=ARABIC(B22)
            23MCDXCIX=ARABIC(B23)
            24MM=ARABIC(B24)
            25MMM=ARABIC(B25)
            26MMMCMXCIX=ARABIC(B26)

        論理関数(AND,OR,NOT,XOR,IFERROR,IFNA)

        • 論理関数(AND,OR,NOT,XOR,TRUE,FALSE)の説明をしています。 IFERROR関数はExcel2007で追加された関数です。
          XOR関数、IFNA関数はExcel2013で追加された関数です。
        AND関数OR関数NOT関数
        XOR関数IFERROR関数IFNA関数

        AND関数     アンド
        =AND(論理式1,[論理式2],・・・)
        すべての引数が TRUE のときに TRUE を返します。条件は最大 255 個まで指定できます。

        • 【問題1】
          • 国語と算数の両方が60以上であるか否かを判定しなさい。
            両方とも60以上であれば「TRUE」、そうでなければ「FALSE」と表示しなさい。
             BCDE
            2 国語算数判定
            3相沢恭子8085TRUE
            4今田浩次6090TRUE
            5上田美香3040FALSE
            6江口恭介7050FALSE
        • 【解答例】
          •  BCDE
            2 国語算数判定
            3相沢恭子8085=AND(C3>=60,D3>=60)
            4今田浩次6090=AND(C4>=60,D4>=60)
            5上田美香3040=AND(C5>=60,D5>=60)
            6江口恭介7050=AND(C6>=60,D6>=60)
          • AND関数の結果例
            論理式1論理式2結果
            TRUETRUETRUE
            TRUEFALSEFALSE
            FALSETRUEFALSE
            FALSEFALSEFALSE

        OR関数     オア
        =OR(論理式1,[論理式2],・・・)
          いずれかの引数が TRUE のとき、TRUE を返します。
         引数がすべて FALSE である場合は、FALSE を返します。

        • 【問題1】
          • 国語と算数のどちらかが60以上であるか否かを判定しなさい。
            どちらかが60以上であれば「TRUE」、そうでなければ「FALSE」と表示しなさい。
             BCDE
            2 国語算数判定
            3相沢恭子8085TRUE
            4今田浩次6090TRUE
            5上田美香3040FALSE
            6江口恭介7050TRUE
        • 【解答例】
          •  BCDE
            2 国語算数判定
            3相沢恭子8085=OR(C3>=60,D3>=60)
            4今田浩次6090=OR(C4>=60,D4>=60)
            5上田美香3040=OR(C5>=60,D5>=60)
            6江口恭介7050=OR(C6>=60,D6>=60)
          • OR関数の結果例
            論理式1論理式2結果
            TRUETRUETRUE
            TRUEFALSETRUE
            FALSETRUETRUE
            FALSEFALSEFALSE

        NOT関数     ノット
        =NOT(論理式)
          引数の論理値 (TRUE または FALSE) を逆にして返します。

        • 【問題1】
          • 国語と算数の両方が60以上でないか否かを判定しなさい。
            両方が60以上でなければ「TRUE」、そうでなければ「FALSE」と表示しなさい。
             BCDE
            2 国語算数判定
            3相沢恭子8085FALSE
            4今田浩次6090FALSE
            5上田美香3040TRUE
            6江口恭介7050FALSE
        • 【解答例】
          • 分かりにくい問題文になっていますが、「どちらかが60以上である」の逆を求めることを意図しています。
            両方が60以上でなければ「TRUE]となります。
             BCDE
            2 国語算数判定
            3相沢恭子8085=NOT(OR(C3>=60,D3>=60))
            4今田浩次6090=NOT(OR(C4>=60,D4>=60))
            5上田美香3040=NOT(OR(C5>=60,D5>=60))
            6江口恭介7050=NOT(OR(C6>=60,D6>=60))
          • NOT関数の結果例
            論理式結果
            TRUEFALSE
            FALSETRUE

        XOR関数 Excel2013で追加された関数です。    エックスオア
        =XOR(論理式1,[論理式2],・・・)

         すべての引数の排他的論理和を返します。

        • 【問題1】
          • 国語か算数のどちらかが60以上でないか否かを判定しなさい。
            片方が60以上で、もう片方は60未満になるものは「TRUE」、そうでなければ「FALSE」としなさい。
             BCDE
            2 国語算数判定
            3相沢恭子8085FALSE
            4今田浩次6090FALSE
            5上田美香3040FALSE
            6江口恭介7050TRUE
        • 【解答例】
          • ややこしい感じがします・・・例が適切ではないような気もします。
            以下のような計算になります。
             BCDEFGH
            2 国語算数判定国語の判定算数の判定結果
            3相沢恭子8085=XOR(C3>=60,D3>=60)=XOR(C3>=60)=XOR(D3>=60)=XOR(F3,G3)
            4今田浩次6090=XOR(C4>=60,D4>=60)=XOR(C4>=60)=XOR(D4>=60)=XOR(F4,G4)
            5上田美香3040=XOR(C5>=60,D5>=60)=XOR(C5>=60)=XOR(D5>=60)=XOR(F5,G5)
            6江口恭介7050=XOR(C6>=60,D6>=60)=XOR(C6>=60)=XOR(D6>=60)=XOR(F6,G6)
          • 片方に「TRUE」があれば「TRUE」となります。
             BCDEFGH
            2 国語算数判定国語の判定算数の判定結果
            3相沢恭子8085FALSETRUETRUEFALSE
            4今田浩次6090FALSETRUETRUEFALSE
            5上田美香3040FALSEFALSEFALSEFALSE
            6江口恭介7050TRUETRUEFALSETRUE
          • XOR関数の結果例1
            どちらか一方が「TRUE」であれば「TRUE」そうでなければ「FALSE」となります。
            論理式1論理式2結果
            TRUETRUEFALSE
            TRUEFALSETRUE
            FALSETRUETRUE
            FALSEFALSEFALSE
          • XOR関数の結果例2
            TRUEの個数が奇数なら「TRUE」、偶数なら「FALSE」となります。
            論理式1論理式2論理式3論理式4論理式5結果
            FALSEFALSEFALSEFALSEFALSEFALSE
            FALSEFALSEFALSEFALSETRUETRUE
            FALSEFALSEFALSETRUETRUEFALSE
            FALSEFALSETRUETRUETRUETRUE
            FALSETRUETRUETRUETRUEFALSE
            TRUETRUETRUETRUETRUETRUE

        IFERROR関数数式がエラーとして評価される場合は指定の値を返し、それ以外の場合は数式の結果を返します。 Topへ
        イフエラー
        IFERROR(値,エラーの場合の値)
        Excel2007で追加された関数です。

        • 評価されるエラーの種類には、#N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME? または #NULL! があります。
        • (例題)下表で販売単価を=C3/D3で求める場合、販売数が0の時(E4セル)エラーとなります。
          エラーが表示されないようにしなさい。なお、エラーの時は数値の 0 (ゼロ)を表示することとします。
          BCDE
          2名前販売金額販売数販売単価
          3りんご1,50010150
          4みかん00#DIV/0!
          5バナナ1,70014121
        • (解答例)エラーの時は0として処理するにはIFERROR関数を使います。
          BCDE
          2名前販売金額販売数販売単価
          3りんご1,50010150=IFERROR(C3/D3,0)
          4みかん000=IFERROR(C4/D4,0)
          5バナナ1,70014121=IFERROR(C5/D5,0)
        • Excel2003以前では、IF関数とISERROR関数を利用して計算できます。
          • ISERROR関数でエラーか否かを判定し、IF関数で処理を分けます。
          • E2セル:=IF(ISERROR(C3/D3),0,C3/D3)

        IFNA関数    
        =IFNA(数式,#NAエラーの時返す値)

         数式が#NAエラーを返す時に指定した値を返します。
        Excel2013で追加された関数です。 

        • 数式の結果が #N/A エラーの場合は指定した値を返し、それ以外の場合は数式の結果を返します。
        • 【問題1】
          • C列にはG2:H5の単価表から単価を表引きして数量とを掛け合わせる数式が入っています。
            A列の商品名が入力されていないときには#NAエラーとなり、合計=SUM(C2:C4)が計算されません。
            C2:C4の数式を修正して、エラーが表示さないようにしなさい。
        • 【解答例】
          • C2セルの数式を=IFNA(B2*VLOOKUP(A2,$G$2:$H$5,2,FALSE),"") として、C4までコピーします。
            • Excel2013より前のバージョンではIFNA関数は使えないので、IF関数とISNA関数を組み合わせて使うことができます。
              =IF(ISNA(VLOOKUP(A2,$G$2:$H$5,2,FALSE)),"",B2*VLOOKUP(A2,$G$2:$H$5,2,FALSE))
            • Excel2007、Excel2010であればIFERROR関数を使うことができます。
              =IFERROR(B2*VLOOKUP(A2,$G$2:$H$5,2,FALSE),"")

        四捨五入、切り上げ、切り捨ての関数

        • エクセルでの数値の丸め処理に関する様々な関数について説明しています。
          同じような機能の関数が複数あり、結果が微妙に異なりますので各関数の特性を理解して使用してください。
          このページではすべての関数について説明がありますので、それぞれの特性をよく調べてみてください。
          • 四捨五入:ROUND関数,MROUND関数
          • 切り上げ:ROUNDUP関数,CEILING関数,EVEN関数,ODD関数
          • 切り捨て:ROUNDDOWN関数,FLOOR関数,INT関数,TRUNC関数
          • その他:MOD関数
        四捨五入(ROUND)切り上げ(ROUNDUP)切捨て(ROUNDDOWN)
        倍数に四捨五入(MROUND)倍数に切り上げ(CEILING)倍数に切り下げ(FLOOR)
        剰余を求める(MOD)偶数に切り上げ(EVEN)その数値を超えない最大の整数(INT)
        奇数に切り上げ(ODD)小数部を切り捨てる(TRUNC)
        Excel2010で追加 →倍数に切り下げ(FLOOR.PRECISE)倍数に切り上げ(CEILING.PRECISE)
        Excel2013で追加 →倍数に切り下げ(FLOOR.MATH)倍数に切り上げ(CEILING.MATH)

        指定した桁数で四捨五入する  ラウンド
        =ROUND(数値,桁数)
           桁数:四捨五入後の桁数を指定します。
              小数点の位置が0となり、左側へ−1(1の桁),−2(10の桁),−3(100の桁)・・・
                          右側へ  1(小数第1位),2(小数第2位)・・・

        • 【問題】各教科の平均点を、四捨五入後、整数と小数第1位の桁で表示しなさい。
          •  BCD
            2氏名国語数学 
            3今田浩次8085
            4内田あかり7065
            5江藤公正9088
            6岡田太郎5562
            7川口宏7764
            8木村次郎6475
            9平均点(整数)73 73 
            10平均点(小数第1位)72.773.2
        • 【解答例】
          • 平均はAVERAGE関数を使います。 平均は AVERAGE(C3:C8)で求めることができます。
            これをROUND関数の引数の数値部分に入れます。
          • 平均点(整数)のC9セルは整数に丸めるので、桁数は 0 とします。
            よって、=ROUND(AVERAGE(C3:C8),0)
          • 平均点(小数第1位)のC10セルは小数点以下1桁で丸めるため、桁数を 1 とします。
            =ROUND(AVERAGE(C3:C8),1)となります。
          •  BCD
            2氏名国語数学 
            3今田浩次8085
            4内田あかり7065
            5江藤公正9088
            6岡田太郎5562
            7川口宏7764
            8木村次郎6475
            9平均点(整数)=ROUND(AVERAGE(C3:C8),0)=ROUND(AVERAGE(D3:D8),0)
            10平均点(小数第1位)=ROUND(AVERAGE(C3:C8),1)=ROUND(AVERAGE(D3:D8),1)
        • 【操作例】関数の挿入ボタンを使う方法
          1. C9セルをクリックしてアクティブにします。
          2. 【関数の挿入】ボタンをクリックし、『ROUND』を選択。
          3. 表示される【関数の引数】ダイアログで、
            • 【数値】の欄に、『AVERAGE(』とキーボードから入力します。前かっこ『(』まで入力します。
              シートのC3:C8セルをドラッグして選択すると、『AVERAGE(C3:C8』と表示されるので、
              後ろかっこ『)』をキーボードから入力します。
            • 【桁数】の欄に、整数値で四捨五入するので、『0』と入力します。
          4. 【OK】ボタンをクリックします。

        数式の修正方法   

        • 『=ROUND(AVERAGE(C3:C8),0)』を【関数の引数】ダイアログを使って修正する場合には?
          1. 数式バーで、関数名の部分をクリックしてカーソルを表示します。
            • (例)上記数式のROUND関数の場合
              • 数式バーのROUNDの所をクリックしてカーソルを表示しています。
          2. 【関数の挿入(fx)】ボタンをクリックします。
            カーソルのある関数の【関数の引数】ダイアログが表示され、修正可能となります。
            • (例)上記数式のROUND関数の場合
              • 【fx】ボタンをクリックすると、ROUND関数の「関数の引数」ダイアログが開きました。

        5捨6入の計算   

        • 「5」は切り捨てて「6」から切り上げる場合
          1. 該当桁数の値を「-1」して、四捨五入する(ROUND関数を使う)
          2. 該当桁数の値に「4」加えて、切り捨てする(ROUNDDOWN関数を使う)
          3. 該当桁数の値を「-5」して、切り上げする(ROUNDUP関数を使う)
          ことが考えられます。

        ROUND関数の桁数(引数)について

        • 正の数値と負の数値の計算結果の例を示します。

        ROUND関数の丸め処理について

        • ワークシート関数の場合は"算術型"丸め処理で「.5」は常に切り上げられます。
        • VBA関数の場合は"銀行型"丸め処理で「.5」は結果が偶数になるように丸められます。
          つまり、切り上げたり切り捨てられたりするということです。
          また、整数部分での丸めを行うことはできません。
        • [XL2000]VBA の Round とワークシート関数 Round の違い
          http://support.microsoft.com/kb/225330/JA/
        • JIS Z8401『数値の丸め方』
          http://www.bsddiary.net/doc/jis-z8401.html

        ある値を基準に四捨五入したい

        • 【例】50単位で四捨五入した。
          • 25以上は50に切り上げ、25未満は切り捨てとしたい場合の例
            CEILING関数FLOOR関数およびMROUND関数はこのページで説明していますので参照願います。

        数値を四捨五入し、ピリオド(.小数点) とカンマ(,桁区切り) を使った文字列に変換します  フィックスド
        =FIXED(数値,桁数,桁区切り)
          桁数:四捨五入する桁数を指定します。省略すると2(小数第2位)を指定したと見なされます。
          桁区切り:TRUE/FALSEを指定します。省略するとFALSEと同じになります。

        • FIXED関数の結果は文字列であることに注意してください。
          例えば、FIXED関数の結果をSUM関数やAVERAGE関数で計算しようとしても、文字列は計算から除外されますので、0 となってしまいます。
          • 下表では 桁区切りを TRUE/FALSE としたときの結果の違いを示しています。
            TRUEを指定したときには桁区切りの , (かんま)が表示されていません。
           BCDEF
          2TRUEFALSETRUEFALSE
          31234.56=FIXED(B3,1,TRUE)=FIXED(B3,1,FALSE)1234.61,234.6
          4-1234.56=FIXED(B4,1,TRUE)=FIXED(B4,1,FALSE)-1234.6-1,234.6
          51234.56=FIXED(B5,-1,TRUE)=FIXED(B5,-1,FALSE)12301,230

        指定した桁数で切り上げ    ラウンドアップ
        =ROUNDUP(数値,桁数)
           桁数:切り上げ後の桁数を指定します。
              小数点の位置が0となり、左側へ-1(1の桁),-2(10の桁),-3(100の桁)・・・
                          右側へ1(小数第1位),2(小数第2位)・・・

        • 【問題】 テレビとパソコンの販売価格を決めたいと思います。
          それぞれの販売価格は1000円単位に切り上げることにします。
           BCDE
          2
          3品名標準価格値引率(%)販売価格
          4テレビ50,0001244,000
          5パソコン210,00012185,000
        • 【解答例】 値引後の価格は 「標準価格*(100-値引率)/100」となります。
          1000円単位に切り上げるには、ROUNDUP関数の桁数に「-3」を入れます。
           BCDE
          2
          3品名標準価格値引率(%)販売価格
          4テレビ50,00012=ROUNDUP(C4*(100-D4)/100,-3)
          5パソコン210,00012=ROUNDUP(C5*(100-D5)/100,-3)
        • 【操作例】関数の挿入ボタンを使う方法

          1. E4セルをクリックしてアクティブにします。
          2. 【関数の挿入】ボタンをクリックし、『ROUNDUP』を選択。
          3. 表示される【関数の引数】ダイアログで、
            • 【数値】の欄に、『C4*(100-D4)/100』とキーボードから入力します。
              セル番号の部分はシートの該当セルをクリックしても入力ができます。
            • 【桁数】の欄に、100円単位で切り上げするので、『-3』と入力します。
          4. 【OK】ボタンをクリックします。

        ROUNDUP関数の桁数(引数)について   

        • 正の数値と負の数値の計算結果の例を示します。

        指定した桁数で切り捨て  ラウンドダウン
        =ROUNDDOWN(数値,桁数)
           桁数:切り捨て後の桁数を指定します。
              小数点の位置が0となり、左側へ-1(1の桁),-2(10の桁),-3(100の桁)・・・
                          右側へ1(小数第1位),2(小数第2位)・・・

        • 【問題】テレビとパソコンを販売しました。それぞれの消費税(5%で1円未満は切り捨てとします)はいくらでしょうか?
           BCDE
          2
          3品名販売価格台数消費税
          4テレビ43,88812,194
          5パソコン185,88819,294
        • 【解答例】
          • 消費税は「販売価格*台数*0.05」となります。または、「販売価格*台数*5%」 でもOKです。
            1円未満は切り捨てますので、ROUNDDOWN関数を使い、桁数は「0」を入力します。
             BCDE
            2
            3品名販売価格台数消費税
            4テレビ43,8881=ROUNDDOWN(C4*D4*0.05,0)
            5パソコン185,8881=ROUNDDOWN(C5*D5*0.05,0)
        • 【操作例】
          • 詳細はROUNDUPと同様のため省略します。
            【関数の引数】ダイアログの設定は下図のようになります。

        ROUNDDOWN関数の桁数(引数)について   

        • 正の数値と負の数値の計算結果の例を示します。

        基準値の倍数の近い値に切り上げる   シーリング
        =CEILING(数値,基準値)
           ケース単位で発注する場合に、必要なケース数を求めるときなどに使います。
           (数値と基準値の符号が一致する必要があります)

        【問題】 

        • 鉛筆とノートの在庫が少なくなりました。鉛筆とノートを必要量購入します。
        • 問屋さんへの発注はケース単位で発注しなければなりません。何ケース発注すればよいでしょうか?
        •  BCDEF
          2数量基準値
          3品名必要量1ケースの本数発注本数発注ケース数
          4鉛筆5012605
          5ノート4012484

        【解答1例】

        • ケース単位で発注する場合のケース数の求め方です。
        • 必要な量50を発注するには、ケース単位では5ケース、本数は60を注文することになります。
        • 12×4=48  12×5=60 必要数は50なので12の倍数で50に近い60に切り上げます。
          E4セルは =CEILING(C4,12) となります。またはD4セルの「12」を使うと =CEILING(C4,D4) となります。
        •  BCDEF
          2数量基準値
          3品名必要量1ケースの本数発注本数発注ケース数
          4鉛筆5012=CEILING(C4,D4)=E4/D5
          5ノート4012=CEILING(C5,D5)=E5/D5

        【問題2】

        • 出勤時間と退社時間が記入されています。
          1. 勤務時間をD3,D4セルに求めなさい。ただし休憩時間は無視します。
          2. 基準時間で切り上げて時給を支払いますので、支払う時間をF3,F4セルに求めなさい。
           BCDEF
          2出社時刻退社時刻勤務時間基準時間(分)支払単位時間
          38:0017:129:120:309:30
          48:3716:207:430:308:00

        【解答2例】

        1. 勤務時間=退社時間-出社時間
        2. 支払単位時間は切り上げて計算しますので、CEILING関数を使います。
          =CEILING(D3,E3) または、=CEILING(D3,"0:30") でもOKです。
        •  BCDEF
          2出社時刻退社時刻勤務時間基準時間(分)支払単位時間
          38:0017:12=C3-B30:30=CEILING(D3,E3)
          48:3716:20=C4-B40:30=CEILING(D4,E4)
          F3,F4セルがシリアル値で表示されたら、表示形式を時刻に変更します。
        1. F3:F4セルを範囲選択。
        2. 【書式】→【セル】を選択。
        3. 下記の設定にします。

        基準値の倍数の近い値に切り上げる   シーリング プレシス
        =CEILING.PRECISE(数値,基準値)
         (Excel2010で追加された関数です。
        Excel2013でも使用はできますが、関数一覧には表示されません)

        基準値の近い倍数に切り上げる   シーリング マス
        =CEILING.MATH(数値,基準値,モード
         モード(省略可)で-1を指定すると負の数値を、0に向かう方向または 0とは逆の方向に丸めます。
         (Excel2013で追加された関数です。)

        • Excel2010,Excel2013ではCEILING関数に負の値に関してのいくつかの処理方法が加わりました。
          これらの関数の結果の違いを例示してみます。
          • CEILING関数では数値が正で基準値が負の場合はエラーとなります。
          • CEILING.PRECISEとCEILING.MATHのモードを指定しない場合は同じ結果が得られます。
          • CEILING.MATHでモードを「-1」と指定すると、指定しない場合とは逆方向に丸められます。
        • 下図の数式のベースは C列:=CEILINGR(A3,B3) D列:=CEILING.PRECISE(A3,B3) E列:=CEILING.MATH(A3,B3) F列:=CEILING.MATH(A3,B3,-1) です。

        基準値の近い倍数に切り下げる   フロアー
        =FLOOR(数値,基準値)
         (数値と基準値の符号が一致する必要があります)

        除数で割ったときの余りを求める
         モッド
        =MOD(数値,除数)

        【問題】

        • 鉛筆とノートの在庫が少なくなりました。鉛筆とノートを必要量購入します。
        • 問屋さんへ何ケース、何本 発注すればよいでしょうか?オレンジのセルに数式を入れなさい。
        •  BCDEFG
          2数量基準値
          3品名必要量1ケースの本数ケースでの発注本数発注ケース数発注単品数
          4鉛筆50124842
          5ノート40123634

        【解答例】

        • 必要な最小ケース数はFLOOR関数、端数はMOD関数で求めます。
        • 12×4=48  12×5=60 必要数は50なので12の倍数の48に切り下げます。
          =FLOOR(C4,D4) または =FLOOR(C4,12) となります。
        • 50÷12=4 余り2 (この計算の余り2を求める)
          =MOD(C4,D4) または=MOD(C4,12) となります。
        •  BCDEFG
          2数量基準値
          3品名必要量1ケースの本数ケースでの発注本数発注ケース数発注単品数
          4鉛筆5012=FLOOR(C4,D4)=E4/D4=MOD(C4,D4)
          5ノート4012=FLOOR(C5,D5)=E5/D5=MOD(C5,D5)

        【問題2】

        • 出勤時間と退社時間が記入されています。
          1. 勤務時間をD3,D4セルに求めなさい。ただし休憩時間は無視します。
          2. 基準時間で切り捨てて時給を支払いますので、支払う時間をF3,F4セルに求めなさい。
            (このような計算は労働基準法違反となり認められないようです、ここはFLOOR関数の使用例として参照ください。)
            (2012/5/28 追記)
           BCDEF
          2出社時刻退社時刻勤務時間基準時間(分)支払単位時間
          38:0017:129:120:309:00
          48:3716:207:430:307:30

        【解答2例】

        1. 勤務時間=退社時間−出社時間
        2. 支払単位時間は切り捨てて計算しますので、FLOOR関数を使います。
          =FLOOR(D3,E3) または =FLOOR(D3,"0:30") となります。
        •  BCDEF
          2出社時刻退社時刻勤務時間基準時間(分)支払単位時間
          38:0017:12=C3-B30:30=FLOOR(D3,E3)
          48:3716:20=C4-B40:30=FLOOR(D4,E4)
          F3,F4セルがシリアル値で表示されたら、表示形式を時刻に変更します。

        【操作手順】

        1. F3:F4セルを範囲選択。
        2. 【書式】→【セル】を選択。
        3. 下記の設定にします。

        基準値の近い倍数に切り下げる   フロアー プレシス
        =FLOOR.PRECISE(数値,基準値)
         (Excel2010で追加された関数です。
        Excel2013でも使用はできますが、関数一覧には表示されません)

        基準値の近い倍数に切り下げる   フロアー マス
        =FLOOR.MATH(数値,基準値,モード
         モード(省略可)で-1を指定すると負の数値を、0に向かう方向または 0とは逆の方向に丸めます。
         (Excel2013で追加された関数です。)

        • FLOOR関数に負の値に関してのいくつかの処理方法が加わりました。
          これらの関数の結果の違いを例示してみます。
          • FLOOR関数では数値が正で基準値が負の場合はエラーとなります。また基準値が0の時もエラーとなります。
          • FLOOR.PRECISEとFLOOR.MATHのモードを指定しない場合は同じ結果が得られます。
          • FLOOR.MATHでモードを「-1」と指定すると、指定しない場合とは逆方向に丸められます。
        • 下図の数式ベースはは C列:=FLOOR(A3,B3) D列:=FLOOR.PRECISE(A3,B3) E列:=FLOOR.MATH(A3,B3) F列:=FLOOR.MATH(A3,B3,-1) です。

        除算の商の整数部を返します     クオウシェント
        =QUOTIENT(分子,分母)
          分子:被除数 (割られる数) を指定します。
          分母:除数 (割る数) を指定します。
        (注) この関数はメニューバーの【ツール】→【アドイン】で【分析ツール】を有効にする必要があります。

        • 商の余り (小数部) を切り捨てる場合に、この関数を使います。
          • 【例】
            • 10÷3 の商を求めると、 =QUOTIENT(10,3)=3 となります。
            • -10÷3 の商を求めると、 =QUOTIENT(-10,3)=-3 となります。
          • 【蛇足】
            • TRUNC関数と同じ結果が得られます。
              =TRUNC(10/3)=3  =TRUNC(-10/3)=-3 となります。
            • ROUNDDOWN関数でも同じ結果が得られます。
              =ROUNDDOWN(10/3,0)=3 =ROUNDDOWN(-10/3,0)=-3 となります。

        基準値の近い倍数に丸める(四捨五入)   エムラウンド
        =MROUND(数値,基準値)
              CEILING関数とFLOOR関数の間みたいな関数です。
         (注) Excel2003以前のバージョンでは、この関数はメニューバーの【ツール】→【アドイン】で【分析ツール】を有効にする必要があります。

        • 【使用例】必要な個数に最も近いケース単位での個数を求めます。
          • たとえば、50個欲しい場合、12個単位で 50を四捨五入するわけです。
          • 50÷12=4あまり2です。2は12の半分より小さいので切り捨てになり、結果は12×4=48となります。
          • 54個欲しい場合は、54÷12=4あまり6です。
            6は12の半分以上なので切り上げて5になり、結果は12×5=60となります。
          •  BCDEFGH
            2数量基準値
            3品名必要量1ケースの本数発注本数答え発注ケース数答え
            4鉛筆5012=MROUND(C4,D4)48=E4/D44
            5鉛筆5412=MROUND(C5,D5)60=E5/D55
            6ノート6112=MROUND(C6,D6)60=E6/D65
            7ノート6612=MROUND(C7,D7)72=E7/D76
            • IEからのExcelへのエクスポートで#NAMEエラーが出る場合は、新しいブックを開き、IEからコピー、貼り付けしてみてください。

        その数値を超えない最大の整数を返す    イント
        =INT(数値)
          数値を整数にします。小数点以下を切り捨てます。
        数値が負の値の時は、数値を超えない整数になリます。

        数値の小数部を切り捨てて、整数または指定した桁数に変換する
         トランク
        =TRUNC(数値,桁数)
          桁数は省略できます。省略時は0を指定したのと同じになります。
          小数部を切り捨てる点は、INT関数と似ていますが、桁数を指定できるのと、
        数値が負の値の時も、単に小数点以下を切り捨てます。

        • 【問題】鉛筆とノートを購入しました。消費税(5%で1円未満は切り捨て)はいくら必要でしょうか?
          また、消費税込みでの支払金額はいくらでしょうか?
           BCDEF
          2
          3品名購入数単価消費税支払金額
          4鉛筆50501252,625
          5ノート401002004,200
        • 【解答例】消費税は小数値を切捨てで計算するので、INT関数を使いました。
          なお、ROUNDDOWN関数を使っても同じ結果になります。=ROUNDDOWN(C4*D4*0.05,0) 
          また、求める値は正数なので、TRUNC関数でも同じ結果になります。=TRUNC(C4*D4*0.05)
           BCDEF
          2
          3品名購入数単価消費税支払金額
          4鉛筆5050=INT(C4*D4*0.05)=INT(C4*D4*1.05)
          5ノート40100=INT(C5*D5*0.05)=INT(C5*D5*1.05)

        INT関数とTRUNC関数の違い   

        • INT関数とTRUNC関数では負の値では異なった値を返します。

        最も近い偶数に切り上げた値を返す    イーブン
        =EVEN(数値)

        数値を最も近い奇数に切り上げた値を返す
         オッド
        =ODD(数値)

        • 【使用例】C3に=EVEN(B3)、D3に=ODD(B3)と入力し、C11,D11までコピーした例です。
          EVEN関数が返す値は偶数になり、ODD関数の返す値は奇数になっているのが分かります。
           BCD
          2数値EVENODD
          3121
          4223
          5343
          6445
          7001
          8-1-2-1
          9-2-2-3
          10-3-4-3
          11-4-4-5

        ROW関数・COLUMN関数の使い方

        • ROWS関数やCOLUMNS関数は名前を定義したセル範囲の行数や列数を計算するのに使えます。
        • 引数の範囲を省略すると、数式を入力しているセルの行番号や列番号を返します。
        • 実用上は数式中で連番を生成するために使うことが多いように思います。

        行番号を返す
         ロウ
        =ROW(範囲)  引数として指定された範囲の行番号を返します。
         ロウズ
        =ROWS(配列) セル範囲または配列の行数を返します。

        列番号を返す
         コラム
        =COLUMN(範囲)  引数として指定された範囲の列番号を返します。
         コラムズ
        =COLUMNS(配列) セル範囲または配列の列数を返します。

        • 【例1】引数のセル範囲のセル番地や行数/列数を返します。
          引数のセル範囲を省略すると、ROW・COLUMN関数が入力されているセルの行番号・列番号を返します。
        • 【例2】ROW関数を使って連番を作成すると、削除しても連番が維持できます。
          • A2には「=1000+ROW()-1」とし、A11までコピーします。
          • C2〜C11は「1001,1002・・・1010」と数値を入力しています。
          • 6行目を削除すると、A列は連番が維持されています。C列は1005が欠けています。
          • 削除前


            削除後
        • 【例3】
          • COLUMN関数をVLOOKUP関数の列位置に使うことができます。
            数式1つをコピーすることで表が作成できます。
          • C2に「=VLOOKUP($B2,$F$2:$H$5,COLUMN(B1))」と入力し、D2までフィルハンドルをドラッグしてコピー。
            更に、(C2:D2が選択状態なので)フィルハンドルをD6までドラッグしてコピーすると完成。
        • 【例4】1行おきに計算したい、とか何行おきに何かしたい・・・といったときに使用します。
          • 下図のようなデータで1行おきの合計を計算したいケースです。
            出席者数が入力されているセルは4,6,8・・・ と偶数の行というのがわかります。よって指定範囲の偶数行の合計を求めればよいということになります。
            数式は =SUMPRODUCT((C4:C15)*(MOD(ROW(C4:C15),2)=0)) としました。
            偶数行の判定は (MOD(ROW(C4:C15),2)=0) の部分になります。行をROWで求め、2で割った余りが0であれば偶数行と判定しています。
            • 受講料の合計は奇数行の合計になりますので
              数式は =SUMPRODUCT((C4:C15)*(MOD(ROW(C4:C15),2)=1)) となります。行をROWで求め、2で割った余りが1であれば奇数行と判定しています。
        • 【例5】1列おきに計算したい、とか何列おきに何かしたい・・・といったときに使用します。
          • 下図の例は1列おきになっています。1列おきの合計を求めます。
            列の奇数偶数を判定するには COLUMN関数を使います。
            数式は 奇数列は =SUMPRODUCT((C4:J4)*(MOD(COLUMN(C4:J4),2)=1)) となります。
            偶数列の合計の数式は =SUMPRODUCT((C4:J4)*(MOD(COLUMN(C4:J4),2)=0)) となります。

        小計の関数(SUBTOTAL関数)

        • 小計の関数SUBTOTAL関数の使い方を解説しています。合計だけではなく平均やカウントなどの計算も可能です。
        • 似たような関数としては Excel2010で AGGREGATE関数 が追加されました。

        小計の関数(表示されているセル範囲の合計)など   サブトータル
        =SUBTOTAL(集計方法,範囲)
          集計方法はExcel2002以前とExcel2003以降とで若干異なります。集計方法についてをご覧ください

        集計方法について

        • SUBTOTAL関数は小計を求めることができる関数ですが、集計方法の指定で平均やカウント、最大値、最小値なども計算できます。
        • もっとも特徴的な点は、SUBTOTAL関数の範囲内にSUBTOTAL関数で求めた値のセルが含まれるときは無視して計算してくれます。
          • 下図の小計と合計はSUBTOTAL関数で求めています。
            計算しているセルのイメージ


            数式の参照セルのイメージ
        • Excel2003以降では「非表示の値を無視する」ことが指定できるようになりました。
          • オートフィルタでの非表示セルはどちらを使っても計算されません。
            よって、オートフィルタで絞り込んだデータの計算にはどちらを使っても同じ結果になります。
          • 非表示セルの値を無視するが有効なケースはなお、書式→行→非表示とした場合や、アウトライン表示で折りたたんだ時の計算になります。
          • 【例】セル範囲の合計をする場合、集計方法は「9」または「109」
            • 非表示の値も含める場合:=SUBTOTAL(9,A1:A10)
            • 非表示の値を無視する場合: =SUBTOTAL(109,A1:A10)
          • 非表示の値も含める非表示の値を無視する関数
            Excel2002以前はこちらだけが指定できますExcel2003以降はこちらも使用できます
            1101AVERAGE
            2102COUNT
            3103COUNTA
            4104MAX
            5105MIN
            6106PRODUCT
            7107STDEV
            8108STDEVP
            9109SUM
            10110VAR
            11111VARP

        【問題1】表内の小計と合計を求めなさい。

        •  BCDEF
          2月 日項目名適用収入金額支出金額
          34月19日会費会費(19人分)7,600
          44月25日会費会費(63人分)25,200
          55月20日会費会費(2人分)800
          6小計33,6000
          75月10日諸費コピー代4,800
          85月18日諸費工具代14,200
          9小計019,000
          104月20日図書費新聞代3,000
          114月26日図書費新聞代5,000
          125月12日図書費本代12,000
          13小計020,000
          14合計33,60039,000

        【解答1例】

        • SUBTOTAL関数で合計『9』を使った例です。
        • SUBTOTALは範囲内に含まれるSUBTOTALの値は無視しますので、合計のセルE14:F14のような使い方ができます。
        •  BCDEF
          2月 日項目名適用収入金額支出金額
          34月19日会費会費(19人分)7,600
          44月25日会費会費(63人分)25,200
          55月20日会費会費(2人分)800
          6小計=SUBTOTAL(9,E3:E5)=SUBTOTAL(9,F3:F5)
          75月10日諸費コピー代4,800
          85月18日諸費工具代14,200
          9小計=SUBTOTAL(9,E7:E8)=SUBTOTAL(9,F7:F8)
          104月20日図書費新聞代3,000
          114月26日図書費新聞代5,000
          125月12日図書費本代12,000
          13小計=SUBTOTAL(9,E10:E12)=SUBTOTAL(9,F10:F12)
          14合計=SUBTOTAL(9,E3:E13)=SUBTOTAL(9,F3:F13)

        (入力方法) 【関数の挿入】ボタンを使う方法 

        1. E14セルをクリックしてアクティブにします。
        2. 関数の挿入【fx】ボタンをクリックし、表示される関数の挿入ダイアログで【SUBTOTAL】を選択。
        3. 【関数の引数】ダイアログで、
          • 【集計方法】の欄を選択し、 9 をキーボードから入力します。
          • 【範囲1】の欄を選択し、シートのセル範囲 E3:E13 をドラッグして選択。
        4. 【OK】ボタンをクリックします。

        オートフィルタとの組み合わせで表示セルのみの合計を計算する例です

        • C10セルに「=SUBTOTAL(9,C2:C8)」と入力してあります。
        • オートフィルタで合計行が含まれないように、表と合計行の間に空白行を挟みます。
        1. リストA1:C8のいずれかのセルを選択し、[データ]タブの[フィルター]をクリックします。
          • Excel2003以前では、リストA1:C8のいずれかのセルを選択し、[データ]→[フィルタ]→[オートフィルタ]を選択。
        2. クラスで「1」を選択。またはクラスで「2」を選択するとそれぞれ抽出されたデータの合計が表示されます。
          • クラスで「1」を選択した例
          • クラスで「2」を選択した例

        オートフィルタで抽出したデータに、SUBTOTAL関数を使って連続Noを付ける例です

        • A2セルに「=SUBTOTAL(3,$C$2:C2)」と入力し、A8セルまでフィルハンドルをドラッグして、コピーします。
          集計方法に「3=COUNTA」を使って、C列の文字列のセル数を数えています。
        1. クラスで「1」を選択。またはクラスで「2」を選択するとそれぞれ抽出されたデータに連続したNoが表示されます。
          • クラスで「1」を選択した例
          • クラスで「2」を選択した例

        合計の関数(SUM),オートSUMの使い方

        合計の関数(SUM)オートSUM

        合計します   サム
        =SUM(範囲)

        • 合計の数式 =A1+A2+A3+A4+A5 は =SUM(A1:A5) と書くことができます。
        • A1〜A5セルのいずれかに文字列の値がある場合、
          「+」を使った数式はエラー(#VALUE!)になりますが、SUM関数を使うと文字列は無視して計算されます。

        [A]連続した範囲の合計を求める  

        【問題1】収入金額と支出金額の合計を求めなさい。
        •  BCDEF
          2月 日項目名適用収入金額支出金額
          34月15日繰越金3月分繰越金10,000
          44月19日会費会費(19人分)7,600
          54月20日図書費新聞代3,000
          64月25日会費会費(63人分)25,200
          74月26日図書費新聞代5,000
          85月10日諸費コピー代4,800
          95月12日図書費本代12,000
          105月18日諸費工具代14,200
          115月20日会費会費(2人分)800
          12合計43,60039,000
        【解答例】SUM関数を使った解答例です。
        •  BCDEF
          2月 日項目名適用収入金額支出金額
          34月15日繰越金3月分繰越金10,000
          44月19日会費会費(19人分)7,600
          54月20日図書費新聞代3,000
          64月25日会費会費(63人分)25,200
          74月26日図書費新聞代5,000
          85月10日諸費コピー代4,800
          95月12日図書費本代12,000
          105月18日諸費工具代14,200
          115月20日会費会費(2人分)800
          12合計=SUM(E3:E11)=SUM(F3:F11)

        オートSUMボタン『Σ』を使った入力方法 

        1. 合計を表示するセルE12をクリックし、アクティブにします。
        2. ツールバーの【Σ】オートSUMボタンをクリックします。
        3. セルE11に青い枠が表示され、E12には『=SUM(E11)』と表示されます。
          • 下記の例では収入金額のセルE3〜E11に空白セルがあるため、正しい範囲が設定されません。
            (セル範囲 E3〜E11 に空白セルを含まなければ、正しく範囲が設定されます。)
          • 正しいセル範囲を指定します。
            1. E3:E11 をドラッグして指定します。
            2. 合計するセル範囲は、E3:E11ですので、E11セルの青枠線(カラーリファレンス)の上角にマウスポインタを重ねE3までドラッグします。
        4. 青枠線でE3:E11を囲むと、数式は『=SUM(E3:E11)』と正しく設定できます。
        5. 【Enter】キーを押します。(数式バーの左にある緑のチェックマークをクリックしても良い)
        6. E12セルからオートフィルを使ってF12に数式をコピーします。

        [B-1]不連続の範囲の合計を求める  

        【問題2】収入と支出の合計をD8:D9セルに求めなさい。
        • BCDEF
          2会費(収入)図書費(支出)雑収入(収入)諸費(支出)
          31月25,00012,0002,0004,200
          42月32,0008,2001,5005,120
          53月28,00011,0001,1006,200
          64月31,0004,2001,6002,520
          7
          8収入の合計122,200
          9支出の合計53,440
        【解答例】
        • 範囲と範囲の区切りには「,」(カンマ)を使います。
        • =SUM(範囲1,範囲2,範囲3,・・・・) の形式になります。
        • BCDEF
          2会費(収入)図書費(支出)雑収入(収入)諸費(支出)
          31月25,00012,0002,0004,200
          42月32,0008,2001,5005,120
          53月28,00011,0001,1006,200
          64月31,0004,2001,6002,520
          7
          8収入の合計=SUM(C3:C6,E3:E6)
          9支出の合計=SUM(D3:D6,F3:F6)

        (入力方法-1) オートSUMボタンを使う方法  

        1. D8セルをクリックしてアクティブにします。
        2. オートSUM 【Σ】ボタンをクリックします。
        3. セル範囲 C3:C6 をドラッグして選択。
        4. キーボードから『,』(カンマ)を入力します。
        5. セル範囲 E3:E6 をドラッグして選択。
        6. 【Enter】キーを押します。
        • マウス操作で、セル範囲 C3:C6 をドラッグして選択し、[Ctrl]キーを押しながらセル範囲 E3:E6 をドラッグして選択しても同じ様にできます。

        (入力方法-2) 【関数の挿入】ボタンを使う方法  

        1. D8セルをクリックしてアクティブにします。
        2. 数式バーの関数の挿入【fx】ボタンをクリックし、表示される関数の挿入ダイアログで【SUM】を選択。
        3. 【関数の引数】ダイアログで、
          • 【数値1】の欄をクリックしてカーソルを表示し、セル範囲 C3:C6 をドラッグして選択。
          • 【数値2】の欄をクリックしてカーソルを表示し、セル範囲 E3:E6 をドラッグして選択。
        4. 下図のように設定して、【OK】ボタンをクリックします。

        [B-2]不連続の範囲の合計を求める   

        【問題3】集計表の合計(D10:D11)を完成しなさい。

        •  BCD
          2項目名金額
          34月収入金額54,000
          4支出金額38,500
          55月収入金額62,000
          6支出金額46,700
          76月収入金額57,000
          8支出金額58,900
          9
          10合計収入金額173,000
          11支出金額144,100

        【解答例】不連続な値の合計は、「,」(カンマ)で値を列記します。

        •  BCD
          2項目名金額
          34月収入金額54,000
          4支出金額38,500
          55月収入金額62,000
          6支出金額46,700
          76月収入金額57,000
          8支出金額58,900
          9
          10合計収入金額=SUM(D3,D5,D7)
          11支出金額=SUM(D4,D6,D8)

        【関連事項】SUM関数以外の方法

        オートSUM ボタンのいろんな使い方  

        • 合計はよく使う関数なので、ツールバーにオートSUMボタンが準備してあります。
        • 以下の方法は「合計」の時に使えます。

        [A-1]一度に縦横の合計を出す 

        1. 合計するセルから合計を表示するセルまでを含めて選択。
          • B3:E6セルを選択。
        2. 【オートSUM】ボタンをクリックします。
          • Excel2007,2010,2013では[ホーム]タブの「編集グループ」にあります。
          • Excel2007,2010,2013では[数式]タブにも オートサム ボタンがあります。
        3. E3:E9とB9:D9セルに合計が表示されました。

        [A-2]一度に縦横の合計を出す   

        1. 合計を表示するセルを選択。
          • E3:E9を選択し、【Ctrl】キーを押しながらB9:D9を選択。
        2. 【オートSUM】ボタンをクリックします。
        3. 選択したセル範囲に合計が表示されました。
          • B9セルは『=SUM(B3:B8)』となっています。

        条件付き合計の関数(SUMIF関数の使い方,SUMIFS関数の使い方)

        • 条件付きで合計を計算するにはSUMIF関数を使います。条件と一致したセルの合計を計算することができます。
          複数の条件で計算するときはSUMIFS関数を使います。なお、SUMIFS関数はExcel2007以降で使用することができます。
        • SUMPRODUCT関数を用いて、複数条件により合計を求めることもできます。→SUMPRODUCT関数
        条件付き合計(SUMIF関数)複数条件での合計(SUMIFS関数)ワイルドカード

        条件付き合計
         サムイフ
        =SUMIF(検索範囲,検索条件,合計範囲)

        • 検索範囲で検索条件と一致する行の合計範囲の値を合計します。
        • 【問題1】下の集計表で性別が「男」の得点の合計を計算しなさい。
          【問題2】下の集計表で年齢が30歳代の得点を合計しなさい。
          【問題3】名前が 子 で終わる人の合計を求めなさい
          【問題4】名前が3文字の人の合計を求めなさい。
          BCDEFG
          2番号氏名性別年齢血液型得点
          31上原嘉男30O91
          42森永彩芽28A98
          53古田恵26A61
          64太田千恵子21B46
          75豊田啓一38B78
          86新村遥奈39A76
          97坂元彩香29B68
          108坪井尚生33A77
          119西原舞35B41
          1210中野野乃花23A93
          1311岩渕佳代39A61
          1412市村将文24A66
          1513芦田公平31A90
          1614高見美姫27A81
          1715高山晴彦23B76
          1816高島嘉子24A85
          1917蛭田功一32A60
          2018北奈那32B84
          2119本田明莉29A66
          2220東海林真依30A92
        • 【解答1例】
          • 条件の検索範囲D3:D22、検索条件は"男" (文字列なのでダブルクォーテーションでくくります)、合計する範囲はG3:G22なので
            =SUMIF(D3:D22,"男",G3:G22) となります。
            下図では条件に一致するセルに色を付けています。合計されるセルは薄緑色のセル値になります。
          • 【関数の挿入】ボタンを使って数式を入力する方法  

            1. 合計を表示するセルをクリックしてアクティブにします。
              ここの例では I3セルをクリックして選択。
            2. 数式バーの 関数の挿入[fx]ボタンをクリックします。
            3. 関数の分類で「すべて表示」を選択し、【SUMIF】を選択。
              • すべて表示するとアルファベット順に関数が表示されます。キーボードの S を押すとSで始まる関数までスクロールされるので便利です。
            4. 【関数の引数】ダイアログで、 範囲、検索条件。合計範囲を設定します。
              • 【範囲】の欄を選択し、シートのD3:D22セルを選択。
              • 【検索条件】の欄を選択し、"男" と入力します。
                ここでは"(ダブルクォーテーション)を入力しなくても数式では補完されます。
              • 【合計範囲】の欄を選択し、シートの G3:G22セルを選択。
              • [OK]ボタンをクリックします。
        • 【解答2例】
          • 30歳代という条件で求めるには、30歳以上の合計から40歳以上の合計を差し引くことで求めることができます。
            30歳以上は SUMIF(E3:E22,">=30",G3:G22) 
            40歳以上は SUMIF(E3:E22,">=40",G3:G22)
            で求めることができます。
            数式は =SUMIF(E3:E22,">=30",G3:G22)-SUMIF(E3:E22,">=40",G3:G22) としました。
            • 40歳未満から30歳未満の合計を差し引いて求めることもできます。
              数式は =SUMIF(E3:E22,"<40",G3:G22)-SUMIF(E3:E22,"<30",G3:G22) となります。
        • 【解答3例】
          • 名前の最後に子が付いている名前という条件は ワイルドカード *(アスタリスク)を使って *子 と表現することができます。
            数式は =SUMIF(C3:C22,"*子",G3:G22) としました。
        • 【解答4例】
          • 名前の文字数が3文字という条件は ワイルドカード ?(クエスチョンマーク)を使って ??? と表現することができます。
            数式は =SUMIF(C3:C22,"???",G3:G22) としました。

        SUMIFS関数:複数の検索条件を満たすセルの値を合計します。 Topへ
        サム イフズ
        SUMIFS(合計対象範囲,検索条件範囲1,検索条件1,検索条件範囲2,検索条件2...)
        Excel2007で追加された関数です。

        • 条件は「条件1AND条件2...」のANDでの結果になります。 ANDとは設定したすべての条件を満たす場合に計算されるということです。
          OR条件を使いたいケースでは SUMPRODUCT関数 を利用することができます。
        • 【問題1】性別が「男」で血液型が「A」の得点の合計を求めなさい。
          【問題2】年齢が30歳代の得点の合計を求めなさい。
          【問題3】性別が「男」、血液型が「A]、年齢が30歳代の得点を求めなさい。
          【問題4】「女」の「B」または「男」の「A」の得点の合計を求めなさい。なお、ここではSUMIFS関数を使って求めます。
          BCDEFG
          2番号氏名性別年齢血液型得点
          31上原嘉男30O91
          42森永彩芽28A98
          53古田恵26A61
          64太田千恵子21B46
          75豊田啓一38B78
          86新村遥奈39A76
          97坂元彩香29B68
          108坪井尚生33A77
          119西原舞35B41
          1210中野野乃花23A93
          1311岩渕佳代39A61
          1412市村将文24A66
          1513芦田公平31A90
          1614高見美姫27A81
          1715高山晴彦23B76
          1816高島嘉子24A85
          1917蛭田功一32A60
          2018北奈那32B84
          2119本田明莉29A66
          2220東海林真依30A92
        • 【解答1例】
          • 合計の対象範囲は G3:G22 、性別の範囲はD3:D22で条件は「男」、血液型の範囲は F3:F22で条件は「A」となります。
            よって数式は =SUMIFS(G3:G22,D3:D22,"男",F3:F22,"A") と入力します。
            下図では条件に一致するセルに色を付けています。合計されるセルは薄緑色のセル値になります。
          • SUMIFS関数の引数ダイアログでは下図のように設定します。
        • 【解答2例】
          • 合計の対象範囲は G3:G22 、条件は30歳代ということですので、30以上 40未満を条件とします。
            よって数式は =SUMIFS(G3:G22,E3:E22,">=30",E3:E22,"<40") と入力します。
        • 【解答例3】
          • 問題2にさらに条件が付け加えられています。性別が「男」、血液型が「A]という条件を加えた数式にします。
            数式は =SUMIFS(G3:G22,E3:E22,">=30",E3:E22,"<40",D3:D22,"男",F3:F22,"A") としました。
        • 【解答4】
          • 「女」の「B」または「男」の「A」の条件を一つにまとめることができませんので、それぞれの条件で求めてから合計します。
            「女」の「B」は SUMIFS(G3:G22,D3:D22,"女",F3:F22,"B") 
            「男」の「A」は SUMIFS(G3:G22,D3:D22,"男",F3:F22,"A")
            でそれぞれ求めることができます。
            よって数式は =SUMIFS(G3:G22,D3:D22,"女",F3:F22,"B")+SUMIFS(G3:G22,D3:D22,"男",F3:F22,"A") としました。
            合計はSUM関数で求めることができますので、 =SUM(SUMIFS(G3:G22,D3:D22,"女",F3:F22,"B"),SUMIFS(G3:G22,D3:D22,"男",F3:F22,"A")) とすることもできます。
          • SUMPRODUCT関数を使って求めることもできます。
            AND条件は乗算、OR条件は和算で論理式を組みたてます。
            =SUMPRODUCT((D3:D22="女")*(F3:F22="B")+(D3:D22="男")*(F3:F22="A"),G3:G22)

        ワイルドカード文字   文字列の検索、置換時に使用します     ?は任意の 1 文字
          例)鹿児島県や鹿児島市を指定したい場合1文字(県と市)だけ異なるので、「鹿児島?」とします。
         *は任意の数の文字
          例)鹿児島県 宮崎県 など 県を含む文字を指定したい場合、鹿児島(3文字)と宮崎(2文字)が異なるので「*県」とします。
          ※ ?や*の検索には ~(チルダ) を使用します。

        【問題】下表の中の「PTA会費」、「児童会費」、「父兄会費」を集計表の【会費】欄に計算しなさい。

        •  BCDEF
          2月 日項目名適用収入金額支出金額
          34月15日繰越金3月分繰越金10,000
          44月19日PTA会費会費(19人分)7,600
          54月20日図書費新聞代3,000
          64月25日児童会費会費(63人分)25,200
          74月26日図書費新聞代5,000
          85月10日諸費コピー代4,800
          95月12日図書費本代12,000
          105月18日諸費工具代14,200
          115月20日父兄会費会費(2人分)800
          12合計43,60039,000
          13
          14項目名収入金額
          15会費33,600

        【解答例】

        • 「PTA会費」、「児童会費」、「父兄会費」は全て【会費】という文字を最後に含みます。
          別な言い方をすれば、『「会費」で終わる文字列である』とも言えます。
        • ワイルドカード文字「*」(アスタリスク:半角文字)を組み合わせて、『*会費』を検索条件とします。
        •  BCDEF
          2月 日項目名適用収入金額支出金額
          34月15日繰越金3月分繰越金10,000
          44月19日PTA会費会費(19人分)7,600
          54月20日図書費新聞代3,000
          64月25日児童会費会費(63人分)25,200
          74月26日図書費新聞代5,000
          85月10日諸費コピー代4,800
          95月12日図書費本代12,000
          105月18日諸費工具代14,200
          115月20日父兄会費会費(2人分)800
          12合計43,60039,000
          13
          14項目名収入金額
          15会費=SUMIF(C3:C11,"*会費",E3:E11)

        SUMPRODUCT関数の使い方

         サムプロダクト
        =SUMPRODUCT(配列1,配列2)

        • 配列の対応する要素間の積をまず計算し、さらにその和を返します。
          ただし、SUMPRODUCT関数は数値以外の配列要素は、0であると見なされます。
        • SUMPRODUCT関数で複数条件の件数をカウントしたり、合計を出すことができます。
        • SUMPRODUCT関数を用いて、1行/1列おきに計算することもできます。

        SUMPRODUCT関数の計算概念   

        • SUMPRODUCT関数は引数の配列の対応する要素間の積をまず計算し、その計算結果の合計を求めます。
        • 【問題】売上合計金額を求めなさい。

           BCD
          2商品名単価個数
          3パソコン198,00010
          4プリンタ37,0005
          5モニター58,00010
          6   
          7 合計金額2,745,000
        • 【解答例】
          • 単価×個数 で金額をE列に求めますが、この問題では金額欄がありません。
            配列間の積の和を求めるSUMPRODUCT関数を使用して、一度に計算結果を求めることができます。
           BCD
          2商品名単価個数
          3パソコン198,00010
          4プリンタ37,0005
          5モニター58,00010
          6   
          7 合計金額=SUMPRODUCT(C3:C5,D3:D5)
          • =SUMPRODUCT(C3:C5,D3:D5)
            =SUMPRODUCT({198000;37000;58000},{10;5;10})
            ={198000*10,37000*5,58000*10} を合計する
            =2,745,000

        SUMPRODUCT関数を使い、複数条件でカウントする   

        • 【問題】 商品名「みかん」 サイズ「S」の件数をカウントしなさい。
          • BCD
            2商品名サイズ件数
            3みかんS4
            4
            5商品名サイズ
            6みかんS
            7みかんM
            8みかんS
            9バナナS
            10みかんM
            11みかんS
            12みかんS
        • 【解答例】
          • SUMPRODUCT関数では配列の計算ができるので、論理式*論理式でAND条件の件数をカウントします。
            BCD
            2商品名サイズ件数
            3みかんS=SUMPRODUCT((B6:B12="みかん")*(C6:C12="S"))
            4
            5商品名サイズ
            6みかんS
            7みかんM
            8みかんS
            9バナナS
            10みかんM
            11みかんS
            12みかんS
          • =SUMPRODUCT((B6:B12="みかん")*(C6:C12="S"))の計算過程の概念
            • =SUMPRODUCT({(B6="みかん");(B7="みかん");(B8="みかん");(B9="みかん");(B10="みかん");(B11="みかん");(B12="みかん")}
                        *{(C6="S");(C7="S");(C8="S");(C9="S");(C10="S");(C11="S");(C12="S")})
              =SUMPRODUCT({TRUE;TRUE;TRUE;FALSE;TRUE;TRUE;TRUE}*{TRUE;FALSE;TRUE;TRUE;FALSE;TRUE;TRUE})
              配列内の各要素を順番にかけ合わせていきます。上の配列内の 赤*赤、緑*緑 ・・・といった具合になります。
              ={TRUE*TRUE,TRUE*FALSE,TRUE*TRUE,FALSE*TRUE,TRUE*FALSE,TRUE*TRUE,TRUE*TRUE}
              =1+0+1+0+0+1+1
              =4
            • この場合の配列要素は「TRUE*TRUE」のような論理積になっていますので、
              論理値の積はExcelのワークシートではTRUE*TRUE=1*1=1 となり、それ以外の積は「0」となります。(FALSE=0なので)
              なお、この数式は配列が1個なのでSUM関数の配列式でも同じ結果を得ることができます。
              {=SUM((B6:B12="みかん")*(C6:C12="S"))} とShift+Ctrl+Enterで配列数式にします。
            表で示すと、下表の各行の計算結果を合計していることになります。
            (B6:B12="みかん")*(C6:C12="S")の計算経過各経過での計算結果
            6(B6="みかん")*(C6="S")TRUE*TRUE = 1
            7(B7="みかん")*(C7="S")TRUE*FALSE = 0
            8(B8="みかん")*(C8="S")TRUE*TRUE = 1
            9(B9="みかん")*(C9="S")FALSE*TRUE = 0
            10(B10="みかん")*(C10="S")TRUE*FALSE = 0
            11(B11="みかん")*(C11="S")TRUE*TRUE = 1
            12(B12="みかん")*(C12="S")TRUE*TRUE = 1
            合計 4
          • =SUMPRODUCT(B6:B12="みかん",C6:C12="S") では計算できない理由

            • =SUMPRODUCT(B6:B12="みかん",C6:C12="S")  とすると「0」となり、計算できません。
              これは、SUMPRODUCT関数は数値以外の配列要素は、0であると見なされるためです。
              • この配列の要素は論理値(TRUE/FALSE)なので全て「0」と見なされるので、計算結果は「0」となります。
                B6:B12="みかん"C6:C12="S"SUMPRODUCT(B6:B12="みかん",C6:C12="S")
                6TRUETRUE0 * 0 = 0
                7TRUEFALSE0 * 0 = 0
                8TRUETRUE0 * 0 = 0
                9FALSETRUE0 * 0 = 0
                10TRUEFALSE0 * 0 = 0
                11TRUETRUE0 * 0 = 0
                12TRUETRUE0 * 0 = 0
                合計0
            • なお、=SUMPRODUCT((B6:B12="みかん")*1,(C6:C12="S")*1)として、論理値を数値に変えることでができます。
              • TRUE*1=1、FALSE*1=0となるため、(B6:B12="みかん")*1の部分は{1;1;1;0;1;1;1}、(C6:C12="S")*1の部分は{1;0;1;1;0;1;1}といった配列になります。
                (B6:B12="みかん")*1(C6:C12="S")*1SUMPRODUCT((B6:B12="みかん")*1,(C6:C12="S")*1)
                6111 * 1 = 1
                7101 * 0 = 0
                8111 * 1 = 1
                9010 * 1 = 0
                10101 * 0 = 0
                11111 * 1 = 1
                12111 * 1 = 1
                合計4
            • 論理値の計算について
              • ExcelのワークシートではTRUE=1 FALSE=0 として計算されます。
                VBAではTRUE=-1となっています。
              • 逆に数値を論理値にするとき、0はFALSEとなりますが、1,2・・・とか0以外はTRUEと見なされます。

        SUMPRODUCT関数で複数条件での合計を求める   

        • 【問題】 商品名「みかん」 サイズ「S」の金額を求めなさい。
          • BCD
            2商品名サイズ金額
            3みかんS6,400
            4
            5商品名サイズ金額
            6みかんS1,000
            7みかんM1,200
            8みかんS2,100
            9バナナS3,000
            10みかんM2,500
            11みかんS1,200
            12みかんS2,100
        • 【解答例】
          • 条件を数式に書き込む場合
            D3セル  =SUMPRODUCT((B6:B12="みかん")*(C6:C12="S"),(D6:D12))
          • 条件がセルに入力されている場合
            D3セル  =SUMPRODUCT((B6:B12=B3)*(C6:C12=C3),(D6:D12))
        • (SUMPRODUCT関数での計算過程の説明)

          • 数式 『=SUMPRODUCT((B6:B12="みかん")*(C6:C12="S"),(D6:D12))』を以下の表で分解してみます。
          • B列に「B6:B12="みかん"」を満足するセルはTRUE、満足しないセルはFALSE となります。
          • C列に「C6:C12="S"」を満足するセルはTRUE、満足しないセルはFALSE となります。
          • =SUMPRODUCT((B6:B12="みかん")*(C6:C12="S"),(D6:D12))
            =SUMPRODUCT(B列*C列,D列)
            Excelの関数ではTRUE=1 FALSE=0 として計算しますので、
            E列の計算結果を合計した結果が得られます。
          • BCDE
            2商品名サイズ金額
            3みかんS6,400
            4
            5商品名サイズ金額
            6TRUETRUE1,000(1*1)*1,000=1,000
            7TRUEFALSE1,200(1*0)*1,200=0
            8TRUETRUE2,100(1*1)*2,100=2,100
            9FALSETRUE3,000(0*1)*3,000=0
            10TRUEFALSE2,500(1*0)*2,500=0
            11TRUETRUE1,200(1*1)*1,200=1,200
            12TRUETRUE2,100(1*1)*2,100=2,100
            13合計→6,400
          • (注意)SUMPRODUCT関数では、セル範囲を「A:A」のように列全体を指定した場合、エラーとなります。
            「A1:A65536」のようにセル範囲を指定します。

        SUMPRODUCT関数で一行おきに合計する   

        • 【問題】 収入と支出が1行ごとに入力されています。収入と支出の金額を求めなさい。
          この例では、SUMIF関数で求めるのが簡単ですが、SUMPRODUCT関数の一例ということで書いています。
        • BC
          2収入2,000
          3支出1,500
          4収入2,500
          5支出1,200
          6収入3,700
          7支出2,000
          8収入1,400
          9支出4,200
          10収入3,500
          11支出2,500
          12総収入13,100
          13総支出11,400
        • 【解答例】
          • 偶数は2で割ると余りが0である。奇数は2で割ると余りが1である。といった条件を利用します。
            この例では対象セルの行番号を2で割った時の余りが0なら偶数というわけです。
          • 収入(偶数行)の合計
            • C12セル:=SUMPRODUCT((MOD(ROW(C2:C11),2)=0)*C2:C11)
              (MOD(ROW(C2:C11),2)=0)の部分は論理値(TRUE/FALSE)が返されますので、(MOD(ROW(C2:C11),2)=0)*C2:C11と積(掛け算)で求めています。
            • (注)C列に文字列が混ざって入力されているような場合、下のようなことが考えられます。
              • 論理値が返る部分を数値にする。
                =SUMPRODUCT((MOD(ROW(C2:C11),2)=0)*1,C2:C11)
              • MOD(ROW(C2:C11)-1,2)として、対象セルの行番号を2で割った時に1が返るように小細工をします。
                =SUMPRODUCT(MOD(ROW(C2:C11)-1,2),C2:C11)
                • 偶数のときMOD(ROW(C2:C11),2)は0となるので、-1とすることで1となります。逆の奇数なら-1で0となります。
          • 支出(奇数行)の合計
            • C13セル:=SUMPRODUCT((MOD(ROW(C2:C11),2)=1)*C2:C11)
            •      =SUMPRODUCT(MOD(ROW(C2:C11),2),C2:C11)

        SUMPRODUCT関数を使い、複数条件でテータを取り出す   Topへ

        •  【問題】 B14セルに商品名、C14セルにメーカー名を入力したら、D14セルで型番を求めなさい。
          • BCD
            2商品名メーカー名型番
            332インチSOMYSO3201
            432インチMINIBISIMI3201
            532インチTOBIBATO3201
            632インチSAMISUNSA3201
            740インチSOMYSO4002
            840インチMINIBISIMI4002
            940インチTOBIBATO4002
            1040インチSAMISUNSA4002
            11
            12
            13商品名メーカー名型番
            1440インチSOMYSO4002
        • 【解答例】
          • 条件はSUMPRODUCT((B3:B10=B14)*(C3:C10=C14))で一致しているか否かを調べることができます。
            両者が一致したときのセル位置がわかれば、INDEX関数で求めることができますので、*ROW(A1:A8)を加えれば求めることができます。
            • D14セル =INDEX(D3:D10,SUMPRODUCT((B3:B10=B14)*(C3:C10=C14)*ROW(A1:A8)))
          • なお、MATCH関数とINDEX関数の組み合わせでも求めることができます。
            • D14セル =INDEX(D3:D10,MATCH(B14&C14,INDEX(B3:B10&C3:C10,),0))
          • 掲示板で表の行の欠落と数式の間違いをご指摘いただきました。
            表の欠落の修正および数式中のB13をB14に,C13をC14に修正しました。
            ご指摘、ありがとうございました。
            (2013/8/6)

        SWITCH関数の使い方

        式を評価して、最初に一致する値に対応する結果を返します
         スウィッチ
        =SWITCH(式,値1,結果1,[値2,結果2,・・・],規定値)

        • 式(条件)の返す値と一致した値に対応した結果を返します。CHOOSE関数に似ています。またIF関数でも似たような感じ処理をすることがあると思います。
          SWITCH関数は式で返される値の一部を指定し、指定していない値に対しては「規定値」を返すことができるのが特徴と思われます。
        • なお、現在(2016/4/11)この関数SWITCHが使用できるのは以下の場合に限られています。このページではExcelOnlineの画像を使って説明しています。
          • Office 365 の最新のもの
          • Excel Online を使用している場合
          • Excel Mobile を使用している場合
          • Excel for Android フォンおよび Excel for Android タブレットを使用している場合
        【問題1】
        • B列の得点が最も高い人から「優勝」「準優勝」「3位」と表示しなさい。
        【解答例】
        • C2セルの数式は =SWITCH(RANK(B2,$B$2:$B$15),1,"優勝",2,"準優勝",3,"3位","") とします。
          得点の高いほうからの順位は RANK(B2,$B$2:$B$15) とRANK関数を使って求めることができます。
          SWITCH関数でその順位と順位に応じた結果を列記していき、最後に列記した値に該当しないものには規定値(ここでは ""(空白))を表示するように設定しています。
        • なお、SWITCH関数がつかえない場合はCHOOSE関数やIF関数を使って数式を作成することができます。
          • CHOOSE関数では該当しない値の時にエラーとなりますので、あらかじめIF関数で3以下の時に限って値を返すように数式を作成しました。
            =IF(RANK(B2,$B$2:$B$15)<=3,CHOOSE(RANK(B2,$B$2:$B$15),"優勝","準優勝","3位"),"")
          • IF関数で処理すると数式は
            =IF(RANK(B2,$B$2:$B$15)=1,"優勝",IF(RANK(B2,$B$2:$B$15)=2,"準優勝",IF(RANK(B2,$B$2:$B$15)=3,"3位","")))
            となります。

        TEXTJOIN関数の使い方

        複数の範囲や文字列を結合します
         テキスト ジョイン
        =TEXTJOIN(区切り文字,空のセルを無視,文字列1,[文字列2],・・・)

        • 従来からあるCONCATENATE関数ではセル範囲での指定(A1:A3のような指定)ができませんでしたが、TEXTJOIN関数では複数のセル範囲の指定が可能になっています。
          TEXTJOIN関数では文字列を結合するときに区切り文字を指定することができます。
          また、TEXTJOIN関数では空セルが含まれる場合、空のセルを無視するときはTRUE(または1)と指定します。無視しないときはFALSE(または0)を指定します。
          • なお、この関数が使用できるExcelのバージョンではCONCATENATE関数はCONCAT関数に変更されます。
            下位バージョンとの互換のためCONCATENATE関数も引き続き利用できます。
        • なお、現在(2016/4/11)この関数TEXTJOIN関数やSWITCHが使用できるのは以下の場合に限られています。
          このページではExcelOnlineの画像を使って説明しています。
          • Office 365 の最新のもの
          • Excel Online を使用している場合
          • Excel Mobile を使用している場合
          • Excel for Android フォンおよび Excel for Android タブレットを使用している場合
        【使用例】
        • 区切り文字にハイフン"-" を使い、空セルは無視する例です。
          =TEXTJOIN("-",TRUE,A1:B3) 
          B2セルは空欄なので無視されています。また0個の文字列 "" も同様に無視されるようです。
        • 区切り文字にハイフン"-" を使い、空セルを無視しない例です。
          =TEXTJOIN("-",FALSE,A1:B3)
          B2セルは空ですが、無視しないのでA2の後ろに区切り文字のハイフンが2個並んでいるのが上と異なるところです。上の例のTRUEではハイフンは1個です。
        • 区切り文字をセルで個別に指定する例
          A5:C5セルに区切り文字を入力して、TEXTJOIN関数でそのセル範囲を指定します。
          =TEXTJOIN(A5:C5,TRUE,A1:C3)
          区切り文字が順番に変わっているのがわかります。

          上記は列数と区切り文字の種類が同じ3個ですので違和感はないのですが、区切り文字が2種類だと下図のようになります。
        • 結果として文字列が32767文字 (セルの上限) を超えると、#VALUE! エラーを返します。
          これを確認するために A7セルに =REPT("A",32767) と入力して、 =TEXTJOIN("",TRUE,A7:A8) とすると結果は表示されました。

          A8セルに1文字"B" と入力すると上限の32767文字を超えるので、 #VALUE! エラーとなるのが確認できました。

        日付の関数

        • エクセルでの日付に関する様々な関数について説明しています。 日付を扱った計算を行うときに便利な関数が種々あります。
          目的の合った関数を利用することで、シンプルな計算式を作成することができます。
        日付の計算今日の日付[TODAY()]
        現在の日時[NOW()]シリアル値から数値へ(YEAR,MONTH,DAY)
        数値からシリアル値へ(DATE)文字列をシリアル値へ(DATEVALUE)
        期間の計算(DATEDIF)日付の表示形式
        日付の表示を和暦に変換する(DATESTRING)
        シリアル値を曜日の数値へ(WEEKDAY)指定した稼動日数だけ前/後の日付(WORKDAY)
        指定された期間の稼動日数(NETWORKDAYS)その年の第何週目に当たるかを返す(WEEKNUM)
        月末の日付を返す(EOMONTH)指定した月数分だけ前後した日付(EDATE)
        日付の差を求める(DAYS) 

        シリアル値

        • 日付は1900年1月1日を「1」、1900年1月2日を「2」・・・と、数値で表します。
        • 時間・時刻は「1日(24時間)」を「1」として、12:00は「0.5」、6:00は「0.25」と小数点以下の数値で表します。
        • なお、WindowsとMacintoshでは、シリアル値の基準が異なります。
          • Macintoshでは「1904年1月2日」が「1」となっています。
          • WindowsとMacintoshでExcelファイルをやり取りすると、日付がずれる場合があります。
            • Excel2007以降ではExcelのオプションで設定します。[ファイル]タブをクリックして、[オプション]を選択。
              [詳細設定]を選択して、「次のブックで計算するとき」で「1904年から計算する」にチェックを入れます。
            • Excel2003以前では【ツール】→【オプション】で【計算方法】タブの『1904年から計算する』にチェックを入れて、シリアル値の起点を変更します。

        日付の計算  

        • 日付データは数値(シリアル値)で管理されていますので 足し算や引き算が可能です。
          • なお、日付の入力方法はこちらです→日付の入力
          • (注)セルの表示形式によって表示が異なります。表示の変更は、【書式】→【セル】で変更します。
        • セルの表示形式
          • 年月日など日付を表示したい時   :表示形式を【日付】
          • 日数などシリアル値で表示したい時 :表示形式は【標準】
          • 日付の表示形式についてはこちらを参照→日付の表示形式
        • 日付のシリアル値
          • 既定では、1900年1月1日がシリアル値「 1 」とされて、保存されます。
          • 「1900年1月2日」が「2」・・・「2003年5月1日」は「37742」となります。
          • 他のソフトとの互換性から1904年1月2日を基準とすることもできます。
            その方法は【ツール】→【オプション】の【計算方法】タブで「1904年から計算する」にチェックを入れます。

        日付時刻を表示する   トゥデイ
        =TODAY() :今日の日付を表示する。ショートカットキーでは[Ctrl]+[;] (セミコロン)
         ナウ
        =NOW()   :今日の日付と時刻を表示する。ショートカットキーでは[Ctrl]+「:」(コロン)

        • これらの関数はファイルを開いた時に再計算され、そのときの日付・時刻が表示されます。つまり、開いた時の日時に変化します。
        • 入力時の日付を固定したいケースでは[Ctrl]+[;] 時刻は[Ctrl]+[:] を使って日付や時刻を入力します。

        【問題】

        1. 今日の日付をB2セルに、今の時刻をC2セルに表示しなさい。
        2. B3セルに明日の日付を表示しなさい。
        3. C3セルに1時間後の時刻を表示しなさい。

        【解答例】

        •  BC
          2=TODAY()=NOW()
          3=TODAY()+1=NOW()+"1:00"

        【補足説明】

        • 上記が標準の表示状態です。パソコンの内蔵時計の値が使用されます。
          パソコンの内蔵時計の設定が違っているとこの値も変化します。
        • セルの表示形式を変更して希望の形式にします。
          • 日付の表示形式についてはこちらへ
          • 時刻の表示形式については日付と同様です。
           BC
          22003/11/142003/11/14 9:06
          32003/11/152003/11/14 10:06

        再計算について

        • =NOW() は入力されたときやブックを開いた時(再計算が行われた時)の時刻が表示されます。
        • 今現在の時刻に表示を変えたい場合には「再計算」機能を使います。
        [F9] キー開いているすべてのブックの中で、最後に計算されたとき以降に変更された数式と、その数式を参照する数式を再計算します。
        [SHIFT]+[F9] キー 作業中のワークシートの中で、最後に計算されたとき以降に変更された数式と、その数式を参照する数式を再計算します。
        [Ctrl]+[Alt]+[F9]キー開いているすべてのブックの数式を再計算します。最後に計算されたとき以降に変更されたかどうかは問いません。
        [Ctrl]+[Shift]+[Alt]+[F9]キー参照先の数式を再度チェックし、開いているすべてのブックの数式を再計算します。最後に計算されたとき以降に変更されたかどうかは問いません。

        パソコンの日付と時刻の変更方法  

        • 結構、トラブルにつながること(Windows Updateができないなど)がありますので、正確な状態で運用しましょう。
          Windows7での例を示します。(2014年10月2日にこの部分を書き換えました)
          1. タスクバーの時刻をクリックします。
            「日付と時刻の設定変更」をクリックします。
          2. 「日付と時刻の設定変更」ボタンをクリックします。管理者権限が無いと実行できません。
            ついでに「タイムゾーン」が「(GMT+09:00) 大阪、札幌、東京」になっているのを確認しておきましょう。
            (日本に在住の方のみです。自分の所在地に合わせます)

          3. 日付の変更はカレンダーをクリックします。
            時刻の変更は【▲】、【▼】ボタンで調整するか、時刻をクリックして入力訂正します。
        • Windows10ではコントロールパネルからの操作方法を書きます
          1. コントロールパネルを開き、「時計、言語、および地域」をクリックします。
            なお、この画面での表示方法は「カテゴリ」です。
          2. 日付と時刻で「日付と時刻の設定」をクリックします。
          3. 日付と時刻が表示されますので、「日付と時刻の変更」ボタンをクリックして、変更します。

        開始日と終了日との日数差を調べて、指定した単位で表示します    デイトディフ
        =DATEDIF(開始日,終了日,"単位")
              開始日と終了日との日数差を調べて、指定した単位で表示します
          ”単位” Y:年数  M:月数D:日数
               YM:年数表示での端数の月数
               YD:         端数の日数
               MD:月数表示での端数の日数

           (注)単位は「 ” 」(二重引用符)でくくります。

        【問題】次の人の年齢を求めましょう。基準日はF2セルです。

        •  BCDEFG
          2氏名生年月日年齢2003/5/10現在
          3山田太郎1970/10/11326ヶ月
          4鈴木一郎1975/12/21274ヶ月

        【解答例】

        • DATEDIF関数を使います。端数の月数は"YM"です。
          • 今日現在の場合は =DATEDIF(C3,TODAY(),"Y") となります。
           BCDEFG
          2氏名生年月日年齢2003/5/10現在
          3山田太郎1970/10/11=DATEDIF(C3,$F$2,"Y")=DATEDIF(C3,$F$2,"YM")ヶ月
          4鈴木一郎1975/12/21=DATEDIF(C4,$F$2,"Y")=DATEDIF(C4,$F$2,"YM")ヶ月

        【Step Up】

        • 一つのセルに表示したい場合、演算子『&』を使い、文字列をつなぎます。
        •  BCDEFG
          2氏名生年月日年齢2003/5/10現在
          3山田太郎1970/10/11=DATEDIF(C3,F2,"Y")&"才"&DATEDIF(C3,F2,"YM")&"ヶ月"
          4鈴木一郎1975/12/21=DATEDIF(C4,F2,"Y")&"才"&DATEDIF(C4,F2,"YM")&"ヶ月"
        DATEDIF関数に関しての注意事項

        日付データ(シリアル値)から「年」「月」「日」を取り出す  イヤー
        =YEAR(日付)
          :『年』を返します。1900 〜 9999 (年) の範囲の整数となります。
         マンス
        =MONTH(日付)
         :『月』を返します。1 〜 12 (月) の範囲の整数となります。
         デイ
        =DAY(日付)
          :『日』を返します。1 〜 31 の範囲の整数となります。

        【問題1】

        • C3:C4セルに入力された日付データから『年』『月』『日』の数をD3:F4セルに取り出しなさい。
        • なお、C3:C4セルにはシリアル値で入力されています。
        •  BCDEF
          2氏名生年月日
          3山田太郎1970/10/1119701011
          4鈴木一郎1975/12/2119751221

        【解答1例】

        •  BCDEF
          2氏名生年月日
          3山田太郎1970/10/11=YEAR(C3)=MONTH(C3)=DAY(C3)
          4鈴木一郎1975/12/21=YEAR(C4)=MONTH(C4)=DAY(C4)

        文字列の日付から年月日を取出す

        • C3:C4セルの日付が文字列であったら、YEAR、MONTH、DAY関数は使えず、#VALUE! エラーになります。
          そんな時には、文字列の操作関数を使います。
          • (注)下の表はExcelへエクスポート(コピー&貼り付け)した時、C3:C4セルを文字列とするため、ひらがなを使用しています。
            「1970年10月11日」と入力されると、Excelが日付データと判断してシリアル値に変換するためです。
           BCDEF
          2氏名生年月日
          3山田太郎1970ねん10がつ11=LEFT(C3,4)=MID(C3,7,2)=RIGHT(C3,2)
          4鈴木一郎1975ねん12がつ21=LEFT(C4,4)=MID(C4,7,2)=RIGHT(C4,2)

        空白セルを参照する時の注意

        • 空白のセルを参照すると、YEARは「1900」、MONTHは「1」、DAYは「0」を返します。
        • =IF(B2="","",YEAR(B2)) とか =IF(B2<>"",YEAR(B2),"") のように回避します。
        •  BCD
          2=YEAR(B2)1900
          3=MONTH(B3)1
          4=DAY(B4)0

        元号の数値(和暦)を求めたい時

        • Excelでは西暦で日付は管理されています。西暦から元号の数値を求めるには表示形式を利用する方法があります。
        • ただし、元号なしで明治/大正/昭和/平成にまたがるデータを扱う場合は、区別が付かなくなるので注意が必要です。

        「年」「月」「日」の数値を日付データ(シリアル値)に変える   デイト
        =DATE(年,月,日):シリアル値を返します。

        【問題1】

        • C3:E4セルにそれぞれ年月日の数値が入力されています。
        • これらの数値を使って、F3:F4セルに日付を表示しなさい。
        •  BCDEF
          2氏名年月日
          3山田太郎197010111970/10/11
          4鈴木一郎197512221975/12/22

        【解答1例】

        •  BCDEF
          2氏名年月日
          3山田太郎19701011=DATE(C3,D3,E3)
          4鈴木一郎19751222=DATE(C4,D4,E4)

        【問題2】

        • C3:C4セルにそれぞれ年月日の数値が入力されています。
        • D3:D4に5年後の日付を表示しなさい。
        •  BCD
          2氏名年月日5年後
          3山田太郎2006/2/102011/2/10
          4鈴木一郎2000/2/292005/3/1

        【解答2例】

        • 年月日から年,月,日を取り出し、DATE関数で年に5を加えています。
          ただし、閏年の2/29は該当する日がないので翌日の3/1になります。
        • 月末や何ヶ月後は後述するEOMONTH関数やEDATE関数も使えます。
        •  BCD
          2氏名年月日5年後
          3山田太郎2006/2/10=DATE(YEAR(C3)+5,MONTH(C3),DAY(C3))
          4鈴木一郎2000/2/29=DATE(YEAR(C4)+5,MONTH(C4),DAY(C4))

        日付を表す文字列をシリアル値に変換する   デイトバリュー
        =DATEVALUE(日付文字列)

        • 通常はExcelが日付データと認識したら、内部でシリアル値に変換しますのであまり使うことはないかもしれません。
        • 他のソフトからデータをインポートした時に文字列となっていた場合などに使用します。

        【問題】

        • B2:C3セルに日付が文字列で入力されています。10日後の日付をD,E列に表示しなさい。
        • C列は文字列として入力されているものとします。
          • C2セルには「'10月10日」、C3セルには「'11月11日」のように頭にアポストロフィ([Shift]+[7]キー)を入力します。
            なお、入力後にはシート上ではアポストロフィは表示されません。数式バーではアポストロフィが入力されているのが確認できます。
           BCDE
          22004年10月10日2004/10/20平成16年10月20日
          3平成15年11月11日2003/11/21平成15年11月21日

        【解答例】

        • 年と月日をつなげて日付の文字列を作ります。DATEVALUE関数でシリアル値に変更して計算します。
        • D列は【書式】→【セル】の表示形式で「日付」の「*2001/3/14」を選択。
        • E列は【書式】→【セル】の表示形式で「日付」の「平成13年3月14日」を選択。
        •  BCDE
          22004年10月10日=DATEVALUE(B2&C2)+10=DATEVALUE(B2&C2)+10
          3平成15年10月11日=DATEVALUE(B3&C3)+10=DATEVALUE(B3&C3)+10
          • Excelは日付データと認識できるものは内部で日付として(シリアル値に変換して)計算しますので、D2セルは =(B2&C2)+10 とすることで計算できます。
            よって、数式でDATEVALUE関数を使うことは少ないと思われます。

        同じセルで文字列の日付をシリアル値に変更する

        • 【データ】→【区切り位置】でウィザードの3/3の「列のデータ形式」を「日付」にして、「OK」とすることで可能です。

        日付の表示を和暦に変換する
         デイト ストリング
        =DATESTRING(日付のシリアル値)
        (注)他の表計算アプリケーションとの互換を保つために用意された関数のため、ヘルプおよび関数ウィザードには表示されません。
          日本語版 Excel でのみ追加されたものです。

        • A1セルに「2005/4/1」と入力されているとします。
        • =DATESTRING(A1) とすると、「平成17年04月01日」となります。
          また 「2005/4/1」のシリアル値「38443」を使って =DATESTRING(38443) としても同じ結果が得られます。
        • この関数で返される値は文字列です。
          =TEXT(A1,"ggge年mm月dd日") と同じ結果が得られます。
        • 使用例
          • A列はExcelが日付と認識できる形式で入力してあります。
            表示されている形式は異なりますが、Excelが内部では日付としてシリアル値とみなして処理をしています。
          • 下図のように、A列に文字列として入力されていても、Excelが日付と認識できるケースでは和暦に変換できます。
            しかし、日付と認識できない文字列ではエラーが返されます。

        終了日と開始日の差を求めます。  
         デイズ
        =DAYS(終了日,開始日)
        (注)Excel2013で追加された関数です。

        • 終了日と開始日の差を求めます。これらはいずれもシリアル値もしくは日付と認識される文字列である必要があります。
        • 日付と認識できない文字列の場合はエラー値「#VALUE!」が返されます。
        • なお、DAYS関数を使わず、=B2-C2 といった減算でも計算できます。

        シリアル値を曜日に対応する数値に変更する   ウイークデイ
        =WEEKDAY(シリアル値,種類)
             【種類】に『1』を指定するか省略した場合 :日曜日が1で始まり、土曜日が7となります。
             【種類】に『2』を指定した場合      :月曜日が1で始まり、日曜日が7となります。
             【種類】に『3』を指定した場合      :月曜日が0で始まり、日曜日が6となります。

        【問題】B列の日付が土日の場合、C列に『休み』と表示し、月〜金の場合は『仕事』と表示しなさい。

        •  BC
          2年月日
          32004/2/9仕事
          42004/2/8休み

        【解答例】

        • WEEKDAY関数の『種類』に【2】を使うと、土が「6」、日が「7」となるので、IF関数を使い、「WEEKDAY関数の値が6以上であれば『休み』とし、そうでなかったら(6未満であったら)仕事』としなさい。」といった数式を組みます。
        • BC
          2年月日
          32004/2/9=IF(WEEKDAY(B3,2)>=6,"休み","仕事")
          42004/2/8=IF(WEEKDAY(B4,2)>=6,"休み","仕事")

        【参考】下は2004年の日付です。

        【おまけ】どうしてもWEEKDAY関数を使って、曜日を表示したい時は、関数との組み合わせで可能です。

        • A1に日付が入力してあるとして、
          • =TEXT(A1,"aaa") とする。
          • =A1 として セルの表示形式を「"aaa"」とする。
        • WEEKDAY関数を使い場合は
          • =CHOOSE(WEEKDAY(A1),"日","月","火","水","木","金","土")
          • =MID("日月火水木金土",WEEKDAY(A1),1)
          • =VLOOKUP(WEEKDAY(A1),{1,"日";2,"月";3,"火";4,"水";5,"木";6,"金";7,"土"},2)
          などです。

        【注意】1900年3月1日より前の日をWEEKDAY関数で処理する場合には注意が必要です。

        • 1900/2/29は存在しませんが、日付システムには存在しています。
          よって、1900年1月1日〜1900年2月28日のWEEKDAY関数で返る値は間違った値になります。
          詳しくは↓を参照してください。
        • (確認してみました)
          1900/2/27を入力し、下方向へコピー(フィルハンドルをドラッグ)すると、存在しないはずの1900/2/29が出てきます。
          1900/2/27
          1900/2/28
          1900/2/29
          1900/3/1
          1900/3/2

        指定された稼動日数だけ前/後の日付(シリアル値)を求めます   ワークデイ
        =WORKDAY(開始日,日数,祭日)
           指定した稼働日数の前/後の日付に対応する値を返します。稼動日とは、土曜、日曜、および指定された祭日を除く。
         (注) Excel2003以前のバージョンでは、エラー値 #NAME? が返される場合は、分析ツール アドインを組み込む必要があります。

        【問題1】

        • 2004年2月4日に請求書を発行します。 支払日は請求書発行日から5営業日とします。
        • 支払日を求めなさい。ただし祝日は考慮しないものとします。
        •  BC
          2請求日2004年2月4日
          3支払日2004年2月11日
        • (参考)2004年2月4日〜13日の曜日は以下のようになっています。
          2004年2月4日水曜日
          2004年2月5日木曜日
          2004年2月6日金曜日
          2004年2月7日土曜日
          2004年2月8日日曜日
          2004年2月9日月曜日
          2004年2月10日火曜日
          2004年2月11日水曜日
          2004年2月12日木曜日
          2004年2月13日金曜日

        【解答例】

        • WORKDAY関数を使った例です。(祭日は考慮していません)
          1. Excelへのインポートでうまくいかない場合は、Excelを新たに開いてからコピー&ペーストしてください。
          2. C3セルにシリアル値が表示されたら、表示形式を「日付」の「2001年3月14日」に変更します。
           BC
          2請求日2004年2月4日
          3支払日=WORKDAY(C2,5)

        【問題2】

        • 2004年2月4日に請求書を発行します。 支払日は請求書発行日から5営業日とします。
        • ただし、祭日は営業日として数えません。支払日を求めなさい。
        •  BCDEF
          2請求日2004/2/4祝日一覧
          3支払日2004/2/122004/1/1元旦
          42004/1/15成人の日
          52004/2/11建国記念日

        【解答例】

        • 祝日を考慮する場合は、祝日の表を作成します。祝日の項に祝日の範囲を指定します。
          1. Excelへのインポートでうまくいかない場合は、Excelを新たに開いてからコピー&ペーストしてください。
          2. C3セルにシリアル値が表示されたら、表示形式を「日付」の「2001年3月14日」に変更します。
           BCDEF
          2請求日2004/2/4祝日一覧
          3支払日=WORKDAY(C2,5,E3:E5)2004/1/1元旦
          42004/1/15成人の日
          52004/2/11建国記念日

        指定された期間の稼動日数を求めます    ネットワークデイズ
        =NETWORKDAYS(開始日,終了日,祭日)
           指定した期間(開始日〜終了日)の稼働日数を返します。稼動日とは、土曜、日曜、および指定された祭日を除く。
         (注) Excel2003以前のバージョンでは、エラー値 #NAME? が返される場合は、分析ツール アドインを組み込む必要があります。

        【問題1】

        • 2004年2月4日に工事を開始します。完了日は2004年2月15日です。
        • 土日は休みとします(祝日は工事をします)。実質は何日の工事日数となるでしょうか?
        •  BC
          2工事開始日2004/2/4
          3工事完了日2004/2/15
          4工事日数8

        【解答例】

        • NETWORKDAYS関数を使った例です。(祭日は考慮しません)
          • Excelへのインポートでうまくいかない場合は、Excelを新たに開いてからコピー&ペーストしてください。
           BC
          2工事開始日2004/2/4
          3工事完了日2004/2/15
          4工事日数=NETWORKDAYS(C2,C3)

        【問題2】

        • 2004年2月4日に工事を開始します。完了日は2004年2月15日です。
        • 土日と祝日は休みとします。実質は何日の工事日数となるでしょうか?
        •  BCDEF
          2工事開始日2004/2/4祝日一覧
          3工事完了日2004/2/152004/1/1元旦
          4工事日数72004/1/15成人の日
          52004/2/11建国記念日

        【解答例】

        • 祝日を考慮する場合は、祝日の表を作成します。祝日の項に祝日の範囲を指定します。
          • Excelへのインポートでうまくいかない場合は、Excelを新たに開いてからコピー&ペーストしてください。
           BCDEF
          2工事開始日2004/2/4祝日一覧
          3工事完了日2004/2/152004/1/1元旦
          4工事日数=NETWORKDAYS(C2,C3,E3:E5)2004/1/15成人の日
          52004/2/11建国記念日

        日付がその年の第何週目に当たるかを返します   ウイークナム
        =WEEKNUM(シリアル値,週の基準)
            週の基準 1:週の始まりを日曜日とします。
                 2:
        週の始まりを月曜日とします。
         (注) Excel2003以前のバージョンでは、エラー値 #NAME? が返される場合は、分析ツール アドインを組み込む必要があります。
         Excel2010以降では週の基準が増えています こちら をご覧ください。

        • 【使用例】週の基準を日曜日にするか、月曜日にするかで返る値が異なります。

          • C列は週の基準が「1=日曜日」、D列は「2=月曜日」の例です。
            3行目、5行目のように「日曜日の場合異なった値が返されます。
             BCD
            22004/1/1 (木)11
            32004/1/4 (日)21
            42004/1/5 (月)22
            52004/8/8 (日)3332
            62004/8/9 (月)3333
            7=WEEKNUM(B2,1)=WEEKNUM(B2,2)
            • カレンダーを書くと理解しやすくなります。
              2004/1/1のカレンダーの例です。1/4を例にすると、週の基準が異なると「1」または「2」と違いが出ます。
        • 【問題1】2004年7月分の売上表があります。第1週〜第3週の売上金額の合計を計算しなさい。なお、週の初めは日曜日からとします。

          •  BCD
            2日付売上金額
            32004/7/1 (木)10,00027
            42004/7/2 (金)11,00027
            52004/7/3 (土)12,00027
            62004/7/4 (日)13,00028
            72004/7/5 (月)14,00028
            82004/7/6 (火)15,00028
            92004/7/7 (水)16,00028
            102004/7/8 (木)17,00028
            112004/7/9 (金)18,00028
            122004/7/10 (土)19,00028
            132004/7/11 (日)20,00029
            142004/7/12 (月)21,00029
            152004/7/13 (火)22,00029
            16
            17第1週合計33,000
            18第2週合計112,000
            19第3週合計63,000
        • 【解答例1】

          • D列に第何週であるかを計算します。
          • 週の初めは日曜日とするので、=WEEKNUM(B3,1) ですが「1」は省略できますので、=WEEKNUM(B3) としました。
          • 第1週の合計にはSUMIF関数を使って =SUMIF(D3:D15,WEEKNUM($B$3),C3:C15) で求めました。
          • 第2週以降は 週の数に「+1」しています。
          •  BCD
            2日付売上金額
            32004/7/1 (木)10,000=WEEKNUM(B3)
            42004/7/2 (金)11,000=WEEKNUM(B4)
            52004/7/3 (土)12,000=WEEKNUM(B5)
            62004/7/4 (日)13,000=WEEKNUM(B6)
            72004/7/5 (月)14,000=WEEKNUM(B7)
            82004/7/6 (火)15,000=WEEKNUM(B8)
            92004/7/7 (水)16,000=WEEKNUM(B9)
            102004/7/8 (木)17,000=WEEKNUM(B10)
            112004/7/9 (金)18,000=WEEKNUM(B11)
            122004/7/10 (土)19,000=WEEKNUM(B12)
            132004/7/11 (日)20,000=WEEKNUM(B13)
            142004/7/12 (月)21,000=WEEKNUM(B14)
            152004/7/13 (火)22,000=WEEKNUM(B15)
            16
            17第1週合計=SUMIF(D3:D15,WEEKNUM($B$3),C3:C15)
            18第2週合計=SUMIF(D3:D15,WEEKNUM($B$3)+1,C3:C15)
            19第3週合計=SUMIF(D3:D15,WEEKNUM($B$3)+2,C3:C15)
        • 【問題2】2004年7月4日(日曜日)はこの月の第何週にあたるか計算しなさい。なお、週の初めは日曜日からとします。

          •  BC
            2日付
            32004/7/4第2週
        • 【解答例2】
          • 求める日付の週はWEEKNUM(B2)で求めることができます。
            その月の1日はDATE(YEAR(B2),MONTH(B2),1 となるので、その週はWEEKNUM(DATE(YEAR(B2),MONTH(B2),1)で求めます。
            この差に1を加えることで求めることができます。
          • 求めた数値の前後に文字を付け加えて完成となります。
            ="第"&WEEKNUM(B2)-WEEKNUM(DATE(YEAR(B2),MONTH(B2),1))+1&"週"
             BC
            2日付
            32004/7/4="第"&WEEKNUM(B2)-WEEKNUM(DATE(YEAR(B2),MONTH(B2),1))+1&"週"

        WEEKNUM関数 (Excel2010以降)

        • WEEKNUM関数はExcel2007以前でもありましたが、Excel2010では種類に指定できる数が増えています。
        • =WEEKNUM(シリアル値,[週の基準])]) の「週の基準」に従来は1か2を指定可能でしたが、11〜21の指定が可能になっています
          • 種類週の始まりシステム
            1 または省略日曜日1
            2月曜日1
            11月曜日1
            12火曜日1
            13水曜日1
            14木曜日1
            15金曜日1
            16土曜日1
            17日曜日1
            21月曜日2
          • なお、Excel2010では関数を入力するとポップアップヒントで引数まで教えてくれますので、「週の基準」を覚える必要はないかもしれません。
          • 日曜日と月曜日が複数ありますが、月曜日の3つについて比較しました。
            どこでカウントが変化しているのかが、この基準の違いになります。
            • 週の基準2,11(システム1)は1月1日が1となり、月曜日にカウントアップします。
              週の基準21(システム2)は一年の最初の木曜日を含む週を週1のように番号付けされるようです。
              このシステムは一般的にヨーロッパの週番号システムとして知られているそうで、ISO 8601で指定されているようです。

        日付のその年におけるISO週番号を返します   アイエスオ− ウイークナム
        =ISOWEEKNUM(日付)
         (注) Excel2013で追加された関数です。

        • Excel2010で追加された週基準の「21」に相当するものです。
        • ISO 8601で「最初の木曜日を含む週が、その年の第1週である。」と規定されたものです。
          よって、1月1日が金〜日曜日である時は前年の週として扱うことになります。
          また、JIS X 0301も同様の規定のようです。

        月末の日付を求めます   エンドオブマンス
        =EOMONTH(開始月,月数)
              開始月から指定した月数分だけ前後した月末の日付を求めます。
              求めた日付はシリアル値ですので、
        表示形式を日付に変更します
         (注) Excel2003以前のバージョンでは、エラー値 #NAME? が返される場合は、分析ツール アドインを組み込む必要があります。

        【問題】2003年2月10日に請求書を発行します。支払期限のセルに翌月末を表示しなさい。

        •  BC
          2請求日2003/2/10
          3支払期限2003/3/31

        【解答例】C3セルがシリアル値で表示されたら、【書式】→【セル】で表示形式を日付に変更します。

        •  BC
          2請求日2003/2/10
          3支払期限=EOMONTH(C2,1)
          () Excelへのエクスポートでエラーが出る場合はExcelを一旦終了後、再起動してから、C2セルに「2003/2/10」 C3セルに「=EOMONTH(C2,1)」を入力してください。

        【他の解答例】

        • 以下のように、”2ヵ月後の1日の前日”でも計算できます。
          • =DATE(YEAR(C2),MONTH(C2)+2,1)-1
          • =DATE(YEAR(C2),MONTH(C2)+2,0)

        土日、祝日を除いた月末を求めるには

        • =WORKDAY(EOMONTH(A1,0)+1,-1,祝日)  祝日の表をD3:D4に作成しているので
        • =WORKDAY(EOMONTH(A1,0)+1,-1,D2:D3) 
        • のように、翌月の1日を基準に前の稼働日を求めればよい。
        • BCD
          22005/4/1=WORKDAY(EOMONTH(B2,0)+1,-1,D3:D4)祝日
          3=WORKDAY(DATE(YEAR(B2),MONTH(B2)+1,1),-1,D3:D4)2005/4/29
          42005/5/3

        指定した月数分だけ前後した日付   イーデイト
        =EDATE(開始日,月数)
           開始日から起算して、指定された月数だけ前または後の日付に対応するシリアル値を返します。
         (注) Excel2003以前のバージョンでは、エラー値 #NAME? が返される場合は、分析ツール アドインを組み込む必要があります。

        【問題】2003年2月10日に請求書を発行します。支払期限の3ヶ月後の日付を表示しなさい。

        •  BC
          2請求日2003/2/10
          3支払期限2003/5/10

        【解答例】

        •  BC
          2請求日2003/2/10
          3支払期限=EDATE(C2,3)
          • C3セルがシリアル値で表示されたら、【書式】→【セル】で表示形式を日付に変更します。

        【Memo】月末からの計算は下表のように、該当日が無い場合は月末の日付となります。

        行と列を入れ替える(TRANSPOSE関数)

        行と列を入れ替える   トランスポーズ
        =TRANSPOSE(配列)
         数式を配列数式として入力する必要があります:[Ctrl]キーと[Shift]キーを押したまま[Enter]で入力を確定します。

        • 問題
          • 下図のようなデータ表があります。
            B3:E9のデータを右側のG3:M6に行と列を入れ替えて表示しなさい。
        • 解答例
          1. 表示先のG3:M6セルを選択。
          2. G3セルに=TRANSPOSE(B3:E9) と入力し、[Ctrl]+[Shift]+[Enter]で入力を確定します。
          3. 数式バーには {=TRANSPOSE(B3:E9)} と表示され、配列数式として入力されたのが確認できます。
            表示先 G3:M6には行と列が入れ替えて表示されました。
          4. 一応、上の操作で完了なのですが、この表を元データとして使用したいので数式を値に変更したいと思います。
            G3:M6を選択して[コピー]を実行。そのままの状態で、[貼り付け]→[値]を実行。
          5. 数式が値に変更できました。
        • なお、関数を使わず、行列の入れ替えを行うことができます。
          1. 元データを選択して[コピー]を実行。
          2. 貼り付け先G3セルを選択して、[貼り付け]→[行列を入れ替える]を実行。
          3. 行列が入れ替えて貼り付けられました。

        表引き関数(検索・行列の関数・VLOOKUP関数)

        • 他のシートやセル範囲に入力された対照表などからデータを読み込んだり、配置したりするのに使用できます。
          エクセルで最も必要とされる関数でありながら理解しがたい関数でもあります。
        • 検索範囲が左端列ならVLOOKUP関数、行頭ならHLOOKUP関数、任意の列/行ならINDEX関数といった具合に使い分ける必要があります。
        • 文字を検索する関数(FIND関数,SEARCH関数)については文字列の関数(1)で説明しています。
        列方向の検索(VLOOKUP関数)行方向の検索(HLOOKUP関数)
        昇順データの検索(LOOKUP関数)何番目に位置するかを検索(MATCH関数)
        行位置と列位置を指定して検索(INDEX関数)セル,セル範囲名を計算式で参照(INDIRECT関数)
        指定された行/列数だけシフトする(OFFSET関数)セルの参照を文字列で返す(ADDRESS関数)
        VLOOKUP関数とMATCH関数の複合値のリストから指定した値を取出す(CHOOSE関数)
        リンクの設定(HYPERLINK関数)行番号・列番号を返す(ROW関数・COLUMN関数)
        セルのデータ型を調べる(TYPE関数)

        範囲の左端の列で、検索値を検索し、値の見つかった行の、列位置のセルの内容を表示する。   ブイルックアップ
        =VLOOKUP(検索値,範囲,列位置,検索の型)
           検索の型:「TRUE」もしくは[省略](「1」と入力してもOK)
                検索値が見つからない場合に、
        検索値未満で最も大きい値が使用されます。
              
        (注)検索範囲の値は昇順に並んでおく必要があります。
           検索の型:「FALSE」(「0」と入力してもOK)
              
        検索値と完全に一致する値だけが検索され、見つからない場合はエラー値 #N/A が返されます。
                文字列の検索に適します。

        [A] 検索値が文字列の場合 (検索の型:FALSE)
            (注)検索値が文字列の場合で昇順に並んでいる時は検索の型を[TRUE]でOKです。
              ただし、昇順の並べ替えで基準は[ふりがな]を使用してはいけません。日本語の場合には要注意です。

        • 商品一覧表(H3:J6)があります。
        • 見積書の品番を入力すると商品名と単価が自動的に入力されるようにC4:D6セルに数式を入れなさい。
        •  BCDEFGHIJ
          2見積書商品一覧表
          3品番商品名単価数量小計品番商品名単価
          4B01ラジオ5,0001 5,000A01テレビ50,000
          5C01ビデオデッキ20,0002 40,000B01ラジオ5,000
          6A01テレビ50,0003150,000C01ビデオデッキ20,000
          7 合計195,000
        【解答例1】
        • C4セルの場合
          • =VLOOKUP(B4,$H$4:$J$6,2,FALSE) または =VLOOKUP(B4,$H$4:$J$6,2,0)となります。
            • 検索値:品番の入力されているB4セルになります。
            • 範囲:商品一覧のデータ部分H4:J6を絶対参照で指定します。
              (範囲を絶対参照にするのはC4セルの数式をC5,C6セルにコピーする時値が変化しないようにするためです。)
            • 列位置:範囲の2列目ですので「2」とします。
            • 検索の型:文字の検索や固有品番などの検索では[FALSE] にします。[FALSE]のかわりに[0]でもOK
        • ”B4セルの『B01』を範囲『H4:J6』の左端の列から探し、完全に一致した値が有ったら2列目の値を返す”という意味になります。
         BCDEFGHIJ
        2見積書商品一覧表
        3品番商品名単価数量小計品番商品名単価
        4B01=VLOOKUP(B4,$H$4:$J$6,2,FALSE)=VLOOKUP(B4,$H$4:$J$6,3,FALSE)1 5,000A01テレビ50,000
        5C01=VLOOKUP(B5,$H$4:$J$6,2,FALSE)=VLOOKUP(B5,$H$4:$J$6,3,FALSE)2 40,000B01ラジオ5,000
        6A01=VLOOKUP(B6,$H$4:$J$6,2,FALSE)=VLOOKUP(B6,$H$4:$J$6,3,FALSE)3150,000C01ビデオデッキ20,000
        7合計195,000

        エラー処理  

        • 検索値が検索する範囲にないときはエラー#N/Aが表示されます。
          #N/Aが表示されないようにするにはいろいろな方法があります。
        • ISNA関数やISERROR関数で処理する

          • VLOOKUP関数がエラーとなるか否かを調べてIF関数で対処します。
          • エラーの表示を無くするには IF関数とISNA関数を使います。
            C4セルの例:=IF(ISNA(VLOOKUP(B4,$H$4:$J$6,2,FALSE)),"",VLOOKUP(B4,$H$4:$J$6,2,FALSE))
          • ISERROR関数でもOKです。
            =IF(ISERROR(VLOOKUP(B4,$H$4:$J$6,2,FALSE)),"",VLOOKUP(B4,$H$4:$J$6,2,FALSE))
        • COUNTIF関数で処理する

          • 検索値が検索範囲にあるか否かをCOUNTIF関数で調べてIF関数で対処します。
          • =IF(COUNTIF($H$4:$H$6,B7)=0,"",VLOOKUP(B7,$H$4:$J$6,2,FALSE))

        (Step Up)共通の数式に変更する

        • C4セルの数式を =VLOOKUP($B4,$H$4:$J$6,COLUMN(B1),FALSE) とするとひとつの式で済みます。
          検索値を列固定の複合参照にし、列位置をCOLUMN関数で与えています。
          (D4セルへフィルハンドルをドラッグしてD4セルへコピーし、そのまま、フィルハンドルをC6:D6までドラッグしてコピーします。)
        • (説明)
          C4セルの列位置「2」を、D4セルでは「3」になるように細工をします。
          COLUMN関数を使うと、右方向へコピーして値が1増加するので「2」を返す「COLUMN(B1)」とすれば良さそうです。
          この場合重要なのは「B」=「2」なのでCOLUMN(B100)でも良く、「B1」としたのは見た目だけ?のことです。

        検索範囲に名前を定義する場合  

        1. セル範囲 H4:J6 に『商品一覧表』と名前を定義します。
          ポイント:検索列が一番左になるようにセル範囲を選択して、名前を定義します。)
          (A) メニューバーからの方法(B) 名前ボックスを使う方法
          1. セル範囲 H4:J6 をドラッグして選択。
          2. メニューバーの【挿入】→【名前】→【定義】を選択。
          3. 【名前の定義】ダイアログの名前に『商品一覧表』と入力し、【OK】ボタンをクリックします。
          4. これで、セル範囲に名前が定義されます。
          vlookup11
          1. セル範囲 H4:J6 をドラッグして選択。
          2. 【名前ボックス】に『商品一覧表』と入力し、 【Enter】 キーを押します。
          3. これで、セル範囲に名前が定義されます。
          vlookup12
        2. C4セルの数式は =VLOOKUP(B4,商品一覧表,2,FALSE)  D4セルの数式は =VLOOKUP(B4,商品一覧表,3,FALSE) とします。
          • 列位置をCOLUMN関数で置き換え、C4セル=VLOOKUP(B4,商品一覧表,COLUMN(B1),FALSE)とすれば、D4セルへコピーすればOK。
        3. C4:D4セルを選択し、オートフィルでC6:D6まで数式をコピーして完成です。
         BCDEFGHIJ
        2見積書商品一覧表
        3品番商品名単価数量小計品番商品名単価
        4B01=VLOOKUP(B4,商品一覧表,2,FALSE)=VLOOKUP(B4,商品一覧表,3,FALSE)1 5,000A01テレビ50,000
        5C01=VLOOKUP(B5,商品一覧表,2,FALSE)=VLOOKUP(B5,商品一覧表,3,FALSE)2 40,000B01ラジオ5,000
        6A01=VLOOKUP(B6,商品一覧表,2,FALSE)=VLOOKUP(B6,商品一覧表,3,FALSE)3150,000C01ビデオデッキ20,000
        7 合計195,000
         (上の表はExcelへコピーすると #NAME? エラーとなります。 セル範囲 H4:J6 に『商品一覧表』と名前を定義するとエラーが解消されます。)

        [B] 検索値が数値範囲の場合 (検索の型:TRUE)        (注)検索値が昇順に並んでいる必要があります。
              検索値が数値の範囲ではなく、その値に対応する時は[FALSE]とします。

        【問題2】成績の評価を付けたいと思います。右の評価一覧表(G4:J6)にしたがって、D4:E6セルに数式を入力しなさい。
        •  BCDEFGHIJ
          2評価一覧表
          3名前得点評価A評価B得点評価A評価B
          4今田500×不可
          5河野20×不可40
          6山田7070

        【解答例2-1】 

        • 解答例1とほとんど同じですが、数値の範囲での検索になりますので、検索の型を[TRUE]または「1」もしくは[省略]します。
          • 検索の型を省略:=VLOOKUP(C4,$G$4:$J$6,3)
          • 検索の型をTRUE:=VLOOKUP(C4,$G$4:$J$6,3,TRUE)
          • 検索の型を1  :=VLOOKUP(C4,$G$4:$J$6,3,1)
          • 上の3つは同じ結果になります。
        • この場合、得点欄の値以上の意味になります。得点欄(G列)は昇順に並んでいることが必要です。
           BCDEFGHIJ
          2評価一覧表
          3名前得点評価A評価B得点評価A評価B
          4今田50=VLOOKUP(C4,$G$4:$J$6,3)=VLOOKUP(C4,$G$4:$J$6,4)0×不可
          5河野20=VLOOKUP(C5,$G$4:$J$6,3)=VLOOKUP(C5,$G$4:$J$6,4)40
          6山田70=VLOOKUP(C6,$G$4:$J$6,3)=VLOOKUP(C6,$G$4:$J$6,4)70

        (解答例2-2)検索範囲に名前を定義して使う方法

        • セル範囲 G4:J6 に『評価一覧』と名前を定義すると、
          • D4セルの数式は =VLOOKUP(C4,評価一覧,3)
          • E4セルの数式は =VLOOKUP(C4,評価一覧,4)
          となります。
        • D4:E4 セルを選択し、オートフィルでD6:E6セルまで数式をコピーして完成です。
        • 名前の定義方法:G4:J6を選択し、挿入→名前→定義 で名前に「評価一覧」と入力する。
        • 別解:D4セル=VLOOKUP(C4,評価一覧,COLUMN(C1)) として、E4セルへコピーしてもOKです。

        [C] 検索表を使用しない方法  (数式中に検索範囲のデータを書く方法)  

        • (解答例2-3) シートに検索表を作成しない方法
          • 数式内に対応する値を並べて記述します。
          • D4セルの数式 =VLOOKUP(C4,{0,"×","不可";40,"△","良";70,"○","優"},2)
          • E4セルの数式 =VLOOKUP(C4,{0,"×","不可";40,"△","良";70,"○","優"},3)
          • D4:E4 セルを選択し、オートフィルでD6:E6セルまで数式をコピーして完成です。

        [D] 検索値が見つからず #N/Aエラー が返される場合 

        • シート上で検索値が検索範囲内の値と同じ値が入力されているように見えているのに、エラーとなるときがあります。
        1. 検索値にスペースが紛れ込んでいないか確認してみます。特に最後にスペースが含まれる場合は気づきにくいです。
          • 半角スペースと全角スペースを取り除きます。
            [ホーム]タブの[検索と選択]→[置換]を実行。ショートカットキーは[Ctrl]+[H]です。
            検索する文字列:半角または全角スペースを入力します。(画面では見た目の変化はないです)
            置換後の文字列:何も入力しません。
            『半角と全角を区別する』にチェックは入れません。(【オプション】をクリックすると表示されます)
          • 【すべて検索】ボタンをクリックし、【すべて置換】をクリックすると、一度に置換されます。
            確認しながら置換するときは、【次を検索】と【置換】を使います。
        2. 他のソフトなどで作成したデータで空白文字CHAR(160)が紛れ込んでくることがあります。
          • CHAR(160)はTRIM関数やCLEAN関数では取り除くことができないので、SUBSTITUTE関数で取り除きます。その後、形式を選択して貼り付けの「値」でデータを置き換えます。
            • =SUBSTITUTE(A1,CHAR(160),"")
        3. 表示形式は文字列であるが、データは数値と認識されていることがあります。
          この様な場合は、=TYPE(A1)のようにTYPE関数を使ってセルのデータ形式を確認します。
          • 数値データを文字列に変更したいときは、[データ]タブの[区切り位置]を実行し、ウィザード 3/3 で「文字列」を指定します。
          • 文字列の数字を数値に変更したい場合は、どこかのセルに数値の「1」を入力しコピー、変更したいセルを選択して形式を選択して貼り付けで「乗算」にチェックを入れて【OK】とします。
          • セルのデータ型を調べる   タイプ
            =TYPE(データタイプ)
               数値は「1」 、テキストは「2」 、論理値は「4」
               エラー値は「16」 、配列は「64」を返します。

            1. C列にD列のようなそれぞれの値や数式を入力します。
            2. C5,C6はそれぞれの結果「FALSE」「#VALUE!」が表示されます。
            3. C7はTYPE関数の戻り値「64」が表示され、E7は戻り値「64」は数値なので、「1」が返されます。
              BCDEF
              2データタイプ入力データC列の内容TYPE関数の戻り値E列の数式
              3数値10←101←=TYPE(C3)
              4テキスト文字です←文字です2←=TYPE(C4)
              5論理値FALSE←=A1="moji"4←=TYPE(C5)
              6エラー#VALUE!←=B1/B216←=TYPE(C6)
              7配列64←=TYPE({1,2;3,4})1←=TYPE(C7)

        [E] 検索条件が2列(複数)ある場合 

        1. 検索条件を1つのセルにまとめます。(作業列を利用します。)
          • B3セルに=C3&"_"&D3 とC3セルとD3セルの値をつないで1つにします。B8セルまで数式をコピーします。
            なお、区切り文字にはデータに使用されない文字を使います。
            ここでは「_」アンダーバーを使ってみました。
            BCDEFGH
            2アーチスト種別価格アーチスト吉村拓郎
            3池田陽水_LP池田陽水LP2500種別CD
            4池田陽水_CD池田陽水CD3000価格2900
            5池田陽水_DVD池田陽水DVD4000
            6吉村拓郎_LP吉村拓郎LP2600
            7吉村拓郎_CD吉村拓郎CD2900
            8吉村拓郎_DVD吉村拓郎DVD4100
          • H4セルには=VLOOKUP(H2&"_"&H3,$B$3:$E$8,4,FALSE)とします。
        2. SUMPRODUCT関数を使う事もできます。この場合B列は不要です。
          • 上の例ではH2セルに=SUMPRODUCT((C3:C8=H2)*(D3:D8=H3),E3:E8)とします。
          • なお、求める値が数値である場合は上のようにSUMPRODUCT関数が使えます。
            しかし、文字列を求める場合は使用できませんので、上記のように作業列を利用しVLOOKUP関数を使います。

        範囲の上端の行で、検索値を検索し、値の見つかった列の、行位置のセルの内容を表示する。   エイチルックアップ
        =HLOOKUP(検索値,範囲,行位置 [,検索の型])
           検索の型:「TRUE」もしくは [省略](「1」と入力してもOK)
                検索値が見つからない場合に、
        検索値未満で最も大きい値が使用されます。
              
        (注)検索範囲の値は昇順に並んでおく必要があります。
           検索の型:「FALSE」(「0」と入力してもOK)
              
        検索値と完全に一致する値だけが検索され、見つからない場合はエラー値 #N/A が返されます。
                文字列の検索に適します。

        【問題】

        • 右の評価一覧表にしたがって、D4:E6セルの評価を表示する数式を入れなさい。
        • なお、H3セルの「0」は0以上40未満 I3セルの「40」は40以上70未満 J3セルの「70」は70以上を意味します。
        •  BCDEFGHIJ
          2 評価一覧表
          3名前得点評価A評価B得点04070
          4今田50評価A×
          5河野20×不可評価B不可
          6山田70

        【解答例1】

        • VLOOKUP関数と同じです。参照表の行と列が入れ替わっています。今回はTRUEを入れました。(省略または1としてもOKです)
        • BCDEFGHIJ
          2 評価一覧表
          3名前得点評価A評価B得点04070
          4今田50=HLOOKUP(C4,$H$3:$J$5,2,TRUE)=HLOOKUP(C4,$H$3:$J$5,3,TRUE)評価A×
          5河野20=HLOOKUP(C5,$H$3:$J$5,2,TRUE)=HLOOKUP(C5,$H$3:$J$5,3,TRUE)評価B不可
          6山田70=HLOOKUP(C6,$H$3:$J$5,2,TRUE)=HLOOKUP(C6,$H$3:$J$5,3,TRUE)

        【解答例2】検索範囲に名前を定義して使う方法

        • セル範囲 H3:J5 に『評価一覧』と名前を定義すると、
          • D4セルの数式は =HLOOKUP(C4,評価一覧,2)
          • E4セルの数式は =HLOOKUP(C4,評価一覧,3)
          となります。
        • D4:E4 セルを選択し、オートフィルでD6:E6セルまで数式をコピーして完成です。
        • 別解:D4セルに=HLOOKUP(C4,評価一覧,COLUMN(B1))としてもOKです。

        LOOKUP              ルックアップ
        =LOOKUP(検査値,検査範囲,対応範囲)  [ベクトル形式]
           対応範囲:1行/1列のみのセル範囲を指定。検査範囲と同じサイズであること。
        (注)検査範囲の値は昇順に並べておく必要があります。英字の大文字と小文字は区別されません。
            また、日本語文字を並べ替える場合「ふりがなを使用しない」で並べ替えます。

        =LOOKUP(検査値,配列) [配列形式]

        【問題】成績の評価を付けたいと思います。右の評価一覧表(G4:J6)にしたがって、D4:E6セルに数式を入力しなさい。

        •  BCDEFGH
          2評価一覧表
          3名前得点評価A得点評価A
          4今田500×
          5河野20×40
          6山田7070

        【解答例】

        • LOOKUP関数の場合、得点欄の値以上の意味になります。得点欄(G列)は昇順に並んでいることが必要です。
        •  BCDEFGH
          2評価一覧表
          3名前得点評価A得点評価A
          4今田50=LOOKUP(C4,$F$4:$F$6,$H$4:$H$6)0×
          5河野20=LOOKUP(C5,$F$4:$F$6,$H$4:$H$6)40
          6山田70=LOOKUP(C6,$F$4:$F$6,$H$4:$H$6)70

        【別解】配列形式を使うと、D4セルは以下のように書くこともできます。

        • =LOOKUP(C4,$F$4:$H$6)
          (範囲の右端の列の値を返す。)
        • =LOOKUP(C4,{0,"×";40,"△";70,"○"})
          =LOOKUP(C4,{0,40,70;"×","△","○"})

        (参考) LOOKUP関数のその他の用途(文字列から数値を取り出す方法など)

        範囲内で値を検索し、見つかった値が何番目に位置するかを数値で返す。   マッチ
        =MATCH(検索値,範囲 [,照合の型])
           照合の型:「0」完全に一致する値を検索する
                「1」一致するものがない場合、検索値以下の最大の値を検索する。(データは
        昇順に並んでいることが必要)
                「-1」一致するものがない場合、検索値よりも大きい最小の値を検索する。(データは
        降順に並んでいることが必要)

        [A] MATCH関数で完全に一致する値を検索する

        【問題】

        • 到着地の名古屋(C9セル)は運賃表の左から何番目ですか?E9セルに数式を入れなさい。
        • 出発地の熊本(C10セル)は運賃表の上から何番目ですか?E10セルに数式を入れなさい。
        •  BCDEF
          2運賃表
          3東京名古屋大阪
          4鹿児島50,00040,00035,000
          5宮崎45,00035,00030,000
          6熊本40,00030,00025,000
          7福岡30,00020,00015,000
          8
          9到着地名古屋は左から2番目です。
          10出発地熊本は上から3番目です。
          11

        【解答例】

        • 到着地(C9セル)は範囲(C3:E3)からMATCH関数の完全一致で求めます。
        • 出発地(C10セル)は範囲(B4:B7)からMATCH関数の完全一致で求めます。

        (別解) VLOOKUP関数やINDEX関数とMATCH関数を組み合わせて求める方法

        • VLOOKUP関数やINDEX関数と組み合わせて運賃を求めることができます。(下の方に説明があります)
        • (注)VLOOKUP関数、INDEX関数のどちらを使っても同じ結果が得られますが、VLOOKUP関数とINDEX関数とで中に使うMATCH関数の範囲が異なります。
        • BCDEF
          2運賃表
          3東京名古屋大阪
          4鹿児島50,00040,00035,000
          5宮崎45,00035,00030,000
          6熊本40,00030,00025,000
          7福岡30,00020,00015,000
          8
          9到着地名古屋は左から=MATCH(C9,C3:E3,0)番目です。
          10出発地熊本は上から=MATCH(C10,B4:B7,0)番目です。
          11運賃は=VLOOKUP(C10,B4:E7,MATCH(C9,B3:E3,0),FALSE)
          12運賃は=INDEX(C4:E7,MATCH(C10,B4:B7,0),MATCH(C9,C3:E3,0)

        MATCH関数で検索値以下の最大値を検索する。

        • MATCH関数の照合の型に「1」を使います。
        • 検索範囲(B3:E3)の20〜80の中で検索値(B8)の45以下で最も近い値は(C3)の40であり、
        • (C3)の40は検索範囲(B3:E3)の左から2番目にあるので、答えは2となります。
        • vlookup05

        MATCH関数で検索値よりも大きい最小の値を検索する。

        • MATCH関数の照合の型に「-1」を使います。
        • 検索範囲(B3:E3)の20〜80の中で検索値(B8)の85以上で、最も近い値は(B3)の100であり、
        • (B3)の100は検索範囲(B3:E3)の左から1番目にあるので、答えは1となります。
        • vlookup06

        範囲の中から、行位置と列位置を指定して値を取り出す  インデックス
        =INDEX(範囲,行位置,列位置 [,領域番号])
            領域番号は、離れた場所にある複数の範囲を指定する時に使う。

        【問題1】INDEX関数とMATCH関数を使って運賃を求めなさい。

        • BCDE
          2運賃表
          3東京名古屋大阪
          4鹿児島50,00040,00035,000
          5宮崎45,00035,00030,000
          6熊本40,00030,00025,000
          7福岡30,00020,00015,000
          8
          9到着地名古屋
          10出発地熊本
          11運賃は30,000

        【解答1例】

        • INDEX関数での検索範囲はデータの範囲C4:E7で、
        • 行位置はMATCH関数で出発地の熊本(C10)の位置をB4:B7の範囲から検索し、
        • 列位置はMATCH関数で到着地名古屋(C9)の位置はC3:E3の範囲から検索します。
        • MATCH関数の照合の型は「完全に一致」ですので「0」を指定しています。
        • BCDEF
          2運賃表
          3東京名古屋大阪
          4鹿児島50,00040,00035,000
          5宮崎45,00035,00030,000
          6熊本40,00030,00025,000
          7福岡30,00020,00015,000
          8
          9到着地名古屋
          10出発地熊本
          11運賃は=INDEX(C4:E7,MATCH(C10,B4:B7,0),MATCH(C9,C3:E3,0))

        【問題2】大人運賃表と子供運賃表を使って運賃を求めなさい

        • BCDEFGHIJ
          2運賃表 (A:大人)運賃表 (B:子供)
          3東京名古屋大阪東京名古屋大阪
          4鹿児島50,00040,00035,000鹿児島25,00020,00017,500
          5宮崎45,00035,00030,000宮崎22,50017,50015,000
          6熊本40,00030,00025,000熊本20,00015,00012,500
          7福岡30,00020,00015,000福岡15,00010,0007,500
          8
          9到着地名古屋
          10出発地熊本
          11大人/子供子供
          12運賃は15,000

        【解答2例】

        • =INDEX(範囲,行位置,列位置 ,領域番号)の形式を使います。
        • 範囲に(C4:E7,H4:J7) と大人運賃表と子供運賃表の2つの領域を指定しています。
        • 領域番号の指定を MATCH(C11,{"大人","子供"},0) として、大人なら「1」、子供なら「2」が返るようにしています。
        • BCDEFGHIJ
          2運賃表 (A:大人)運賃表 (B:子供)
          3東京名古屋大阪東京名古屋大阪
          4鹿児島50,00040,00035,000鹿児島25,00020,00017,500
          5宮崎45,00035,00030,000宮崎22,50017,50015,000
          6熊本40,00030,00025,000熊本20,00015,00012,500
          7福岡30,00020,00015,000福岡15,00010,0007,500
          8
          9到着地名古屋
          10出発地熊本
          11大人/子供子供
          12運賃は=INDEX((C4:E7,H4:J7),MATCH(C10,B4:B7,0),MATCH(C9,C3:E3,0),MATCH(C11,{"大人","子供"},0))

        VLOOKUP とMATCH の複合     縦横の検索表から、一致する値を取り出すのに、VLOOKUP関数とMATCH関数を組み合わせて使う方法です。

        【問題】VLOOKUP関数とMATCH関数を使って運賃を求めなさい。

        • BCDE
          2運賃表
          3東京名古屋大阪
          4鹿児島50,00040,00035,000
          5宮崎45,00035,00030,000
          6熊本40,00030,00025,000
          7福岡30,00020,00015,000
          8
          9到着地名古屋
          10出発地熊本
          11運賃は30,000

        【解答例】

        • 出発地熊本(C10セル)の行位置をVLOOKUP関数で求めます。
          VLOOKUP関数は左端の列を検索するので、範囲は『B7:E7』となります。
          =VLOOKUP(C10,B4:E7,○○,FALSE)
        • 到着地の名古屋(C9セル)が何列目になるのかMATCH関数で求めます。
          (注)VLOOKUP関数は検索列(一番左の列)を含む範囲になるので、MATCH関数の範囲は『B3:E3』とします。
          MATCH(C9,B3:E3,0) 
        • この両方の式を合わせて完成です。
          =VLOOKUP(C10,B4:E7,MATCH(C9,B3:E3,0),FALSE)
        • BCDE
          2運賃表
          3東京名古屋大阪
          4鹿児島50,00040,00035,000
          5宮崎45,00035,00030,000
          6熊本40,00030,00025,000
          7福岡30,00020,00015,000
          8
          9到着地名古屋
          10出発地熊本
          11運賃は=VLOOKUP(C10,B4:E7,MATCH(C9,B3:E3,0),FALSE)

        VLOOKUP と MATCH および INDIRECT の複合    参照する表が2種類ある場合、切り替えて使いたい時にINDIRECT関数が使えます。
         インダイレクト

        =INDIRECT(参照文字列,参照形式)
             参照文字列で入力したセル、セル範囲名を計算式で参照できるようにする。
             参照形式:TRUE または省略した場合、A1形式でのセル参照。
                    FALSE R1C1形式でのセル参照。

        【料金計算の例】

        • 料金表が【大人】と【子供】の2種類あります。計算時にこれらの表を切り替えて使う方法です。
        1. 大人の料金表のE4:H7の範囲に【大人】と名前をつけます。
        2. 大人の料金表の到着地行E3:H3に【大人到着地】と名前をつけます。
        3. 子供の料金表のE11:H24の範囲に【子供】と名前をつけます。
        4. 子供の料金表のタイトル行E10:H20に【子供到着地】と名前をつけます。
        5. C5に数式 =VLOOKUP(C2,INDIRECT(B4),MATCH(C3,INDIRECT(B4&"到着地"),0),FALSE)*C4 を、入力します。

        【説明】

        • INDIRECT(B4&"到着地"):B4セルの文字列が『子供』であれば『子供到着地』を参照します。
        • MATCH(C3,INDIRECT(B4&"到着地"),0),FALSE):でC3セルの到着地『名古屋』の列位置を返します。
        • VLOOKUP(C2,INDIRECT(B4)・・・:B4セルの文字列『子供』ならば、セル範囲『子供』からC2セルの出発地『宮崎』を検索し、 
        • MATCH関数で求めた列位置の一人分の料金を出します。そして、人数を掛けて料金を計算しています。

        (ステップアップ)入力規則を使って入力値を制限する

        • 入力ミスを防ぐ&マウス操作のみにするため、C2,C3,B4セルには入力規則をつけます。
        • 【データ】→【入力規則】を選択し、
          • C2には【リスト】で【E4:E7】
          • C3には【リスト】で【F3:H3】
          • B4には【リスト】で【大人,子供】 
          とすれば、リストからの選択となり、入力しなくても良いです。
        • 更に、C4にも【リスト】で【1,2,3,4,5,6】としておけば、マウス操作のみで料金が表示されます。

        vlookup10

        OFFSET      オフセット
        =OFFSET(基準,行数,列数 [,高さ,幅]
             基準のセルまたはセル範囲から指定された行数と列数だけシフトした位置にある高さと幅のセル
             またはセル範囲の参照 (オフセット参照) を返します。

        【問題】OFFSET関数とMATCH関数を使って運賃を求めなさい。

        • BCDE
          2運賃表
          3東京名古屋大阪
          4鹿児島50,00040,00035,000
          5宮崎45,00035,00030,000
          6熊本40,00030,00025,000
          7福岡30,00020,00015,000
          8
          9到着地名古屋
          10出発地熊本
          11運賃は30,000

        【解答例】

        • 基準のセルを「B3」として、出発地を「B4:B7」と一致する行数、到着地を「C3:E3」と一致する列数を求めます。
        • BCDE
          2運賃表
          3東京名古屋大阪
          4鹿児島50,00040,00035,000
          5宮崎45,00035,00030,000
          6熊本40,00030,00025,000
          7福岡30,00020,00015,000
          8
          9到着地名古屋
          10出発地熊本
          11運賃は=OFFSET(B3,MATCH(C10,B4:B7),MATCH(C9,C3:E3,0))

        ADDRESS      アドレス
        =ADDRESS(行番号,列番号 [,参照の型,参照形式,シート名])
             行番号と列番号で指定したセルの参照を文字列で返します。
             行番号: セル参照に使用する行番号を指定します。
             列番号: セル参照に使用する列番号を指定します。
             参照の型: セル参照の種類を指定します。
              参照の型 結果として返される参照形式
               1 または省略 :絶対参照
               2      :行は絶対参照、列は相対参照
               3      :行は相対参照、列は絶対参照
               4      :相対参照

        【問題】ADDRESS関数を使って運賃を求めなさい。

        • BCDE
          2運賃表
          3東京名古屋大阪
          4鹿児島50,00040,00035,000
          5宮崎45,00035,00030,000
          6熊本40,00030,00025,000
          7福岡30,00020,00015,000
          8
          9到着地名古屋
          10出発地熊本
          11運賃は30,000

        【解答例】

        • 行番号、列番号を求めるためにMATCH関数の検索範囲をそれぞれB1,A3からとしています。
        • ADDRESS関数ではセル参照を返しますので、INDIRECT関数でセルの値を返すようにします。
        • BCDE
          2運賃表
          3東京名古屋大阪
          4鹿児島50,00040,00035,000
          5宮崎45,00035,00030,000
          6熊本40,00030,00025,000
          7福岡30,00020,00015,000
          8
          9到着地名古屋
          10出発地熊本
          11運賃は=INDIRECT(ADDRESS(MATCH(C10,B1:B7,0),MATCH(C9,A3:E3,0)))

        値のリストから指定した値を取出す      チューズ
        =CHOOSE(インデックス,値1,値2,値3・・・)
        インデックスに指定した番号に基づいて、最大 29 個の値の中から 1 つの値だけを選択できます。

        • インデックスに指定した番号に基づいて、最大 29 個の値の中から 1 つの値だけを選択できます。
          インデックスが 1 の場合は値1 が返され、2 の場合は値2 が返されます。
        • インデックスが 1 より小さいか、引数リストの値の個数よりも多い場合、エラー値 #VALUE! が返されます。
        • インデックスに小数点以下の値が含まれていても、整数部分だけが計算に使われます。
        • 値1,値2,... インデックスに基づいて選択される値または動作を 1 〜 29 個まで指定します。
          これらの引数には、数値、セル参照、名前、数式、関数、または文字列を指定できます。

        【例】

        • B2の値によって、「1です」「2です」・・・「4です」と表示します。
          C2セル =CHOOSE(B2,"1です","2です","3です","4です") としてC5までコピーします。
          BC
          222です
          30#VALUE!
          45#VALUE!
          53.43です
        • 上記エラーを表示しないようにするには
          • =IF(OR(B2<1,B2>4),"",CHOOSE(B2,"1です","2です","3です","4です"))
          • =IF(ISERROR(CHOOSE(B2,"1です","2です","3です","4です")),"",CHOOSE(B2,"1です","2です","3です","4です"))
          といった式が考えられます。

        ファイルや別シートのセルへリンクを張る      ハイパーリンク
        =HYPERLINK(リンク先,別名)
           リンク先:文字列を二重引用符で囲んで指定するか、またはリンクが設定されているセルを文字列として指定する

        【例】

        • リンク先は "[ファイル名]シート名!セル" のように記述します。
        • 同一ファイル(ブック)の場合には "#Sheet2!A2" のようにシート名の前に「#」を入れます。
        • Webアドレスの場合には「=HYPERLINK("http://www.eurus.dti.ne.jp/yoneyama/","WordとExcelの小部屋")」とします。

        ハイパーリンクの挿入を使う方法

        【操作手順】同一ファイルの別シートへのリンク方法を例に説明します。

        1. メニューバーの【挿入】→【ハイパーリンク】を選択。
        2. リンク先:このドキュメント内
          ドキュメントの場所:Sheet2 を選択
          セル参照を入力してください:B2 と入力
          表示文字列:シート2のB2へリンク としました。(何でも良い)
        3. 数式バーには表示文字列に入力した文字が表示されます。

        ハイパーリンクの削除

        行番号を返す      ロウ
        =ROW(範囲)  引数として指定された範囲の行番号を返します。
         ロウズ
        =ROWS(配列) セル範囲または配列の行数を返します。

        列番号を返す      コラム
        =COLUMN(範囲)  引数として指定された範囲の列番号を返します。
         コラムズ
        =COLUMNS(配列) セル範囲または配列の列数を返します。

        • 範囲を省略すると、ROW・COLUMN関数が入力されているセルの行番号・列番号を返します。
        • 【例1】
        • 【例2】ROW関数を使って連番を作成すると、削除しても連番が維持できます。
          • A2には「=1000+ROW()-1」とし、A11までコピーします。
          • C2〜C11は「1001,1002・・・1010」と数値を入力しています。
          • 6行目を削除すると、A列は連番が維持されています。C列は1005が欠けています。
          削除前削除後
        • 【例3】
          • COLUMN関数をVLOOKUP関数の列位置に使うことができます。
            数式1つをコピーすることで表が作成できます。
          • C2に「=VLOOKUP($B2,$F$2:$H$5,COLUMN(B1))」と入力し、D2までフィルハンドルをドラッグしてコピー。
            更に、(C2:D2が選択状態なので)フィルハンドルをD6までドラッグしてコピーすると完成。

        Excel(エクセル)基本講座:VLOOKUP関数の使い方

        検索値が文字列の場合(検索の型:FALSE)エラー処理(#N/Aを表示しない)
        検索値が数値範囲の場合(検索の型:TRUE)検索範囲に名前を定義する場合
        検索表を使用しない方法#N/Aエラー が返されるいろいろなケース
        セルのデータ型を調べる検索条件が2列(複数)ある場合
        VLOOKUP関数とMATCH関数の複合VLOOKUPとMATCHおよびINDIRECTの複合

        はじめに

        • VLOOKUP関数のポイント
          • リスト範囲の左端列を検索して指定列位置の値を返します。
            VLOOKUP関数のイメージ
          • 左端列が昇順に並んでいるときは検索の型でTRUE(もしくは省略してもよい)を使用できますが、そうでない場合はFALSEとして完全一致で検索します。
          • 検索値が見つからない場合はエラー値#N/Aが返されます。(#N/Aエラーを表示しない方法はエラー処理をご覧ください)

         ブイルックアップ
        =VLOOKUP(検索値,範囲,列位置,検索の型)
           検索の型:「TRUE」もしくは[省略](「1」と入力してもOK)
                検索値が見つからない場合に、
        検索値未満で最も大きい値が使用されます。
                
        (注)検索範囲の値は昇順に並んでおく必要があります。
           検索の型:「FALSE」(「0」と入力してもOK)
                
        検索値と完全に一致する値だけが検索され、見つからない場合はエラー値 #N/A が返されます。
                文字列の検索に適します。

        [A] 検索値が文字列の場合 (検索の型:FALSE)
            (注)検索値が文字列の場合で昇順に並んでいる時は検索の型を[TRUE]でOKです。
              ただし、昇順の並べ替えで基準は[ふりがな]を使用してはいけません。日本語の場合には要注意です。

        • 【問題】
          • 商品一覧表(H3:J6)があります。
            見積書の品番を入力すると商品名と単価が自動的に入力されるようにC4:D6セルに数式を入れなさい。
          •  BCDEFGHIJ
            2見積書商品一覧表
            3品番商品名単価数量小計品番商品名単価
            4B01ラジオ5,0001 5,000A01テレビ50,000
            5C01ビデオデッキ20,0002 40,000B01ラジオ5,000
            6A01テレビ50,0003150,000C01ビデオデッキ20,000
            7 合計195,000
        • 【解答例】
          • C4セルの数式は
            =VLOOKUP(B4,$H$4:$J$6,2,FALSE) または =VLOOKUP(B4,$H$4:$J$6,2,0)となります。
          • 「B4セルの『B01』を範囲『H4:J6』の左端の列から探し、完全に一致した値が有ったら2列目の値を返す」という意味になります。
            • 検索値:品番の入力されているB4セルになります。
            • 範囲:商品一覧のデータ部分H4:J6を絶対参照で指定します。
              (範囲を絶対参照にするのはC4セルの数式をC5,C6セルにコピーする時値が変化しないようにするためです。)
            • 列位置:範囲の2列目ですので「2」とします。
            • 検索の型:文字の検索や固有品番などの検索では[FALSE] にします。[FALSE]のかわりに[0]でもOK
          •  BCDEFGHIJ
            2見積書商品一覧表
            3品番商品名単価数量小計品番商品名単価
            4B01=VLOOKUP(B4,$H$4:$J$6,2,FALSE)=VLOOKUP(B4,$H$4:$J$6,3,FALSE)1 5,000A01テレビ50,000
            5C01=VLOOKUP(B5,$H$4:$J$6,2,FALSE)=VLOOKUP(B5,$H$4:$J$6,3,FALSE)2 40,000B01ラジオ5,000
            6A01=VLOOKUP(B6,$H$4:$J$6,2,FALSE)=VLOOKUP(B6,$H$4:$J$6,3,FALSE)3150,000C01ビデオデッキ20,000
            7合計195,000

        エラー処理(#N/Aを表示しない)    

        • 検索値が検索する範囲にないときはエラー#N/Aが表示されます。
          #N/Aが表示されないようにするにはいろいろな方法があります。
          Excel2007以降、Excel2013以降ではIFERROR関数やIFNA関数が使えて簡潔な数式で処理ができるようになりました。
        • IFERROR関数で処理する(Excel2007以降で使用できます)

          • 詳細は IFERROR関数 をご覧ください。
          • C4セルの例 =IFERROR(VLOOKUP(B4,$H$4:$J$6,2,FALSE),"")  とします。
        • IFNA関数で処理する(Excel2013以降で使用できます)

          • 詳細は IFNA関数 をご覧ください。
          • C4セルの例 =IFNA(VLOOKUP(B4,$H$4:$J$6,2,FALSE),"")  とします。
        • ISNA関数やISERROR関数で処理する

          • VLOOKUP関数がエラーとなるか否かを調べてIF関数で対処します。
          • エラーの表示を無くするには IF関数とISNA関数を使います。
            C4セルの例:=IF(ISNA(VLOOKUP(B4,$H$4:$J$6,2,FALSE)),"",VLOOKUP(B4,$H$4:$J$6,2,FALSE))
          • ISERROR関数でもOKです。
            =IF(ISERROR(VLOOKUP(B4,$H$4:$J$6,2,FALSE)),"",VLOOKUP(B4,$H$4:$J$6,2,FALSE))
        • COUNTIF関数で処理する

          • 検索値が検索範囲にあるか否かをCOUNTIF関数で調べてIF関数で対処します。
          • =IF(COUNTIF($H$4:$H$6,B7)=0,"",VLOOKUP(B7,$H$4:$J$6,2,FALSE))
            なお、Excelでは1以上の数値はTrueと解釈されるので、以下のように書くこともできます。
            =IF(COUNTIF($H$4:$H$6,B7),VLOOKUP(B7,$H$4:$J$6,2,FALSE),"")

        (Step Up)共通の数式に変更する

        • C4セルの数式を =VLOOKUP($B4,$H$4:$J$6,COLUMN(B1),FALSE) とするとひとつの式で済みます。
          検索値を列固定の複合参照にし、列位置をCOLUMN関数で与えています。
          (D4セルへフィルハンドルをドラッグしてD4セルへコピーし、そのまま、フィルハンドルをC6:D6までドラッグしてコピーします。)
        • (説明)
          C4セルの列位置「2」を、D4セルでは「3」になるように細工をします。
          COLUMN関数を使うと、右方向へコピーして値が1増加するので「2」を返す「COLUMN(B1)」とすれば良さそうです。
          この場合重要なのは「B」=「2」なのでCOLUMN(B100)でも良く、「B1」としたのは見た目だけ?のことです。

        検索範囲に名前を定義する場合    

        1. セル範囲 H4:J6 に『商品一覧表』と名前を定義します。
          ポイント:検索列が一番左になるようにセル範囲を選択して、名前を定義します。)
          (A) メニューバーからの方法(B) 名前ボックスを使う方法
          1. セル範囲 H4:J6 をドラッグして選択。
          2. Excel2007以降は、[数式]タブの[名前の定義]を実行。
            Excel2003以前は、メニューバーの[挿入]→[名前]→[定義]を選択。
            [名前の定義]コマンド
          3. 「名前の定義」ダイアログの名前に『商品一覧表』と入力し、[OK]ボタンをクリックします。
            これで、セル範囲に名前が定義されます。
            VLOOKUP:新しい名前
          1. セル範囲 H4:J6 をドラッグして選択。
          2. 「名前ボックス」に『商品一覧表』と入力し、 [Enter] キーを押します。
            これで、セル範囲に名前が定義されます。
          vlookup12:名前ボックス
        2. C4セルの数式は =VLOOKUP(B4,商品一覧表,2,FALSE)  D4セルの数式は =VLOOKUP(B4,商品一覧表,3,FALSE) とします。
          • 列位置をCOLUMN関数で置き換え、C4セル=VLOOKUP(B4,商品一覧表,COLUMN(B1),FALSE)とすれば、D4セルへコピーすればOK。
        3. C4:D4セルを選択し、オートフィルでC6:D6まで数式をコピーして完成です。
        •  BCDEFGHIJ
          2見積書商品一覧表
          3品番商品名単価数量小計品番商品名単価
          4B01=VLOOKUP(B4,商品一覧表,2,FALSE)=VLOOKUP(B4,商品一覧表,3,FALSE)1 5,000A01テレビ50,000
          5C01=VLOOKUP(B5,商品一覧表,2,FALSE)=VLOOKUP(B5,商品一覧表,3,FALSE)2 40,000B01ラジオ5,000
          6A01=VLOOKUP(B6,商品一覧表,2,FALSE)=VLOOKUP(B6,商品一覧表,3,FALSE)3150,000C01ビデオデッキ20,000
          7 合計195,000
           (上の表はExcelへコピーすると #NAME? エラーとなります。 セル範囲 H4:J6 に『商品一覧表』と名前を定義するとエラーが解消されます。)

        [B] 検索値が数値範囲の場合 (検索の型:TRUE)     
            (注)検索値が昇順に並んでいる必要があります。
              検索値が数値の範囲ではなく、その値に対応する時は[FALSE]とします。

        • 【問題2】成績の評価を付けたいと思います。右の評価一覧表(G4:J6)にしたがって、D4:E6セルに数式を入力しなさい。
          • なお、G4セルは0以上、G5セルは40以上、G6セルは70以上を表現しています。
          •  BCDEFGHIJ
            2評価一覧表
            3名前得点評価A評価B得点評価A評価B
            4今田500以上×不可
            5河野20×不可40以上
            6山田7070以上
        • 解答例2-1 

          • 解答例1とほとんど同じですが、数値の範囲での検索になりますので、検索の型を[TRUE]または「1」もしくは[省略]します。
            検索の型が「TRUE」のとき、検索値が見つからない場合に、検索値未満で最も大きい値が使用されます。つまり、○○以上の○○が返されます。
            • 検索の型を省略:=VLOOKUP(C4,$G$4:$J$6,3)
            • 検索の型をTRUE:=VLOOKUP(C4,$G$4:$J$6,3,TRUE)
            • 検索の型を1  :=VLOOKUP(C4,$G$4:$J$6,3,1)
            • 上の3つは同じ結果になります。
          • この場合、得点欄の値以上の意味になります。得点欄(G列)は昇順に並んでいることが必要です。
             BCDEFGHIJ
            2評価一覧表
            3名前得点評価A評価B得点評価A評価B
            4今田50=VLOOKUP(C4,$G$4:$J$6,3)=VLOOKUP(C4,$G$4:$J$6,4)0以上×不可
            5河野20=VLOOKUP(C5,$G$4:$J$6,3)=VLOOKUP(C5,$G$4:$J$6,4)40以上
            6山田70=VLOOKUP(C6,$G$4:$J$6,3)=VLOOKUP(C6,$G$4:$J$6,4)70以上
            • 検索の型を[TRUE]または「1」もしくは[省略]します」と書いていますが、実は1以外(0を除く)の数値を使用してもエラーとならずにTRUEと同様に計算されます。
              Excelのワークシート関数ではFalse=0、それ以外はTrueとみなされるためです。
              ただし、=TRUE*1 といった計算を行うとワークシートでは「1」が返されますので、「1」が使われる理由と考えます。
              なお、VBAでは Trueは「-1」と異なった処理がされますので注意が必要です。
        • 解答例2-2 検索範囲に名前を定義して使う方法

          • セル範囲 G4:J6 に『評価一覧』と名前を定義すると、
            • D4セルの数式は =VLOOKUP(C4,評価一覧,3)
            • E4セルの数式は =VLOOKUP(C4,評価一覧,4)
            となります。
          • D4:E4 セルを選択し、オートフィルでD6:E6セルまで数式をコピーして完成です。
          • 名前の定義方法:G4:J6を選択し、挿入→名前→定義 で名前に「評価一覧」と入力する。
          • 別解:D4セル=VLOOKUP(C4,評価一覧,COLUMN(C1)) として、E4セルへコピーしてもOKです。

        [C] 検索表を使用しない方法  (数式中に検索範囲のデータを書く方法)    

        • (解答例2-3) シートに検索表を作成しない方法
          • 数式内に対応する値を並べて記述します。
          • D4セルの数式 =VLOOKUP(C4,{0,"×","不可";40,"△","良";70,"○","優"},2)
          • E4セルの数式 =VLOOKUP(C4,{0,"×","不可";40,"△","良";70,"○","優"},3)
          • D4:E4 セルを選択し、オートフィルでD6:E6セルまで数式をコピーして完成です。

        [D] 検索値が見つからず #N/Aエラー が返されるいろいろなケース   

        • シート上で検索値が検索範囲内の値と同じ値が入力されているように見えているのに、エラーとなるときがあります。
        1. 検索値にスペースが紛れ込んでいないか確認してみます。特に最後にスペースが含まれる場合は気づきにくいです。
          1. [ホーム]タブの[検索と選択]→[置換]を実行。
            ショートカットキーは[Ctrl]+[H]です。
            VLOOKUP:検索と選択から置換を実行
          2. 検索する文字列:半角または全角スペースを入力します。(画面では見た目の変化はないです)
            置換後の文字列:何も入力しません。
            『半角と全角を区別する』にチェックは入れません。(【オプション】をクリックすると表示されます)
            【すべて検索】ボタンをクリックし、【すべて置換】をクリックすると、一度に置換されます。
            確認しながら置換するときは、【次を検索】と【置換】を使います。
            VLOOKUP:置換の設定方法
        2. 他のソフトなどで作成したデータで空白文字CHAR(160)が紛れ込んでくることがあります。
          • CHAR(160)はTRIM関数やCLEAN関数では取り除くことができないので、SUBSTITUTE関数で取り除きます。その後、形式を選択して貼り付けの「値」でデータを置き換えます。
            • =SUBSTITUTE(A1,CHAR(160),"")
        3. 表示形式は文字列であるが、データは数値と認識されていることがあります。
          この様な場合は、=TYPE(A1)のようにTYPE関数を使ってセルのデータ形式を確認します。
          • 数値データを文字列に変更したいときは、【データ】→【区切り位置】のウィザードで「文字列」を指定します。
          • 文字列の数字を数値に変更したい場合は、どこかのセルに数値の「1」を入力しコピー、変更したいセルを選択して形式を選択して貼り付けで「乗算」にチェックを入れて【OK】とします。
          • セルのデータ型を調べる   
             タイプ

            =TYPE(データタイプ)
               数値は「1」 、テキストは「2」 、論理値は「4」
               エラー値は「16」 、配列は「64」を返します。

            1. C列にD列のようなそれぞれの値や数式を入力します。
            2. C5,C6はそれぞれの結果「FALSE」「#VALUE!」が表示されます。
            3. C7はTYPE関数の戻り値「64」が表示され、E7は戻り値「64」は数値なので、「1」が返されます。
              BCDEF
              2データタイプ入力データC列の内容TYPE関数の戻り値E列の数式
              3数値10←101←=TYPE(C3)
              4テキスト文字です←文字です2←=TYPE(C4)
              5論理値FALSE←=A1="moji"4←=TYPE(C5)
              6エラー#VALUE!←=B1/B216←=TYPE(C6)
              7配列64←=TYPE({1,2;3,4})1←=TYPE(C7)

        [E] 検索条件が2列(複数)ある場合   

        1. 左端列に検索条件を1つにまとめます(作業列を利用します)。
          • B3セルに=C3&"_"&D3 とC3セルとD3セルの値をつないで1つにします。B8セルまで数式をコピーします。
            なお、区切り文字にはデータに使用されない文字を使います。ここでは「_」アンダーバーを使ってみました。
          • H4セルには=VLOOKUP(H2&"_"&H3,$B$3:$E$8,4,FALSE)とします。
            BCDEFGH
            2アーチスト種別価格アーチスト吉村拓郎
            3池田陽水_LP池田陽水LP2500種別CD
            4池田陽水_CD池田陽水CD3000価格2900
            5池田陽水_DVD池田陽水DVD4000
            6吉村拓郎_LP吉村拓郎LP2600
            7吉村拓郎_CD吉村拓郎CD2900
            8吉村拓郎_DVD吉村拓郎DVD4100
        2. SUMPRODUCT関数を使う事もできます。この場合B列は不要です。
          • 上の例ではH2セルに=SUMPRODUCT((C3:C8=H2)*(D3:D8=H3),E3:E8)とします。
          • なお、求める値が数値である場合は上のようにSUMPRODUCT関数が使えます。
            しかし、文字列を求める場合は使用できませんので、上記のように作業列を利用しVLOOKUP関数を使います。

        VLOOKUP とMATCH の複合   
           縦横の検索表から、一致する値を取り出すのに、VLOOKUP関数とMATCH関数を組み合わせて使う方法です。

        • 【問題】VLOOKUP関数とMATCH関数を使って運賃を求めなさい。

          • BCDE
            2運賃表
            3東京名古屋大阪
            4鹿児島50,00040,00035,000
            5宮崎45,00035,00030,000
            6熊本40,00030,00025,000
            7福岡30,00020,00015,000
            8
            9到着地名古屋
            10出発地熊本
            11運賃は30,000
        • 【解答例】

          • 出発地熊本(C10セル)の行位置をVLOOKUP関数で求めます。
            VLOOKUP関数は左端の列を検索するので、範囲は『B7:E7』となります。
            =VLOOKUP(C10,B4:E7,○○,FALSE)
          • 到着地の名古屋(C9セル)が何列目になるのかMATCH関数で求めます。
            (注)VLOOKUP関数は検索列(一番左の列)を含む範囲になるので、MATCH関数の範囲は『B3:E3』とします。
            MATCH(C9,B3:E3,0) 
          • この両方の式を合わせて完成です。
            =VLOOKUP(C10,B4:E7,MATCH(C9,B3:E3,0),FALSE)
          • BCDE
            2運賃表
            3東京名古屋大阪
            4鹿児島50,00040,00035,000
            5宮崎45,00035,00030,000
            6熊本40,00030,00025,000
            7福岡30,00020,00015,000
            8
            9到着地名古屋
            10出発地熊本
            11運賃は=VLOOKUP(C10,B4:E7,MATCH(C9,B3:E3,0),FALSE)

        VLOOKUP と MATCH および INDIRECT の複合    
         参照する表が2種類ある場合、切り替えて使いたい時にINDIRECT関数が使えます。
         インダイレクト

        =INDIRECT(参照文字列,参照形式)
             参照文字列で入力したセル、セル範囲名を計算式で参照できるようにする。
             参照形式:TRUE または省略した場合、A1形式でのセル参照。
                    FALSE R1C1形式でのセル参照。

        • 【料金計算の例】
          • 料金表が【大人】と【子供】の2種類あります。計算時にこれらの表を切り替えて使う方法です。
          1. 大人の料金表のE4:H7の範囲に【大人】と名前をつけます。
          2. 大人の料金表の到着地行E3:H3に【大人到着地】と名前をつけます。
          3. 子供の料金表のE11:H24の範囲に【子供】と名前をつけます。
          4. 子供の料金表のタイトル行E10:H20に【子供到着地】と名前をつけます。
          5. C5に数式 =VLOOKUP(C2,INDIRECT(B4),MATCH(C3,INDIRECT(B4&"到着地"),0),FALSE)*C4 を、入力します。
        • 【説明】
          • INDIRECT(B4&"到着地"):B4セルの文字列が『子供』であれば『子供到着地』を参照します。
          • MATCH(C3,INDIRECT(B4&"到着地"),0),FALSE):でC3セルの到着地『名古屋』の列位置を返します。
          • VLOOKUP(C2,INDIRECT(B4)・・・:B4セルの文字列『子供』ならば、セル範囲『子供』からC2セルの出発地『宮崎』を検索し、 
          • MATCH関数で求めた列位置の一人分の料金を出します。そして、人数を掛けて料金を計算しています。
        • (ステップアップ)入力規則を使って入力値を制限する

          • 入力ミスを防ぐ&マウス操作のみにするため、C2,C3,B4セルには入力規則をつけます。
          • 【データ】→【入力規則】を選択し、
            • C2には【リスト】で【E4:E7】
            • C3には【リスト】で【F3:H3】
            • B4には【リスト】で【大人,子供】 
            とすれば、リストからの選択となり、入力しなくても良いです。
          • 更に、C4にも【リスト】で【1,2,3,4,5,6】としておけば、マウス操作のみで料金が表示されます。
        • VLOOKUPとMATCHおよびINDIRECTの複合

        • 関連ページ

        曜日を調べる関数(WEEKDAY関数)

        • WEEKDAY関数は曜日に対応する数値を返すことができます。この関数を使って曜日の処理をすることができます。
          Excel2010以降では引数に指定する種類が増えています。
        WEEKDAY関数WEEKDAY関数(Excel2010以降)

        シリアル値を曜日に対応する数値に変更する   ウイークデイ
        =WEEKDAY(シリアル値,種類)
             【種類】に『1』を指定するか省略した場合 :日曜日が1で始まり、土曜日が7となります。
             【種類】に『2』を指定した場合      :月曜日が1で始まり、日曜日が7となります。
             【種類】に『3』を指定した場合      :月曜日が0で始まり、日曜日が6となります。

        【問題】B列の日付が土日の場合、C列に『休み』と表示し、月〜金の場合は『仕事』と表示しなさい。

        •  BC
          2年月日
          32004/2/9仕事
          42004/2/8休み

        【解答例】

        • WEEKDAY関数の『種類』に【2】を使うと、土が「6」、日が「7」となるので、IF関数を使い、「WEEKDAY関数の値が6以上であれば『休み』とし、そうでなかったら(6未満であったら)仕事』としなさい。」といった数式を組みます。
        • BC
          2年月日
          32004/2/9=IF(WEEKDAY(B3,2)>=6,"休み","仕事")
          42004/2/8=IF(WEEKDAY(B4,2)>=6,"休み","仕事")

        【参考】下は2004年の日付です。

        【おまけ】どうしてもWEEKDAY関数を使って、曜日を表示したい時は、関数との組み合わせで可能です。

        • A1に日付が入力してあるとして、
          • =TEXT(A1,"aaa") とする。
          • =A1 として セルの表示形式を「"aaa"」とする。
        • WEEKDAY関数を使い場合は
          • =CHOOSE(WEEKDAY(A1),"日","月","火","水","木","金","土")
          • =MID("日月火水木金土",WEEKDAY(A1),1)
          • =VLOOKUP(WEEKDAY(A1),{1,"日";2,"月";3,"火";4,"水";5,"木";6,"金";7,"土"},2)
          などです。

        【注意】1900年3月1日より前の日をWEEKDAY関数で処理する場合には注意が必要です。

        • 1900/2/29は存在しませんが、日付システムには存在しています。
          よって、1900年1月1日〜1900年2月28日のWEEKDAY関数で返る値は間違った値になります。
          詳しくは↓を参照してください。
        • (確認してみました)
          1900/2/27を入力し、下方向へコピー(フィルハンドルをドラッグ)すると、存在しないはずの1900/2/29が出てきます。
          これは、Excel2010,2013,2016でも同じです。
          1900/2/27
          1900/2/28
          1900/2/29
          1900/3/1
          1900/3/2
        • =TEXT(日付,"aaa") で曜日を求めても同様に、1900年3月1日よりも前はずれていますので(正しい曜日が返されない)注意してください。

        WEEKDAY関数(Excel2010以降)

        • WEEKDAY関数はExcel2007以前でもありましたが、Excel2010では種類に指定できる数が増えています。
        • =WEEKDAY(日付,[種類]) の種類に従来は1〜3が指定可能でしたが、11〜17の指定が可能になっています
          なお、3だけが0〜6の値が返りますので要注意です。
          • 基準の開始位置を各曜日に指定することができるようになっています。
            17は1と同じ、11は2と同じ結果になります。
          • 基準の開始位置が各曜日に指定することができるようになっています。
            種類戻り値
            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 となる整数
          • 下図の例ではB4セルに=WEEKDAY($A4,B$2) と入力し、下方向および右方向へオートフィルで数式をコピーしています。
            A4:A10は200/10/9/5〜11が入力されています。表示形式を yyyy/mm/dd (aaa) としています。
          • なお、Excel2010では関数を入力するとポップアップヒントで引数まで教えてくれますので、種類を覚える必要はないかもしれません。

        何週目かを調べる関数(WEEKNUM関数)

        • WEEKNUM関数は指定した日付がその年の何週目にあたるかを計算することができます。
          Excel2010では指定できる週の基準が増えています。また、ISOWEEKNUM関数がExcel2013で追加されました。
        WEEKNUM関数WEEKNUM関数(Excel2010以降)
        ISOWEEKNUM関数

        日付がその年の第何週目に当たるかを返します   ウイークナム
        =WEEKNUM(シリアル値,週の基準)
            週の基準 1:週の始まりを日曜日とします。
                 2:
        週の始まりを月曜日とします。
         (注) Excel2003以前のバージョンでは、エラー値 #NAME? が返される場合は、分析ツール アドインを組み込む必要があります。
           Excel2010以降では週の基準が増えています こちら をご覧ください。

        • 【使用例】週の基準を日曜日にするか、月曜日にするかで返る値が異なります。

          • C列は週の基準が「1=日曜日」、D列は「2=月曜日」の例です。
            3行目、5行目のように「日曜日の場合異なった値が返されます。
             BCD
            22004/1/1 (木)11
            32004/1/4 (日)21
            42004/1/5 (月)22
            52004/8/8 (日)3332
            62004/8/9 (月)3333
            7=WEEKNUM(B2,1)=WEEKNUM(B2,2)
            • カレンダーを書くと理解しやすくなります。
              2004/1/1のカレンダーの例です。1/4を例にすると、週の基準が異なると「1」または「2」と違いが出ます。
        • 【問題1】2004年7月分の売上表があります。第1週〜第3週の売上金額の合計を計算しなさい。なお、週の初めは日曜日からとします。

          •  BCD
            2日付売上金額
            32004/7/1 (木)10,00027
            42004/7/2 (金)11,00027
            52004/7/3 (土)12,00027
            62004/7/4 (日)13,00028
            72004/7/5 (月)14,00028
            82004/7/6 (火)15,00028
            92004/7/7 (水)16,00028
            102004/7/8 (木)17,00028
            112004/7/9 (金)18,00028
            122004/7/10 (土)19,00028
            132004/7/11 (日)20,00029
            142004/7/12 (月)21,00029
            152004/7/13 (火)22,00029
            16
            17第1週合計33,000
            18第2週合計112,000
            19第3週合計63,000
        • 【解答例1】

          • D列に第何週であるかを計算します。
          • 週の初めは日曜日とするので、=WEEKNUM(B3,1) ですが「1」は省略できますので、=WEEKNUM(B3) としました。
          • 第1週の合計にはSUMIF関数を使って =SUMIF(D3:D15,WEEKNUM($B$3),C3:C15) で求めました。
          • 第2週以降は 週の数に「+1」しています。
          •  BCD
            2日付売上金額
            32004/7/1 (木)10,000=WEEKNUM(B3)
            42004/7/2 (金)11,000=WEEKNUM(B4)
            52004/7/3 (土)12,000=WEEKNUM(B5)
            62004/7/4 (日)13,000=WEEKNUM(B6)
            72004/7/5 (月)14,000=WEEKNUM(B7)
            82004/7/6 (火)15,000=WEEKNUM(B8)
            92004/7/7 (水)16,000=WEEKNUM(B9)
            102004/7/8 (木)17,000=WEEKNUM(B10)
            112004/7/9 (金)18,000=WEEKNUM(B11)
            122004/7/10 (土)19,000=WEEKNUM(B12)
            132004/7/11 (日)20,000=WEEKNUM(B13)
            142004/7/12 (月)21,000=WEEKNUM(B14)
            152004/7/13 (火)22,000=WEEKNUM(B15)
            16
            17第1週合計=SUMIF(D3:D15,WEEKNUM($B$3),C3:C15)
            18第2週合計=SUMIF(D3:D15,WEEKNUM($B$3)+1,C3:C15)
            19第3週合計=SUMIF(D3:D15,WEEKNUM($B$3)+2,C3:C15)
        • 【問題2】2004年7月4日(日曜日)はこの月の第何週にあたるか計算しなさい。なお、週の初めは日曜日からとします。

          •  BC
            2日付
            32004/7/4第2週
        • 【解答例2】
          • 求める日付の週はWEEKNUM(B2)で求めることができます。
            その月の1日はDATE(YEAR(B2),MONTH(B2),1 となるので、その週はWEEKNUM(DATE(YEAR(B2),MONTH(B2),1)で求めます。
            この差に1を加えることで求めることができます。
          • 求めた数値の前後に文字を付け加えて完成となります。
            ="第"&WEEKNUM(B2)-WEEKNUM(DATE(YEAR(B2),MONTH(B2),1))+1&"週"
             BC
            2日付
            32004/7/4="第"&WEEKNUM(B2)-WEEKNUM(DATE(YEAR(B2),MONTH(B2),1))+1&"週"

        WEEKNUM関数 (Excel2010以降)

        • WEEKNUM関数はExcel2007以前でもありましたが、Excel2010では種類に指定できる数が増えています。
        • =WEEKNUM(シリアル値,[週の基準])]) の「週の基準」に従来は1か2を指定可能でしたが、11〜21の指定が可能になっています
          • 種類週の始まりシステム
            1 または省略日曜日1
            2月曜日1
            11月曜日1
            12火曜日1
            13水曜日1
            14木曜日1
            15金曜日1
            16土曜日1
            17日曜日1
            21月曜日2
          • なお、Excel2010では関数を入力するとポップアップヒントで引数まで教えてくれますので、「週の基準」を覚える必要はないかもしれません。
          • 日曜日と月曜日が複数ありますが、月曜日の3つについて比較しました。
            どこでカウントが変化しているのかが、この基準の違いになります。
            • 週の基準2,11(システム1)は1月1日が1となり、月曜日にカウントアップします。
              週の基準21(システム2)は一年の最初の木曜日を含む週を週1のように番号付けされるようです。
              このシステムは一般的にヨーロッパの週番号システムとして知られているそうで、ISO 8601で指定されているようです。

        日付のその年におけるISO週番号を返します   アイエスオ− ウイークナム
        =ISOWEEKNUM(日付)
         (注) Excel2013で追加された関数です。

        • Excel2010で追加された週基準の「21」に相当するものです。
        • ISO 8601で「最初の木曜日を含む週が、その年の第1週である。」と規定されたものです。
          よって、1月1日が金〜日曜日である時は前年の週として扱うことになります。
          また、JIS X 0301も同様の規定のようです。

        稼働日を求める(WORKDAY関数)

        WORKDAY関数WORKDAY.INTL関数

        指定された稼動日数だけ前/後の日付を求めます   ワークデイ
        =WORKDAY(開始日,日数,[祭日])
           指定した稼働日数の前/後の日付に対応する値を返します。稼動日とは、土曜、日曜、および指定された祭日を除く。
         (注) Excel2003以前のバージョンでは、エラー値 #NAME? が返される場合は、分析ツール アドインを組み込む必要があります。

        • 基本的には土日を除いた日数を計算することができますが、指定した日にちを除くこともできます。
          構文で「祭日」と書いてある部分に特定の日付を指定すればよいので、会社での土日以外の休日を当てることもできます。
        • 【問題1】

          • 2013年1月10日に請求書を発行します。 支払日は請求日から5営業日とします。
            支払日を求めなさい。ただし祝日は考慮しないものとします
             BC
            2請求日2013年1月10日
            3支払日2013年1月17日
          • (参考)2013年1月のカレンダーは下表のようになっています。
            1/10から土日を除くと 1/11、1/14、1/15、1/16、1/17 となり、5日後は2013/1/17となります。
            この問題では祝日は考慮しないので 1/14 も営業日としてカウントします。
        • 【解答例】

          • WORKDAY関数を使った例です。(祭日は考慮していません)
            • C3セルに =WORKDAY(C2,5) と入力します。
               BC
              2請求日2013年1月10日
              3支払日=WORKDAY(C2,5)
            • 1/10から土日を除くと 1/11、1/14、1/15、1/16、1/17 となり、5日後は2013/1/17となります。
            • C3セルにシリアル値が表示されたら、表示形式を「日付」の「2001年3月14日」に変更します。
              下図はExcel2010です。ロケールは「日本語」、カレンダーの種類は「西暦」とします。

              Excel2013、Excel2016ではカレンダーの種類は「グレゴリオ暦」とします。表記の違いがあります。

        • 【問題2】2013年1月10日に請求書を発行します。 支払日は請求日から5営業日とします。
          ただし、土日と祭日は営業日として数えません。支払日を求めなさい。

          •  BCDEF
            2請求日2013年1月10日祝日一覧
            3支払日2013年1月18日2013/1/1元旦
            42013/1/14成人の日
            52013/2/11建国記念日
          • 1/10から土日と祭日を除くと 1/11、1/15、1/16、1/17、1/18 となり、5日後は2013/1/18となります。
        • 【解答例】

          • 祝日を考慮する場合は、祝日の表を作成します。引数の[祭日]の部分に祝日のセル範囲 E3:E5 を指定します。
            C3セルには =WORKDAY(C2,5,E3:E5) と入力します。
             BCDEF
            2請求日2013年1月10日祝日一覧
            3支払日=WORKDAY(C2,5,E3:E5)2013/1/1元旦
            42013/1/14成人の日
            52013/2/11建国記念日
            • C3セルにシリアル値が表示されたら、表示形式を「日付」の「2001年3月14日」に変更します。

        指定された稼動日数だけ前/後の日付を求めます   ワークデイ インターナショナル
        =WORKDAY.INTL(開始日,日数,[週末],[祭日])
         (注) Excel2010で追加された関数です。

        • 従来のWORKDAY関数に[週末]が追加された形です。土日以外の非稼働日に対応できるようになっています。
        • 開始日から起算して指定した稼働日数だけ前または後の日付のシリアル値を返します。
          週末、祝日として指定した日はすべて、稼働日と見なされません。
          • 週末の指定方法
            週末番号週末の曜日
            1または省略土曜日と日曜日
            2日曜日と月曜日
            3月曜日と火曜日
            4火曜日と水曜日
            5水曜日と木曜日
            6木曜日と金曜日
            7金曜日と土曜日
            11日曜日
            12月曜日
            13火曜日
            14水曜日
            15木曜日
            16金曜日
            17土曜日
          • 週末の指定は7桁の文字列での指定もできます。
            • 月曜日から始まる各曜日を表し、1は非稼働日を表し、0は稼働日を表します。
              上の表に無い月曜日と水曜日を休みとしたいときは"1010000"と指定します。
        • 【問題1】

          • 2013年1月10日に請求書を発行します。 支払日は請求日から5営業日とします。
          • 支払日を求めなさい。ただし、祝日は考慮しないものとします
          •  BC
            2請求日2013年1月10日
            3支払日2013年1月17日
          • (参考)2013年1月のカレンダーは下表のようになっています。
            1/10から土日を除くと 1/11、1/14、1/15、1/16、1/17 となり、5日後は2013/1/17となります。
            この問題では祝日は考慮しないので 1/14 も営業日としてカウントします。
        • 【解答例】

          • WORKDAY.INTL関数を使った例です。(祭日は考慮していません)
            • C3セルに =WORKDAY.INTL(C2,5) と入力します。
              WORKDAY関数でも=WORKDAY(C2,5) で求めることができます。
               BC
              2請求日2013年1月10日
              3支払日=WORKDAY.INTL(C2,5)
              4
              5

        • 【問題2】

          • 2013年1月10日に請求書を発行します。 支払日は請求日から5営業日とします。
          • 支払日を求めなさい。ただし、祝日は休みとします
          •  BCDEF
            2請求日2013年1月10日祝日一覧
            3支払日2013年1月18日2013/1/1元旦
            42013/1/14成人の日
            52013/2/11建国記念日
          • (参考)2013年1月のカレンダーは下表のようになっています。
            1/10から土日を除くと 1/11、1/15、1/16、1/17、1/18 となり、5日後は2013/1/18となります。
            この問題では祝日は休みとしますので、 1/14 は営業日としてカウントしません。
        • 【解答例】

          • WORKDAY.INTL関数を使った例です。(祭日は考慮していません)
          • C3セルに =WORKDAY.INTL(C2,5,E3:E5) と入力します。
            WORKDAY関数でも =WORKDAY(C2,5,E3:E5) で求めることができます。
             BCDEF
            2請求日2013年1月10日祝日一覧
            3支払日=WORKDAY.INTL(C2,5,E3:E5)2013/1/1元旦
            42013/1/14成人の日
            52013/2/11建国記念日

        • 【問題3】

          • 2013年1月10日に請求書を発行します。 支払日は請求日から5営業日とします。
            支払日を求めなさい。ただし、水曜日と祝日を休みとします。土日は営業日とします。
             BCDEF
            2請求日2013年1月10日祝日一覧
            3支払日2013年1月17日2013/1/1元旦
            42013/1/14成人の日
            52013/2/11建国記念日
          • (参考)2013年1月のカレンダーは下表のようになっています。
            1/10から土日を除くと 1/11、1/12、1/13、1/15、1/17 となり、5日後は2013/1/17となります。
            この問題では祝日と水曜日は休みとしますので、 1/14 と1/16 は営業日としてカウントしません。
        • 【解答例】

          • WORKDAY.INTL関数を使った例です。
            C3セルに =WORKDAY.INTL(C2,5,14,E3:E5) と入力します。
             BCDEF
            2請求日2013年1月10日祝日一覧
            3支払日=WORKDAY.INTL(C2,5,14,E3:E5)2013/1/1元旦
            42013/1/14成人の日
            52013/2/11建国記念日

        • 【問題4】

          • 2013年1月9日(水曜日)に請求書を発行します。 支払日は請求日から5営業日とします。
            支払日を求めなさい。ただし、月曜日と木曜日を休みとします。土日、祝日は営業日とします。
             BC
            2請求日2013年1月9日
            3支払日2013年1月16日
          • (参考)2013年1月のカレンダーは下表のようになっています。
            1/9から月曜日と木曜日を除くと 1/11、1/12、1/13、1/15、1/16 となり、5日後は2013/1/16となります。
            この問題では月曜日と木曜日は休みとしますので、 1/14 は営業日としてカウントしません。
        • 【解答例】

          • WORKDAY.INTL関数を使った例です。(祭日は考慮していません)
          • C3セルに =WORKDAY.INTL(C2,5,"1001000") と入力します。
            月曜日と木曜日は休みとしますので、引数[週末]に "1001000" とします。
            (月火水木金土日で休みにするところを1、そうでないところは0とします)
             BC
            2請求日2013年1月9日
            3支払日=WORKDAY.INTL(C2,5,"1001000")

        財務関数

        • エクセルの財務関連の関数について説明しています。
        PMT関数PV関数FV関数
        RATE関数NPER関数

        目的の投資に必要な定期支払額を返す   ペイメント
        =PMT(利率,期間,現在価値,将来価値,支払期日)
        利率:金利や利率
        期間:支払期間(回数)
        現在価値:借入金
        将来価値:支払い終了後の残高
        支払期日:支払いが期末(0または省略)か期首(1)

        • 固定利率で定額返済の条件で計算する。
        【問題1】
        • 次の表のような住宅ローンを計画しました。毎月の返済金額と総返済金額を求めなさい。
          なお、月末払いとします。
          BCDEF
          2ローン返済金額の計算
          3年利(%)4毎月の返済金額\-47,742
          4返済期間(年)30総返済金額\-17,186,950
          5借入金10,000,000 
        【解答例】
        • 毎月の返済金額
          • 利率:月当たりの返済金額を求めるので、年利の%を数値に直しC3/100、月単位にするので、「C3/100/12」となります。
          • 期間の年も月単位に直し「C4*12」とします。
          • 現在価値は借入金額になるので「C5」
          • 将来価値は全て返済するので「0」なので省略します。
          • 支払期日は月末払いは期末=0なので省略できます。
        • 総返済額
          • 返済期間が年で、毎月の返済なので月単位に直し、毎月の返済額*返済期間*12とします。
        • BCDEF
          2ローン返済金額の計算
          3年利(%)4毎月の返済金額=PMT(C3/100/12,C4*12,C5)
          4返済期間(年)30総返済金額=F3*C4*12
          5借入金10,000,000 

        【問題2】

        • 次の表のような住宅ローンを計画しました。年2回ボーナス時払いを併用したいと思います。
          毎月および毎ボーナス時の返済金額と総返済金額を求めなさい。
          なお、月末払いとします。
          BCDEF
          2ローン返済金額の計算
          3年利(%)4毎月の返済金額\-28,645
          4返済期間(年)30ボーナス時返済額\-115,072
          5借入金10,000,000 総返済金額\-17,216,482
          6ボーナス時(年2回)4,000,000

        【解答例】

        • 毎月の返済金額
          • 利率:月当たりの返済金額を求めるので、年利の%を数値に直しC3/100、月単位にするので、「C3/100/12」となります。
          • 期間の年も月単位に直し「C4*12」とします。
          • 現在価値は借入金額からボーナス時払い金を差し引いた金額になるので「C5-C6」
          • 将来価値は全て返済するので「0」なので省略します。
          • 支払期日は月末払いは期末=0なので省略できます。
        • ボーナス時返済金額
          • 利率は年2回となるので、「C3/100/2」とします。
          • 期間は「C4*2」とします。
        • 総返済額
          • 返済期間が年で、毎月の返済なので月単位に直し、毎月の返済額*返済期間*12とします。
          • ボーナス時の返済額はボーナス時返済額*返済期間*2とします。
          • 総返済額は両者の和になります。=(F3*12+F4*2)*C4としても同じです。
        • BCDEF
          2ローン返済金額の計算
          3年利(%)4毎月の返済金額=PMT(C3/100/12,C4*12,C5-C6)
          4返済期間(年)30ボーナス時返済額=PMT(C3/100/2,C4*2,C6)
          5借入金10,000,000 総返済金額=F3*C4*12+F4*C4*2
          6ボーナス時(年2回)4,000,000

        投資の現在価値を返します   プレゼント バリュー
        =PV(利率,期間,定期支払額,将来価値,支払期日)
        利率:金利や利率
        期間:支払期間(回数)
        定期支払額:毎回の支払額
        将来価値:支払い終了後の残高
        支払期日:支払いが期末(0または省略)か期首(1)

        • 固定利率で定額返済の条件で計算する。

        【問題1】

        • 下表B2:C5の条件でローンの資金を借入れたいと思います。いくら借り入れできるでしょう。
          なお、返済期日は月末とします。
          BCDEF
          2ローン借入れ金額の計算
          3毎月の返済金額-50,000 借入れ金額\10,473,062
          4年利(%)4 
          5返済期間(年)30 

        【解答例】

        • 利率と期間を月当たりで計算する。(単位を揃える)
        • 将来価値は「0」になるので省略できる。
          BCDEF
          2ローン借入れ金額の計算
          3毎月の返済金額-50,000 借入れ金額=PV(C4/100/12,C5*12,C3)
          4年利(%)4 
          5返済期間(年)30 

        定額払い、一定利率であると仮定して、投資の将来価値を返します   フューチャー バリュー
        =FV(利率,期間,定期支払額,現在価値,支払期日)
        利率:金利や利率
        期間:支払期間(回数)
        定期支払額:毎回の支払額
        現在価値:現在の投資額
        支払期日:支払いが期末(0または省略)か期首(1)

        • 固定利率で定額払いの条件で計算する。

        【問題1】

        • 下表B2:C5の条件で積立て預金を考えています。いくら預金できるでしょう。

          BCDEF
          2積立て金額の計算
          3毎月の積立て金額-50,000 積立て金額\6,307,494
          4年利(%)1 
          5積立て期間(年)10 

        【解答例】

        • 利率と期間を月当たりで計算する。(単位を揃える)
        • 将来価値は「0」になるので省略できる。
          BCDEF
          2積立て金額の計算
          3毎月の積立て金額-50,000 積立て金額=FV(C4/100/12,C5*12,C3)
          4年利(%)1 
          5積立て期間(年)10 

        投資の利率を返す   レイト
        =RATE(期間,定期支払額,現在価値,将来価値,支払期日,推定値)
        期間:支払期間(回数)
        定期支払額:毎回の支払額
        現在価値:投資の現在価値
        将来価値:投資の将来価値
        支払期日:支払いが期末(0または省略)か期首(1)

        推定値:利率がおよそどれくらいになるかを推定した値を指定。推定値を省略すると、10% が計算に使用されます

        • 定期支払額を指定期間払う時に現在価値が将来価値になる、固定の利率を求める。

        【問題1】

        • 下表B3:C6の条件で必要な利率を計算しなさい。
          BCDEF
          2積立て時の利率の計算
          3毎月の積立て金額-50,000利率(年)3.821
          4積立て期間(年)5
          5現在の金額0
          6目標金額3,300,000

        【解答例】

        • 1年当たりを基準に計算するので、期間はC4*12とします。
        • 利率も月単位で計算されるので最後に「*12*100」を掛けておきます。
          BCDEF
          2積立て時の利率の計算
          3毎月の積立て金額-50,000利率(年)=RATE(C4*12,C3,C5,C6)*12*100
          4積立て期間(年)5
          5現在の金額0
          6目標金額3,300,000

        投資に必要な期間(支払回数)を返す   ナンバーオブピリオズ
        =NPER(利率,定期支払額,現在価値,将来価値,支払期日)
        利率:利率
        定期支払額:毎回の支払額
        現在価値:投資の現在価値
        将来価値:投資の将来価値
        支払期日:支払いが期末(0または省略)か期首(1)

        • 定額の支払いを定期的に行い、利率が一定であると仮定して、投資に必要な期間(支払回数)を返す。

        【問題1】

        • 下表B3:C6の条件で必要な積立て回数を計算しなさい。
          BCDEF
          2積立て回数の計算
          3毎月の積立て金額-50,000積立て回数59.755
          4利率(年)4
          5現在の金額0
          6目標金額3,300,000

        【解答例】

        • 利率を月当たりに直すため「C4/100/12」とします。
        • BCDEF
          2積立て回数の計算
          3毎月の積立て金額-50,000積立て回数=NPER(C4/100/12,C3,C5,C6)
          4利率(年)4
          5現在の金額0
          6目標金額3,300,000

        日付の表示形式

        • エクセルで日付を扱う時に必要と思われる表示形式に関する項目を書き出しています。
        日付の表示形式表示形式の変更方法
        数字を日付形式に変更する曜日も一緒に表示する

        日付の表示形式           Topへ

        日付の入力方法

        1. 『2/15』のようにスラッシュ『/』で区切って入力すると「2月15日」と日付形式で表示されます。
        2. 『2-15』とハイフン『-』で区切って入力すると「2月15日」と日付形式で表示されます。
        • 値は「2003/2/15」となります。(数式バーで確認できます。)
          パソコン内蔵の時刻を基準として、年月日が入力されます。
        • 前年や翌年の日付を入れたい時は、年から入力します(例:『2002/2/15』や『H24/2/15』など)。
          • 元号を付ける場合は『H24.2.15』と『.』(ドット)で区切っても入力できます。

        表示形式の変更方法          Topへ 

        1. メニューバーの【書式】→【セル】を選択。
        2. 【表示形式】タブを選択。
        3. 【分類】の『日付』を選択し、表示する『種類』を選択。

        TEXT関数を使って日付の表示を変える方法

        • =TEXT(値,表示形式)
          表示形式は 『 " 』 二重引用符で囲みます。
          (注)ただし、TEXT関数を使うと、文字列に変換されますので、計算に使うことができなくなります。
          下記は 『=日付+1』 の計算ができない例です。

        VALUE関数で文字データを数値に変換する

        • =VALUE(文字列)

          (注)数値の場合は文字列を数値に変換するVALUE関数で数値に戻して計算することができます。
            下の式が例です。
          • なお、『=C8*10』でも同じ結果になりますのでVALUE関数を使わなくてもOKです。・・・VALUE関数は必要ない?
            • 文字列の数字との四則演算を行うと、Excelは数値としてみなされる文字列は数値として計算してくれます。

        文字列をシリアル値に変換する

        • WordやAccessなどからの文字列データをExcelで日付データとして処理したい時に使えます。
          =DATEVALUE(日付形式の文字列)
          • 日付の文字列をシリアル値に変換します。
          • 日付形式の文字列  :'2003/2/25  2月25日(表示形式が文字列になっていること)
            変換後のシリアル値 :37678

        数字を日付形式/時刻形式に変換するには?

        TEXT関数を使う方法(異なるセルへ文字列/シリアル値を返す)

        • =TEXT(数字,"0!/00!/00")
          • 数字で入力された日付を日付形式で表示する。
          • 数字で入力された時刻を時刻形式で表示する。
        BCD
        2日付結果
        320040101=TEXT(B3,"0!/00!/00")2004/01/01
        420041012=TEXT(B4,"0!/00!/00")2004/10/12
        5
        6時刻結果
        7  1015=TEXT(B7,"0!:00")10:15
        820=TEXT(B8,"0!:00")0:20
        92625=TEXT(B9,"0!:00")26:25
        • 文字列を日付データ(シリアル値)に変える。なお、セルの表示形式を【日付】にします。
          • =DATEVALUE(TEXT(B3,"0!/00!/00"))
          • =TEXT(B3,"0!/00!/00")*1
          • =--TEXT(B3,"0!/00!/00")

        区切り位置を使う方法(同一セルでシリアル値に変換)

        • 同一セルでシリアル値に変更する
          • 「20040101」を日付データの「2004/1/1」(シリアル値)に変えるには、【データ】→【区切り位置】 を使う方法もあります。
          • 【区切り位置指定ウィザード 3/3】の【列のデータ形式】で【日付】にチェックを入れます。

        DATE関数を使う方法(異なるセルへシリアル値を返す)

        • 「20040101」を日付データの「2004/1/1」(シリアル値)に変える
          1. 年数:数値を10000で割った商の値
            月数:数値を100で割った商の整数部分を100で割った余りの値
            日数:数値を100で割った余りの値
            =DATE(INT(A1/10000),MOD(INT(A1/100),100),MOD(A1,100))
          2. 「20040101」を文字列と見なして、年月日に相当する文字を取り出す。
            年数:左から4文字
            月数:左から5文字目から2文字
            日数:右から2文字
            =DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2))

        曜日も一緒に表示したい!           Topへ

        1. メニューバーの【書式】→【セル】を選択。
        2. 【セルの書式設定】ダイアログの【表示形式】タブを選択。
        3. 【分類】で[ユーザー定義]を選択
          【種類】に表示形式を入力します。

        [種類]欄の表示形式

        • 表示形式表示される値
          西暦yyyy
          yy

          2003
          03
          03
          和暦ge
          ggge
          rr
          M,T,S,H
          明治、大正、昭和、平成
          元号+年 
          例)昭和05 平成15
          m
          mm
          mmm
          mmmm
          1,2,3・・・10,11,12
          01,02,03・・・10,11,12
          Jan,Feb,Mar・・・Oct,Nov,Dec
          January,February・・・December
          d
          dd
          1,2,3・・・28,29,30
          01,02,03・・・28,29,30
          曜日aaa
          aaaa
          ddd
          dddd
          月,火,水..・・・土,日
          月曜日,火曜日・・・.日曜日
          Mon,Tue・・・Sun
          Monday,Tuesday・・・Sunday

        [ユーザー定義]の書式と表示の具体例

        ※年,月,日の文字はそれぞれ「"」(二重引用符)で囲みます

        DMAX関数で複数条件に合うデータの最大値

        DMAX関数は、複数の条件に合うデータの最大値を求める時に使う関数です。
        DMAX 関数はリストまたはデータベースの指定された列を検索し、条件を満たすレコードの最大値を返します。

        DMAX関数の書式と使い方

        DMAX関数の書式 データベース関数

        書式DMAX(データベース, フィールド, 検索条件)
        DMAX関数の書式

        DMAX関数の使い方

        kokodaneフィットネスクラブの会員情報で、30歳以下で、女性という複数の条件で、データから最大値を出します。
        DMAX関数は、条件指定欄を用意し、データと同じ項目が必ず必要です。
        AND条件で抽出したいので、条件を横に並べます。女性で30以下にします。
        DMAX関数使い方
        最大値を抽出したセルG6にDMAX関数の式を入力します
        引数のデータベースは、データベース範囲を指定し、フィールドは、最大値を求める項目である体重の項目E2を指定します。
        条件には、範囲G2:H3を指定します。
        =DMAX(データベース, フィールド, 検索条件)
        =DMAX(A2:E15,E2,G2:H3)

        DMAX関数使い方2
        DMAX関数で、30歳以下で、女性という複数の条件で、データから最大値を抽出したところ、78.0という数値が表示されました。
        DMAX関数使い方3
        上図のように、検索する数値の範囲を指定するには、>=30のように、条件に不等号記号と数値を入力します。
        不等号記号の意味と入力例は以下の様にします。
        数値の範囲指定

        DMIN関数の使い方 データベース関数

        DMIN関数は、複数の条件に合うデータの最小値を求める時に使う関数です。

        DMIN関数 条件を設定したデータの最小値

        リストまたはデータベースの指定された列を検索し、条件を満たすレコードの最小値を返します。

        DMIN関数の書式 データベース関数

        書式DMIN(データベース, フィールド, 検索条件)
        DMIN関数の書式

        DMIN関数の使い方

        kokodane塾の模擬テスト結果で、Aクラスで、男子という複数の条件で、データから最小値を出します。
        DMIN関数は、条件指定欄を用意し、データと同じ項目が必ず必要です。
        AND条件で抽出したいので、条件を横に並べます。Aクラスで、男子という条件にします。
        DMIN関数の使い方
        最小値を抽出したセルF1にDMIN関数の式を入力します
        引数のデータベースは、データベース範囲を指定し、 フィールドは、最小値を求める項目である合計の項目G6または、"合計"と項目名を入力します。
        条件には、範囲A3:G4を指定します。 =DMIN(データベース, フィールド, 検索条件)
        =DMIN(A6:G19,G6,A3:G4)
        =DMIN(A6:G19,"合計",A3:G4)

        DMIN関数の使い方2
        DMIN関数で、Aクラスで、男子という複数の条件で、データから最小値を抽出したところ、164という数値が表示されました。
        DMIN関数の使い方3
        inserted by FC2 system