エクセル関数とGoogleスプレッドシート関数の違い
エクセルをGoogleスプレッドシートに変換したりコピーした場合、関数によって違う結果が出ることがあります。
ほとんどの関数は同じ使い方なのでエラーにはなりませんが
大きく使い方が違う関数ではエラーになる場合があります
影響力が大きい関数
・CONCAT
・CONCATENATE
・LARGE
・ROUNDDOWN、ROUND、ROUNDUP
・CONCAT
3個以上値を指定した場合Googleスプレッドシートではエラーになります
エクセル:CONCAT(コンカット)
=CONCAT(値1,値2,値3, ...)
Googleスプレッドシート:CONCAT(コンカット)
=CONCAT(値1,値2)
エクセルのCONCAT関数は(値1,値2,値3, ...)と、複数指定できますが
Googleスプレッドシートは(値1,値2)と、2つしか指定できません
エクセルで使っているCONCATが3つ以上指定している場合Googleスプレッドシートでは「#N/A」エラーになります
対応策
CONCAT関数をCONCATENATE関数に変更することで同じ結果になります
(旧エクセルのCONCATENATEは範囲指定できませんが、GoogleスプレッドシートのCONCATENATEは範囲指定ができます)
また関数を「JOIN」か「TEXTJOIN」に変更することで同じ結果になります
=CONCAT(値1,値2,値3, ...)
↓
=JOIN("",値1,値2,値3, ...)
=TEXTJOIN("",TRUE,値1,値2,値3, ...)
参考:
「JOIN」と「TEXTJOIN」の違い
・CONCATENATE
新しいエクセルで範囲指定した場合の結果が異なります
エクセル:CONCATENATE(コンカテネイト)
=CONCATENATE(範囲指定)
Googleスプレッドシート:CONCATENATE(コンカテネイト)
=CONCATENATE(範囲指定)
新しいエクセルではCONCATENATEはSPILL(スピル)機能で横や下のセルに展開します
新しいエクセルでCONCATENATEをセル展開している場合、
Googleスプレッドシートでは指定範囲のセルすべてが1つのセルに結合され表示されます
対応策(例
=CONCATENATE(B2:F4)
↓
=ArrayFormula(B2:F4)
(※ArrayFormulaは配列数式で範囲指定してCtrl+Shift+Enterを押します)
・LARGE
指定した範囲内を「順位」を指定して表示しますが
通常「順位」は整数で指定しますが
何かの数式で「順位」を取得している場合
Googleスプレッドシートでは小数点以下は切り捨てられ
エクセルでは小数点以下は切り上げられます
エクセル:LARGE(ラージ)
=LARGE(範囲,順位)
Googleスプレッドシート:LARGE(ラージ)
=LARGE(範囲,順位)
エクセルでLARGE(範囲,1.1)と指定した場合
Googleスプレッドシートでは「1.1」を小数点以下は切り捨て「1」番目として数え
エクセルでは「1.1」を小数点以下は切り上げ「2」番目の順位を表示します
(※ただし1未満は「#NUM!」エラーになります)
対応策(例
=LARGE(範囲,順位)
↓
=LARGE(範囲,ROUNDUP(順位))
・ROUNDDOWN、ROUND、ROUNDUP
エクセルで全角で指定した数値は、Googleスプレッドシートでは文字列として判断し「#VALUE!」エラーになります。
エクセル:ROUNDDOWN(ラウンドダウン)
=ROUNDDOWN(数値,桁数)
Googleスプレッドシート:ROUNDDOWN(ラウンドダウン)
=ROUNDDOWN(数値,桁数)
エクセルでROUNDDOWN("12000.45",0)とした場合
エクセルでは"12000.45"を自動で数値として変換され"12000.45"として計算されます
Googleスプレッドシートでは「#VALUE!」エラー
「関数 ROUNDDOWN のパラメータ 1 の値 は 数値 にしてください。テキスト が「12000.45」になっているので、数値 にできません。」
とエラーになります
ROUND、ROUNDUP、TRUNC関数も同様の結果になります
対応策(例:対象がセルB2にある場合
=ROUNDDOWN(B2)
↓
=ROUNDDOWN(ASC(B2))
全角数字で表示されているセルをASC関数で半角にすることで数値として扱われます
他にもあると思われるので追記していきます
エクセル関数とGoogleスプレッドシート関数の違い >
HOME