CELF と Excel のシートの仕様差異について¶
このページでは、 CELF と Excel のシートの両方に存在する機能や関数について、主な仕様差異について説明します。
注意
- このページの内容は、CELF と Excel の仕様差異を全て網羅しているわけではありません。
- Excel のバージョンによって、このページの説明とは動作が異なる可能性があります。
フィルタボタンによるソート後の絶対参照セル¶
CELF では、フィルタボタンのソートを行った際、移動したセルの中に絶対参照($A$1など)があると、相対参照のように参照する値が変わります。
以下は、 CELF と Excel で動作を比較した際に、結果が異なる例です。
CELF シートの場合)
Excel シートの場合)
数値(浮動小数点)精度¶
CELF と Excelの数値は、IEEE754 に従った浮動小数点数で扱われており、精度の正確性に限度があります。
例として、「11.3 - 11」 の計算結果を「0.3」で比較した場合、 CELF シートと Excel シートの両方で、比較結果は「FALSE」になります。
ただし、 CELF と Excelでは、丸め誤差の補正の違いにより、浮動小数点の計算結果が Excel とで異なるケースがあります。
例として、「0.1+0.1+0.1」の計算結果を「0.3」で比較すると、 CELF と Excel で比較結果が異なります。
CELF シートの場合)
数式「=0.1+0.1+0.1=0.3」の比較結果は「FALSE」になります。
Excel シートの場合)
数式「=0.1+0.1+0.1=0.3」の比較結果は「TRUE」になります。
1900年の「2月29日」(うるう年)の扱い¶
Excel では、1900年をうるう年として扱いますが、CELF では1900年をうるう年として扱いません。(1900年は、うるう年ではありませんが、Excel は「1900-02-29」が扱えます)
以下は、 CELF と Excel で動作を比較した際に、結果が異なる例です。
CELF シートの場合)
DATE 関数で「1900年2月」の月末を求める数式「=DATE(1900,3,0)」を入力した場合、「1900-02-28」が表示されます。
Excel シートの場合)
DATE 関数で「1900年2月」の月末を求める数式「=DATE(1900,3,0)」を入力した場合、「1900-02-29」が表示されます。参考
Excel が1900年をうるう年として評価する理由について、詳しくは Microsoft の トラブルシューティング を参照してください。
有効桁数16桁を超える数値の動作¶
Excel では、セルの値や数式内で有効桁数16桁を超える数値を入力できませんが、CELF では、有効桁数16桁を超える数値を指定できます。
以下は、 CELF と Excel で動作を比較した際に、結果が異なる例です。
CELF シートの場合)
セルに「1234567890123456」と入力した場合、「1234567890123456」が表示されます。注意
ただし、以下の関数では有効桁数15桁の値にまるめた上で、値を評価または結果を表示します。
- ROUND
- ROUNDDOWN
- ROUNDUP
- MROUND
- FLOOR
- CEILING
- INT
Excel シートの場合)
セルに「1234567890123456」と入力した場合、「1234567890123450」が表示されます。
比較演算子で「数値」と「文字列の数字」を比較した場合の動作¶
CELF では、イコール演算子などの比較演算子で「数値」と「文字列の数字」を比較した場合、「文字列の数字」を数値として扱い、式を評価します。
以下は、 CELF と Excel で動作を比較した際に、結果が異なる例です。
CELF シートの場合)
セルに「=123="123"」と入力した場合、式の評価結果は、「TRUE」になります。
Excel シートの場合)
セルに「=123="123"」と入力した場合、式の評価結果は、「FALSE」になります。
カット&ペーストしたセルを参照しているセルの自動更新¶
CELF では、セルをカット&ペーストした際、カット&ペーストしたセルの参照元に対して、自動更新を行いません。
以下は、 CELF と Excel で動作を比較した際に、結果が異なる例です。
CELF シートの場合)
ちなみに
この動作は、セルのドラッグ&ドロップについても同様です。
Excel シートの場合)
関数の引数に指定したセルの値が空だった場合の動作¶
CELF では、関数の引数として指定されたセルの値が空だった場合、そのセルの値を空文字("")として扱います。
そのため、引数に数値や日付など文字列以外の値を期待する関数では、Excelと結果が異なる場合があります。
例)DAY 関数の引数(シリアル値)に「値が空」のセルを指定した場合
CELF シートの場合)
セルの値を空文字("")として扱うため、「 =DAY("") 」と評価し、結果は「#VALUE!」になります。
Excel シートの場合)
セルの値を「0」として扱うため、「 =DAY(0) 」と評価し、結果は「0」になります。
注意
Excelと同じ結果を得るためには、セルの値が空文字("")にならないように注意してください。
スピル、および、配列について¶
CELF では、 Excel のスピル、および、配列には対応していません。そのため、 引数に配列を指定しても CELF では動作しません。
また、関数の結果が複数の値になる場合でも、すべて表示せず、最初の1件のみ表示します。
例)INDEX 関数の第2引数(行番号)に「0」を指定した場合
CELF シートの場合)
Excel シートの場合)
AVERAGEA関数の動作¶
引数に値が空のセルを含む場合の動作の違い¶
CELF の AVERAGEA 関数は、引数に「値が空」のセルを含む場合、空のセルを「0」として扱い、平均の個数にカウントします。
以下は、 CELF と Excel で動作を比較した際に、結果が異なる例です。
CELF シートの場合)
「値が空」のセルを「0」として扱うため、「(100 + 0 + 200)/ 3」と評価し、結果は「100」になります。
Excel シートの場合)
「値が空」のセルは除外されるため、「(100 + 200)/ 2」と評価し、結果は「150」になります。
COUNTA関数の動作¶
指定した範囲に数式が存在する場合の動作の違い¶
CELF の COUNTA 関数は、数式の結果が空文字となるセルを指定した場合、そのセルを除外してカウントします。
以下は、 CELF と Excel で動作を比較した際に、結果が異なる例です。
CELF シートの場合)
数式の結果が空文字であれば、そのセルをカウントせずに結果を表示します。
Excel シートの場合)
数式の結果が空文字かどうかに関わらず、常にカウントして結果を表示します。
ISBLANK関数の動作¶
参照するセルが数式の場合の動作の違い¶
CELF の ISBLANK 関数は、数式の結果が空文字となるセルを指定した場合、結果を「true」で表示します。
以下は、 CELF と Excel で動作を比較した際に、結果が異なる例です。
CELF シートの場合)
数式の結果が空文字であれば、結果を「true」で表示します。
Excel シートの場合)
数式の結果が空文字かどうかに関わらず、結果を「false」で表示します。
SUBTOTAL 関数の動作¶
集計方法(第1引数)の動作の違い¶
CELF の SUBTOTAL 関数の集計方法(第1引数)に「1~11」を指定した場合、いずれも非表示行を計算対象外とします。
以下は、 CELF と Excel で動作を比較した際に、結果が異なる例です。
CELF シートの場合)
集計方法「9」(SUM)を指定すると、非表示行を除外した合計を表示します。
Excel シートの場合)
集計方法「9」(SUM)を指定すると、非表示行も含めた合計を表示します。
SUMIF関数の動作¶
検索条件(第2引数)に値が空のセルを指定した場合の動作の違い¶
CELF の SUMIF 関数は、検索条件に「値が空」のセルを指定した場合、「値が空」のセルとマッチします。
以下は、 CELF と Excel で動作を比較した際に、結果が異なる例です。
CELF シートの場合)
範囲内の「値が空」のセルとマッチし、結果は「値が空」のセルの合計になります。
Excel シートの場合)
範囲内の「値が空」のセルとマッチせず、結果は「0」になります。
COUNTIF関数の動作¶
検索条件(第2引数)に値が空のセルを指定した場合の動作の違い¶
CELF の COUNTIF 関数は、検索条件に「値が空」のセルを指定した場合、「値が空」のセルとマッチします。
以下は、 CELF と Excel で動作を比較した際に、結果が異なる例です。
CELF シートの場合)
範囲内の「値が空」のセルとマッチし、結果は「値が空」のセルの数になります。
Excel シートの場合)
範囲内の「値が空」のセルとマッチせず、結果は「0」になります。
MROUND関数の動作¶
倍数(第2引数)に「0」を指定した場合の動作の違い¶
CELF の MROUND 関数は、倍数(第2引数)に「0」を指定した場合、「#DIV/0!」 エラーを表示します。
以下は、 CELF と Excel で動作を比較した際に、結果が異なる例です。
CELF シートの場合)
数式「=MROUND(1,0)」 の結果は「#DIV/0!」になります。
Excel シートの場合)
数式「=MROUND(1,0)」 の結果は「0」になります。
CEILING関数の動作¶
基準値(第2引数)に「0」を指定した場合の動作の違い¶
CELF の CEILING 関数は、基準値(第2引数)に「0」を指定した場合、「#DIV/0!」 エラーを表示します。
以下は、 CELF と Excel で動作を比較した際に、結果が異なる例です。
CELF シートの場合)
数式「=CEILING(1,0)」 の結果は「#DIV/0!」になります。
Excel シートの場合)
数式「=CEILING(1,0)」 の結果は「0」になります。
FLOOR関数の動作¶
基準値(第2引数)に「0」を指定した場合の動作の違い¶
CELF の FLOOR 関数は、数値(第1引数)に「0」、かつ 基準値(第2引数)に「0」を指定した場合、「#DIV/0!」 エラーを表示します。
以下は、 CELF と Excel で動作を比較した際に、結果が異なる例です。
CELF シートの場合)
数式「=FLOOR(0,0)」 の結果は「#DIV/0!」になります。
Excel シートの場合)
数式「=FLOOR(0,0)」 の結果は「0」になります。
TRIM関数の動作¶
削除対象となる空白文字の違い¶
CELF の TRIM 関数は、半角スペースのほかに、 Unicode の空白文字(水平タブなど)および、非ASCIIの空白文字(全角スペースなど)を削除します。
例)TRIM 関数に文字列「*□ABC□*」を指定した場合
※ここでは半角スペースを「*」、全角スペースを「□」で表しています。
CELF シートの場合)
結果は「ABC」になります。
Excel シートの場合)
結果は「□ABC□」になります。
文字の間に半角スペースがある場合の動作の違い¶
CELF の TRIM 関数は、文字間にある半角スペースを削除しません。
例)TRIM 関数に「ABC***DEF」の文字列を指定した場合
※ここでは半角スペースを「*」で表しています。
CELF シートの場合)
結果は「ABC***DEF」となります。(変更なし)
Excel シートの場合)
結果は「ABC*DEF」となります。(文字間の連続する半角スペースは1つに削除)
VLOOKUP関数の動作¶
検索値(第1引数)に「""」や「値が空」のセルを指定した場合の動作の違い¶
CELF の VLOOKUP 関数は、検索値(第1引数)に「""」や「値が空」のセルを指定した場合、「値が空」のセルとマッチします。
CELF シートの場合)
検索値に「値が空」のセルを指定した場合、「値が空」のセルと一致します。
Excel シートの場合)
検索値に「値が空」のセルを指定した場合、「値が空」のセルと一致せず、結果は「#N/A」になります。
比較する値に「数値」と「文字列の数字」がある場合の動作の違い¶
CELF の VLOOKUP 関数の検索値と検索範囲の比較は、「文字列の数字」を数値として扱い、比較を行います。
そのため、検索値が文字列の「123」の場合、検索範囲に数値の「123」があれば、一致していると判断します。
CELF シートの場合)
検索値が文字列の「2」の場合、検索範囲の数値の「2」と一致し、結果は「りんご」になります。ちなみに
検索値が数値の「2」の場合、数値の「2」以外にも文字列の「2」 や 「002」のセルとも一致します。
Excel シートの場合)
検索値が文字列の「2」の場合、検索範囲の数値の「2」と一致せず、結果は「#N/A」になります。
HLOOKUP関数の動作¶
検索値(第1引数)に「""」や「値が空」のセルを指定した場合の動作の違い¶
CELF の HLOOKUP 関数は、検索値(第1引数)に「""」や「値が空」のセルを指定した場合、「値が空」のセルとマッチします。
CELF シートの場合)
検索値に「値が空」のセルを指定した場合、「値が空」のセルと一致します。
Excel シートの場合)
検索値に「値が空」のセルを指定した場合、「値が空」のセルと一致せず、結果は「#N/A」になります。
比較する値に「数値」と「文字列の数字」がある場合の動作の違い¶
CELF の HLOOKUP 関数の検索値と検索範囲の比較は、「文字列の数字」を数値として扱い、比較を行います。
そのため、検索値が文字列の「123」の場合、検索範囲に数値の「123」があれば、一致していると判断します。
CELF シートの場合)
検索値が文字列の「2」の場合、検索範囲の数値の「2」と一致し、結果は「りんご」になります。
Excel シートの場合)
検索値が文字列の「2」の場合、検索範囲の数値の「2」と一致せず、結果は「#N/A」になります。
XLOOKUP関数の動作¶
比較する値に「数値」と「文字列の数字」がある場合の動作の違い¶
CELF の XLOOKUP 関数の検索値と検索範囲の比較は、「文字列の数字」を数値として扱い、比較を行います。
そのため、検索値が文字列の「123」の場合、検索範囲に数値の「123」があれば、一致していると判断します。
CELF シートの場合)
検索値が文字列の「2」の場合、検索範囲の数値の「2」と一致し、結果は「りんご」になります。
Excel シートの場合)
検索値が文字列の「2」の場合、検索範囲の数値の「2」と一致せず、結果は「#N/A」になります。
戻り配列(第3引数)が返す値の違い¶
CELF の XLOOKUP 関数は、戻り配列(第3引数)で返す値が、セルの参照ではなく、セルの値になります。
そのため、 ROW 関数など引数にセルの参照を渡す関数には、 XLOOKUP 関数をネストして使用することはできません。
CELF シートの場合)
ROW 関数の参照に XLOOKUP 関数を指定した場合、検索値に一致する値があっても、ROW関数は評価されません。
Excel シートの場合)
ROW 関数の参照に XLOOKUP 関数を指定した場合、検索値に一致する値があれば、 ROW 関数は一致した値を評価します。
一致モード(第5引数)に「2」を指定した場合の動作の違い¶
CELF の XLOOKUP 関数は、一致モード(第5引数)の「2」(ワイルドカードの一致)に対応していません。
一致モードに「2」を指定した場合、結果は「#VALUE!」になります。
CELF シートの場合)
一致モード(第5引数)に「2」を指定した場合、結果は「#VALUE!」になります。ちなみに
部分一致などのあいまい検索は行う場合は、「テーブルからデータを1件取得する」アクションで検索するなどの方法を検討してください。
Excel シートの場合)
一致モード(第5引数)に「2」を指定した場合、あいまい検索を行います。
MATCH関数の動作¶
照合の型(第3引数)に「0」を指定した場合の動作の違い¶
Excel の MATCH 関数は、照合の型(第3引数)に「0」を指定した場合、検索値にワイルドカードが使用できますが、CELF の MATCH 関数は、対応していません。 そのため、ワイルドカードを使用しても入力された文字列のまま検索するため、結果は「#N/A」になります。
CELF シートの場合)
ワイルドカードを使用した文字列を検索値に指定した場合、入力された文字列のまま検索するため、結果は「#N/A」になります。ちなみに
部分一致などのあいまい検索は行う場合は、「テーブルからデータを1件取得する」アクションで検索するなどの方法を検討してください。
Excel シートの場合)
ワイルドカードを使用した文字列を検索値に指定した場合、あいまい検索を行います。