同じ関数で別表記(CONVERT/EUROCONVERT/ERROR_TYPE/EFFECT/DPRODUCT)
DATEDIF関数(Excel)とDAYS関数・MONTHS関数・YEARS関数(Calc)
関数は、関数名と引数の2つの部分で構成されます。引数は括弧 ( ) で囲み関数名のすぐあとに記入します。2つ以上のの引数を指定するときはセミコロン ; で区切ります。たとえば次のように記入します。
=ROUND(A1;2)
Excelの関数は、複数の引数を入力するときの区切り記号がカンマです。それに対してCalcの関数は、区切り記号はセミコロンです。この違いに気をつけてください。Excelのつもりでカンマを使ってしまうと、エラーとなってしまします。
ちなみに、設定できる引数は最大30個までです。この制限はExcelもCalcも同じです。
関数の引数に‘関数を使った数式’を入力することができます。つまり、関数の中で関数を使うことができるわけです。これを関数のネストと呼びます。
Excelの数式に入力できる関数は、7レベルまでネストに限られます。それに対してCalcの数式ではそのような制限はありません。Calcのマニュアルには関数ネストの制限についての記載がないので上限は不明ですが、私が試した範囲では30レベル以上の関数のネストを含めることが可能です。
ちなみに、Excelで7レベルを超えた関数のネストが必要なときは、途中までの経過をいったん別セルに書き出してそのセルを参照するか、または数式に名前を付けることによって制限を回避することが可能です。
IF関数は、論理式の結果に応じて処理を切り替える関数です。
ExcelのIF関数は配列数式として使うことができますが、CalcのIF関数は配列数式として使うことはできません。
INDIRECT関数は、数式の中で使用する参照を、別のセルに入力した文字データで間接的に指定するための関数です。
ExcelのINDIRECT関数では、引数で指定したセルに入力できるのは「セル参照」または「範囲名」となっています。それに対してCalcのINDIRECT関数では、引数で与えるセルに入力できるのは、「セル参照」に限られます。
→ 具体例を参照する(Q&A)
また、このセル参照の形式は、「A1」形式のセル番地に限ります。「R1C1」形式のセル番地を指定することはできません。
(注)R1C1形式のセル番地は表計算ソフトのMultiplanと互換性があります。
INDEX関数は、行番号と列番号で指定したセルの内容を返します。
ExcelのINDEX関数には、「セル範囲形式」と「配列形式」の2つの書式があります。Calc のINDEX関数は、「セル範囲形式」の書式に限られます。
COUNT関数は、数値が入力されたセルの個数を返します。
このとき、論理値(TRUEとFALSE)とエラー値の取り扱いがExcelとCalcとで異なります。論理値に関しては、Calcはカウントしますが、Excelはカウントしません。エラー値に関しては、Excelはエラー値を除外して数値セルの個数をカウントしますが、Calcではエラー値が含まれているとCOUNT関数の結果もエラーとなります。
COUNTBLANK関数は、指定した範囲内の空白セルの数を数えます。
このとき、空白文字列が入力されているセル(「=""」の記入されているセル)の取り扱いが異なります。Excelでは、「=""」の入力されているセルをカウントしませんが、Calcでは「=""」の入力されているセルを空白セルとしてカウントします。
指定範囲内の数値の平均を求めます。このとき、空白セルは計算から除外し、数値の0が入力されているセルは計算に含めます。文字列の入力されているセルは0と見なして計算に含めます。
ExcelとCalcとで、空白文字列が入力されているセル(「=""」の記入されているセル)の取り扱いが異なります。Excelでは、「=""」の入力されているセルは文字列として計算に含め0として扱います。それに対してCalcでは、「=""」の入力されているセルを空白セルとして扱い計算に含めません。
SQRT関数は、 正の平方根を返す関数です。Calcでは、この関数は配列数式には対応していません。同じような関数でもCalcのPOWER関数(数値のべき乗を返す)は配列数式に対応しています。Excelの場合には、このどちらの関数も配列数式として使えます。
このような関数は他にもあると思われます。お気づきの方は、このサイトの管理者までお知らせいただければ幸いです。サイトの管理者あてのメールは、右下のHomeボタンをクリックし、トップページの送信フォームをご利用ください。
TRIM関数は、文字列に含まれる不要なスペースを除外します。
ExcelのTRIM関数は全角のスペースも含めて不要なスペースを検索しますが、CalcのTRIM関数は半角のスペースだけを対象として検索します(Calcでは全角のスペースは文字列として取り扱います)。
TYPE関数は、セルに入力されているデータの型を調べる関数です。
ExcelのTYPE関数は数式の結果として表示されているデータの型を返します。それに対してCalcのTYPE関数は、セルの内容が数式のときは「数式(8)」の戻り値を返します。ExcelのTYPE関数を使ってセルに数式が入力されているかどうかを調べることはできません。逆にCalcのTYPE関数を使って数式セルの表示値を調べることはできません。
EOMONTH関数は、月末の日付を型を調べる関数です。Excelでは「分析ツール」などのアドインが組み込まれているときに利用することができます。この関数は、私の環境では、Excel→Calcの一方通行の互換性となっています。
CalcでEOMONTH関数を設定した表計算ドキュメントを作成してExcelのブック形式で保存したものを、Excelで開くと「MONOTSEND」という関数名に置き換わってしまいます。その結果、数式は機能しません。ただし、このExcel形式のファイルをCalcで開くと、「EOMONTH」と表示され、正しくEOMONTH関数として機能します。
ExcelでEOMONTH関数を設定したワークシートをCalcで開くと、そのままEOMONTH関数として正しく機能します。
ExcelのCONVERT関数は、CalcのCONVERT_ADD関数にあたります。数値の単位を別の単位に変換します。単位は指定の記号を使って記入します。(2004.2.3情報追加)
CalcのCONVERT関数は、各国ヨーロッパ通貨をユーロに変換する関数です。この関数は、ExcelのEUROCONVERT関数にあたります。 (2004.2.3情報追加)
ExcelのERROR_TYPE関数は、CalcのERRORTYPE関数に相当します。しかし、両者のエラーコードが異なるため、互換性はありません。
ExcelのEFFECT関数は、CalcのEFFECTIVE関数に相当します。似た関数として、CalcにはEFFECT_ADD関数があります。筆者が調べた範囲では、内容は同じようです。ExcelのEFFECT関数を含むワークシートをCalcで開いたときはEFFECT関数はCalcのEFFECT_ADD関数に変換されます。
ExcelのDPRODUCT関数は、CalcのDPRODUKT関数に相当します。この関数名は、ドイツ語のまま残ってしまったバグと思われます。ちなみにPRODUCT関数やSUMPURODUCT関数は英語綴りになっています(OpenOffice.org1.0.2英語版では修正されてDPRODUCTとなっています)。
ExcelのDATEDIF関数は、開始日と終了日を指定して、その期間内の日数(d)、満月数(m)、または満年数(y)を返します。この関数はLotus1-2-3との互換性を保つために用意されている関数です。そのため、Excelの「関数の入力」ダイアログの一覧からは入力できませんので注意してください。
Excelで、この関数を使って、1977年3月18日生まれの人の満年齢を計算する数式は、次のようになります。
=DATEDIF("1977/3/18",TODAY(),"y")
この関数に相当する関数は、Calcにはありません。しかし、機能的に同じ内容をもつ関数が用意されています。DAYS関数・MONTHS関数・YEARS関数です。
たとえば、CalcでYEARS関数を使って1977年3月18日生まれの人の満年齢を計算する数式は、次のようになります。
=YEARS("1977/3/18";TODAY();0)
このYEARS関数の3番目の引数は、「0」を指定すると満年数で、「1」を指定すると暦の年が変わった時点で1年として計算します。
更新日: ,2005/03/13 15:12