CELF と Excel のシートの仕様差異について

このページでは、 CELF と Excel のシートの両方に存在する機能や関数について、主な仕様差異について説明します。

注意

  • このページの内容は、CELF と Excel の仕様差異を全て網羅しているわけではありません。
  • Excel のバージョンによって、このページの説明とは動作が異なる可能性があります。

フィルタボタンによるソート後の絶対参照セル

CELF では、フィルタボタンのソートを行った際、移動したセルの中に絶対参照($A$1など)があると、相対参照のように参照する値が変わります。
以下は、 CELF と Excel で動作を比較した際に、結果が異なる例です。
CELF シートの場合)
../../../_images/img_01202.png
Excel シートの場合)
../../../_images/img_02168.png

数値(浮動小数点)精度

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」になります。
../../../_images/img_3310.png
Excel シートの場合)
数式「=0.1+0.1+0.1=0.3」の比較結果は「TRUE」になります。
../../../_images/img_3410.png

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」が表示されます。
../../../_images/img_03122.png
Excel シートの場合)
DATE 関数で「1900年2月」の月末を求める数式「=DATE(1900,3,0)」を入力した場合、「1900-02-29」が表示されます。
../../../_images/img_04101.png

参考

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 シートの場合)
../../../_images/img_0591.png

ちなみに

この動作は、セルのドラッグ&ドロップについても同様です。

Excel シートの場合)
../../../_images/img_0677.png

関数の引数に指定したセルの値が空だった場合の動作

CELF では、関数の引数として指定されたセルの値が空だった場合、そのセルの値を空文字("")として扱います。
そのため、引数に数値や日付など文字列以外の値を期待する関数では、Excelと結果が異なる場合があります。

例)DAY 関数の引数(シリアル値)に「値が空」のセルを指定した場合
CELF シートの場合)
セルの値を空文字("")として扱うため、「 =DAY("") 」と評価し、結果は「#VALUE!」になります。
../../../_images/img_357.png
Excel シートの場合)
セルの値を「0」として扱うため、「 =DAY(0) 」と評価し、結果は「0」になります。
../../../_images/img_365.png

注意

Excelと同じ結果を得るためには、セルの値が空文字("")にならないように注意してください。

スピル、および、配列について

CELF では、 Excel のスピル、および、配列には対応していません。そのため、 引数に配列を指定しても CELF では動作しません。
また、関数の結果が複数の値になる場合でも、すべて表示せず、最初の1件のみ表示します。

例)INDEX 関数の第2引数(行番号)に「0」を指定した場合

CELF シートの場合)
../../../_images/img_374.png
Excel シートの場合)
../../../_images/img_383.png

AVERAGEA関数の動作

引数に値が空のセルを含む場合の動作の違い

CELF の AVERAGEA 関数は、引数に「値が空」のセルを含む場合、空のセルを「0」として扱い、平均の個数にカウントします。
以下は、 CELF と Excel で動作を比較した際に、結果が異なる例です。
CELF シートの場合)
「値が空」のセルを「0」として扱うため、「(100 + 0 + 200)/ 3」と評価し、結果は「100」になります。
../../../_images/img_0772.png
Excel シートの場合)
「値が空」のセルは除外されるため、「(100 + 200)/ 2」と評価し、結果は「150」になります。
../../../_images/img_0869.png

COUNTA関数の動作

指定した範囲に数式が存在する場合の動作の違い

CELF の COUNTA 関数は、数式の結果が空文字となるセルを指定した場合、そのセルを除外してカウントします。
以下は、 CELF と Excel で動作を比較した際に、結果が異なる例です。
CELF シートの場合)
数式の結果が空文字であれば、そのセルをカウントせずに結果を表示します。
../../../_images/img_0960.png
Excel シートの場合)
数式の結果が空文字かどうかに関わらず、常にカウントして結果を表示します。
../../../_images/img_1052.png

ISBLANK関数の動作

参照するセルが数式の場合の動作の違い

CELF の ISBLANK 関数は、数式の結果が空文字となるセルを指定した場合、結果を「true」で表示します。
以下は、 CELF と Excel で動作を比較した際に、結果が異なる例です。
CELF シートの場合)
数式の結果が空文字であれば、結果を「true」で表示します。
../../../_images/img_1150.png
Excel シートの場合)
数式の結果が空文字かどうかに関わらず、結果を「false」で表示します。
../../../_images/img_1246.png

SUBTOTAL 関数の動作

集計方法(第1引数)の動作の違い

CELF の SUBTOTAL 関数の集計方法(第1引数)に「1~11」を指定した場合、いずれも非表示行を計算対象外とします。
以下は、 CELF と Excel で動作を比較した際に、結果が異なる例です。
CELF シートの場合)
集計方法「9」(SUM)を指定すると、非表示行を除外した合計を表示します。
../../../_images/img_1343.png
Excel シートの場合)
集計方法「9」(SUM)を指定すると、非表示行も含めた合計を表示します。
../../../_images/img_1439.png

SUMIF関数の動作

検索条件(第2引数)に値が空のセルを指定した場合の動作の違い

CELF の SUMIF 関数は、検索条件に「値が空」のセルを指定した場合、「値が空」のセルとマッチします。
以下は、 CELF と Excel で動作を比較した際に、結果が異なる例です。
CELF シートの場合)
範囲内の「値が空」のセルとマッチし、結果は「値が空」のセルの合計になります。
../../../_images/img_1537.png
Excel シートの場合)
範囲内の「値が空」のセルとマッチせず、結果は「0」になります。
../../../_images/img_1635.png

COUNTIF関数の動作

検索条件(第2引数)に値が空のセルを指定した場合の動作の違い

CELF の COUNTIF 関数は、検索条件に「値が空」のセルを指定した場合、「値が空」のセルとマッチします。
以下は、 CELF と Excel で動作を比較した際に、結果が異なる例です。
CELF シートの場合)
範囲内の「値が空」のセルとマッチし、結果は「値が空」のセルの数になります。
../../../_images/img_1731.png
Excel シートの場合)
範囲内の「値が空」のセルとマッチせず、結果は「0」になります。
../../../_images/img_1829.png

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 シートの場合)
検索値に「値が空」のセルを指定した場合、「値が空」のセルと一致します。
../../../_images/img_1927.png
Excel シートの場合)
検索値に「値が空」のセルを指定した場合、「値が空」のセルと一致せず、結果は「#N/A」になります。
../../../_images/img_2025.png

比較する値に「数値」と「文字列の数字」がある場合の動作の違い

CELF の VLOOKUP 関数の検索値と検索範囲の比較は、「文字列の数字」を数値として扱い、比較を行います。
そのため、検索値が文字列の「123」の場合、検索範囲に数値の「123」があれば、一致していると判断します。
CELF シートの場合)
検索値が文字列の「2」の場合、検索範囲の数値の「2」と一致し、結果は「りんご」になります。
../../../_images/img_2123.png

ちなみに

検索値が数値の「2」の場合、数値の「2」以外にも文字列の「2」 や 「002」のセルとも一致します。

Excel シートの場合)
検索値が文字列の「2」の場合、検索範囲の数値の「2」と一致せず、結果は「#N/A」になります。
../../../_images/img_2220.png

HLOOKUP関数の動作

検索値(第1引数)に「""」や「値が空」のセルを指定した場合の動作の違い

CELF の HLOOKUP 関数は、検索値(第1引数)に「""」や「値が空」のセルを指定した場合、「値が空」のセルとマッチします。
CELF シートの場合)
検索値に「値が空」のセルを指定した場合、「値が空」のセルと一致します。
../../../_images/img_2319.png
Excel シートの場合)
検索値に「値が空」のセルを指定した場合、「値が空」のセルと一致せず、結果は「#N/A」になります。
../../../_images/img_2419.png

比較する値に「数値」と「文字列の数字」がある場合の動作の違い

CELF の HLOOKUP 関数の検索値と検索範囲の比較は、「文字列の数字」を数値として扱い、比較を行います。
そのため、検索値が文字列の「123」の場合、検索範囲に数値の「123」があれば、一致していると判断します。
CELF シートの場合)
検索値が文字列の「2」の場合、検索範囲の数値の「2」と一致し、結果は「りんご」になります。
../../../_images/img_2517.png
Excel シートの場合)
検索値が文字列の「2」の場合、検索範囲の数値の「2」と一致せず、結果は「#N/A」になります。
../../../_images/img_2611.png

XLOOKUP関数の動作

比較する値に「数値」と「文字列の数字」がある場合の動作の違い

CELF の XLOOKUP 関数の検索値と検索範囲の比較は、「文字列の数字」を数値として扱い、比較を行います。
そのため、検索値が文字列の「123」の場合、検索範囲に数値の「123」があれば、一致していると判断します。
CELF シートの場合)
検索値が文字列の「2」の場合、検索範囲の数値の「2」と一致し、結果は「りんご」になります。
../../../_images/img_2714.png
Excel シートの場合)
検索値が文字列の「2」の場合、検索範囲の数値の「2」と一致せず、結果は「#N/A」になります。
../../../_images/img_2814.png

戻り配列(第3引数)が返す値の違い

CELF の XLOOKUP 関数は、戻り配列(第3引数)で返す値が、セルの参照ではなく、セルの値になります。
そのため、 ROW 関数など引数にセルの参照を渡す関数には、 XLOOKUP 関数をネストして使用することはできません。
CELF シートの場合)
ROW 関数の参照に XLOOKUP 関数を指定した場合、検索値に一致する値があっても、ROW関数は評価されません。
../../../_images/img_2912.png
Excel シートの場合)
ROW 関数の参照に XLOOKUP 関数を指定した場合、検索値に一致する値があれば、 ROW 関数は一致した値を評価します。
../../../_images/img_3012.png

一致モード(第5引数)に「2」を指定した場合の動作の違い

CELF の XLOOKUP 関数は、一致モード(第5引数)の「2」(ワイルドカードの一致)に対応していません。
一致モードに「2」を指定した場合、結果は「#VALUE!」になります。
CELF シートの場合)
一致モード(第5引数)に「2」を指定した場合、結果は「#VALUE!」になります。
../../../_images/img_319.png

ちなみに

部分一致などのあいまい検索は行う場合は、「テーブルからデータを1件取得する」アクションで検索するなどの方法を検討してください。

Excel シートの場合)
一致モード(第5引数)に「2」を指定した場合、あいまい検索を行います。
../../../_images/img_329.png

MATCH関数の動作

照合の型(第3引数)に「0」を指定した場合の動作の違い

Excel の MATCH 関数は、照合の型(第3引数)に「0」を指定した場合、検索値にワイルドカードが使用できますが、CELF の MATCH 関数は、対応していません。 そのため、ワイルドカードを使用しても入力された文字列のまま検索するため、結果は「#N/A」になります。

CELF シートの場合)
ワイルドカードを使用した文字列を検索値に指定した場合、入力された文字列のまま検索するため、結果は「#N/A」になります。
../../../_images/img_394.png

ちなみに

部分一致などのあいまい検索は行う場合は、「テーブルからデータを1件取得する」アクションで検索するなどの方法を検討してください。

Excel シートの場合)
ワイルドカードを使用した文字列を検索値に指定した場合、あいまい検索を行います。
../../../_images/img_404.png