ExcelのSERIESSUM関数の使い方|べき級数の計算とTaylor展開への応用

スポンサーリンク

「ExcelのSERIESSUM関数ってどう使うの?」「べき級数って言われてもピンとこない…」と感じていませんか。名前からしてちょっと取っ付きにくい関数ですが、仕組みを理解すれば「Taylor展開を電卓代わりのExcelで計算できる」便利な関数なんですよ。

この記事ではExcelのSERIESSUM関数について、基本の使い方からべき級数の考え方、Taylor展開との対応、そして係数配列の作り方まで、同僚に教える感覚でやさしく解説していきます。

この記事は次のような方におすすめです。

  • ExcelのSERIESSUM関数でべき級数の値を求めたい方
  • Taylor展開を使ってsin・cos・e^xなどの近似値をExcelで計算したい方
  • 金融計算や工学計算で多項式の総和を一括で扱いたい方
  • 係数を変えながら級数の挙動を試してみたい方

ExcelのSERIESSUM関数とは?

SERIESSUM関数は、「べき級数(power series)」の総和を一発で計算してくれる数学関数です。ざっくり言うと「x の色々な累乗に係数を掛けて足し合わせた値」を求めてくれる関数ですね。

読み方と分類

読み方は「シリーズ サム」です。Excelの関数分類では「数学/三角関数」に入っています。

そもそも「べき級数」とは?

べき級数とは、変数 x の累乗に係数を掛けた項を無限(または有限)個足し合わせた式のことです。一般的に次のような形で表されます。

a₁x^n + a₂x^(n+m) + a₃x^(n+2m) + a₄x^(n+3m) + …

  • n: 最初の項の x の指数(初期値)
  • m: 次の項に進むときに指数が増える幅(増分)
  • a₁, a₂, a₃, …: 各項に掛かる係数

「なんだか難しそう…」と感じるかもしれませんが、要するに「x^n から始めて、指数を m ずつ増やしながら係数を掛けて足していく」だけなんですよ。SERIESSUM関数はこの計算を引数4つだけで片付けてくれる、というわけですね。

SERIESSUM関数でできること

SERIESSUM関数を使うと、手作業で =A1B1^1 + A2B1^3 + A3*B1^5 + … と書き並べなくても、係数をまとめた範囲を指定するだけで級数の値を計算できます。項数が増えても式を伸ばす必要がないので、Taylor展開のような多項式近似にぴったりですよ。

ExcelのSERIESSUM関数の構文

まずは構文をチェックしましょう。4つの引数すべてが必須です。

=SERIESSUM( x , n , m , 係数 )

この関数は次の式と同じ計算をしてくれます。

係数₁ × x^n + 係数₂ × x^(n+m) + 係数₃ × x^(n+2m) + …

引数:x(必須)

べき級数に代入する変数の値を指定します。「x = 0.5 のときの級数の値を知りたい」なら、ここに0.5やそのセル参照を入れるイメージです。

引数:n(必須)

最初の項における x の指数(初期値)を指定します。たとえばn = 1なら級数は x^1 から始まり、n = 0なら定数項 x^0 = 1 から始まります。

引数:m(必須)

項が進むごとに指数を何ずつ増やすか、その増分を指定します。m = 1なら指数は1ずつ増え(x, x², x³, …)、m = 2なら2ずつ増えます(x, x³, x⁵, …)。偶関数・奇関数の級数を作るときに地味に効いてくる引数ですよ。

引数:係数(必須)

各項に掛かる係数をまとめた配列またはセル範囲を指定します。この係数の個数で級数の項数が自動的に決まるのがポイントです。係数を5個指定すれば5項、10個指定すれば10項の級数が計算されます。

ExcelのSERIESSUM関数の使い方(基本例)

セル参照で計算する

シートに次のように値を入力しておきます。

  • B2: 0.5(x)
  • B3: 1(n:最初の指数)
  • B4: 2(m:指数の増分)
  • B5〜B8: 1, 1, 1, 1(係数4個)

そのうえで任意のセルに次の式を入力します。

=SERIESSUM(B2, B3, B4, B5:B8)

計算内容は次のようになります。

  • 1 × 0.5^1 = 0.5
  • 1 × 0.5^3 = 0.125
  • 1 × 0.5^5 = 0.03125
  • 1 × 0.5^7 = 0.0078125

合計は約0.6640625です。「x、x³、x⁵、x⁷ の項を足し合わせた」という奇数次のみの級数が、引数4つで計算できてしまうんですね。

係数を直接書く書き方

係数が少なければ、配列定数として式の中に直接書くこともできます。

=SERIESSUM(0.5, 1, 2, {1;1;1;1})

縦方向の配列定数はセミコロン;で区切ります。結果は同じく約0.6640625です。

SERIESSUM関数とTaylor展開の対応

SERIESSUM関数が真価を発揮するのは、Taylor展開(関数を多項式で近似する数学のテクニック)を計算するときです。いくつか代表的な関数を見てみましょう。

e^x のTaylor展開

指数関数 e^x は次のように展開できます。

e^x ≈ 1 + x + x²/2! + x³/3! + x⁴/4! + …

これは「n = 0、m = 1」で、係数が 1, 1/1!, 1/2!, 1/3!, 1/4!, … の級数ですね。Excelで書くなら次のようになります。

=SERIESSUM(A1, 0, 1, {1; 1; 0.5; 0.166666667; 0.041666667; 0.008333333})

A1に1を入れると、結果はおよそ2.71667。本物の e ≈ 2.71828 にかなり近づきますよ。項数を増やせばさらに精度が上がります。

cos(x) のTaylor展開

cos(x) の展開は次のとおりです。

cos(x) ≈ 1 − x²/2! + x⁴/4! − x⁶/6! + …

「偶数次だけ」「符号が交互に変わる」のが特徴ですね。SERIESSUMなら n = 0, m = 2 に設定し、係数を符号付きで渡せばOKです。

=SERIESSUM(A1, 0, 2, {1; -0.5; 0.041666667; -0.001388889})

A1に0を入れると1(= cos(0))が返ります。m = 2 にすることで偶数次だけを取り出せるのが、SERIESSUMの気の利いたところですよ。

sin(x) のTaylor展開

sin(x) は奇数次だけの級数です。

sin(x) ≈ x − x³/3! + x⁵/5! − x⁷/7! + …

こちらは n = 1, m = 2 で奇数次だけを拾います。

=SERIESSUM(A1, 1, 2, {1; -0.166666667; 0.008333333; -0.000198413})

cos と sin で n を切り替えるだけで対応できるのが、SERIESSUMの便利さを実感できるポイントですね。

係数配列を効率よく作るコツ

Taylor展開の係数には階乗(1!, 2!, 3!, …)が登場することが多いので、手で書くとミスの元です。そこでExcelの他の関数と組み合わせて係数列を作ると効率的ですよ。

FACT関数で階乗を計算する

係数列を作る専用の作業列を用意して、次のように書いておきましょう。

  • C1: =1/FACT(0) → 1
  • C2: =1/FACT(1) → 1
  • C3: =1/FACT(2) → 0.5
  • C4: =1/FACT(3) → 0.166666…

そのうえで =SERIESSUM(A1, 0, 1, C1:C10) のように参照すれば、項数を増やしたいときは作業列を下に伸ばすだけで済みます。

符号を交互に変える

sin や cos のように符号が交互に変わる級数では、(-1)^(行番号-1) を掛け算して符号を制御する方法が定番です。たとえば、=(-1)^(ROW()-1)/FACT(2*(ROW()-1)) のような式でcosの係数列を一気に生成できますよ。

SEQUENCE関数と組み合わせた1セル係数生成(Excel 365 / 2021+)

Excel 365 や Excel 2021 以降を使っているなら、SEQUENCE 関数と FACT 関数を組み合わせることで、作業列を使わずに係数配列を1つの式で生成できます。

e^x の係数を10項分生成する式

=1/FACT(SEQUENCE(10,1,0,1))

SEQUENCE(10,1,0,1) が 0, 1, 2, ..., 9 の縦配列を返し、それぞれの階乗の逆数を取ります。これを SERIESSUM の係数引数にそのまま入れられます。

=SERIESSUM(A1, 0, 1, 1/FACT(SEQUENCE(10,1,0,1)))

cos(x) の符号付き係数を5項分生成する式

=(-1)^SEQUENCE(5,1,0,1)/FACT(SEQUENCE(5,1,0,1)*2)

こちらは 1/0!, -1/2!, 1/4!, -1/6!, 1/8! という符号交互の係数列を1行で作れます。

=SERIESSUM(A1, 0, 2, (-1)^SEQUENCE(5,1,0,1)/FACT(SEQUENCE(5,1,0,1)*2))

作業列を持たずにモデルがスリムになるので、マスタシートを整理したいときに重宝するテクニックですよ。なお、SEQUENCE 関数は Excel 2019 以前では使えません。旧バージョンをお使いの場合は作業列で FACT を書き並べる方法(前セクション)をご利用ください。

ExcelのSERIESSUM関数の実務での使いどころ

「理屈は分かったけど、実務でいつ使うの?」と思いますよね。代表的な活用シーンを3つ紹介します。

1. 金融計算(現在価値・債券価格)

債券の価格は「将来のキャッシュフローを割引率で現在価値に戻した合計」で計算されます。これは数学的にはべき級数の形をしているので、SERIESSUM関数で一発計算できるケースがあります。割引率を x(の関数)として、各年のクーポンを係数に入れるイメージですね。

2. 工学・物理での多項式近似

センサー値の校正式や、温度と抵抗値の関係など、実験データを多項式でフィッティングすることはよくあります。fittingで得られた係数さえあれば、SERIESSUMを使って任意のxに対する予測値を簡単に求められますよ。

3. Taylor展開による関数近似の学習・検証

関数の近似精度が項数でどう変わるかを見る教材としても使えます。係数列の長さを変えながら計算結果をグラフ化すると、「項を増やすほど真の値に近づく」様子が直感的に分かって、数学の学習用途としても優秀ですね。

SERIESSUMと代替手法の使い分け

同じべき級数を計算する方法はいくつかありますが、どれを選ぶかは状況によって変わります。

方法式イメージ向いているケース注意点
SERIESSUM=SERIESSUM(x, n, m, 係数範囲)n・m が整数の等差指数列、Taylor展開n・m は整数のみ
SUMPRODUCT + POWER=SUMPRODUCT(係数, POWER(x, SEQUENCE(k,1,n,m)))小数の指数増分が必要な場合、動的配列との連携式が長くなりやすい
手書き展開=a1x^n + a2x^(n+m) + …項数が少なく視認性を優先したいとき項数が増えると管理困難

SERIESSUM の実質的な制約は「n・m が整数でなければならない点」だけです。等差の指数列ならほぼ SERIESSUM で対応できます。非等差の指数列(例: x^1 + x^2 + x^4 + x^7 のような不規則な次数)が必要なときは SUMPRODUCT + POWER に切り替えましょう。

SERIESSUM関数でよくあるエラーと対処法

  • #VALUE!エラー: x、n、m に数値以外が指定されている場合に発生します。特に係数範囲に文字列や空白セルが混ざっていないか確認しましょう
  • 想定と違う結果になる: n と m の解釈ミスが原因のことが多いです。「最初の項の指数が n」「次の項から m ずつ増える」という順序を再確認してください
  • 係数の個数が合わない: 係数の個数=項数なので、Taylor展開で「10項ほしい」なら係数を10個用意する必要があります。途中に空白セルが入らないように注意しましょう

#NUM!エラーにも注意——オーバーフロー対策

#VALUE! 以外に、計算結果が極端に大きくなったときに #NUM! エラーが出ることがあります。

x の絶対値が大きい(例: x = 100)状態で項数や指数も大きいと、計算途中の値が Excel の上限(約 10^308)を超えてしまいます。そのまま計算が続くと #NUM! エラーになります。べき級数は |x| が小さいほど収束が速いので、x の絶対値が大きいほど多くの項が必要になり、誤差も増えていきます。

対処法としては次の3点が有効です。

  • x を正規化・スケーリングして 0〜1 の範囲に収める
  • 項数(係数の個数)を減らして計算量を抑える
  • 対数変換を組み合わせることを検討する

|x| が 1 を超える場合は「本当にこの x の範囲でべき級数が適切か」を確認する習慣をつけておくと、精度面でも安心ですよ。

ExcelとGoogleスプレッドシートの互換性

「同じ式をGoogleスプレッドシートでも使いたい」という場面は多いと思います。SERIESSUM はGoogleスプレッドシートにも実装されており、構文・引数はExcelと完全に同じです。Excelから貼り付けてもほぼそのまま動作しますよ。

ただし、配列定数の区切り文字がロケール設定によって異なる点だけ注意が必要です。日本語環境でセミコロンが使えない場合はカンマに切り替えてみてください。

環境縦配列の区切り横配列の区切り
Excel(日本語);(セミコロン),(カンマ)
Googleスプレッドシート; または ,(ロケール依存); または ,

また、Googleスプレッドシートで複数の x を一括評価したい場合は注意が必要です。SERIESSUM 自体はスカラー値を返す関数なので ARRAYFORMULA には対応していません。複数 x を処理するなら SERIESSUM を入力した列を縦に並べるか、MAP 関数でラップするアプローチが使えます。

SERIESSUM関数でよくある質問

Q. x = 0 かつ n = 0 のとき、どんな値が返りますか?

最初の係数の値だけが返ります。0^0 = 1 として扱われるため、計算は 係数₁ × 1 = 係数₁ になります。Taylor展開で「定数項が合っているか」を手軽に確認するときに使えますよ。

Q. n や m に小数・負の数を指定できますか?

n と m は整数で指定するのが基本です。小数を入れると #VALUE! エラーになる場合があります。m に負の整数を指定すると指数が降順になりますが(例: 6, 5, 4, …)、用途が限られるため基本は正の整数で使うのが無難です。

n・m が整数でなければならない制約を回避したい場合は、SUMPRODUCT と POWER を組み合わせた式が代替になります。

=SUMPRODUCT(係数, POWER(x, SEQUENCE(項数, 1, n, m)))

SEQUENCE の増分 m に小数を指定できるので、非等差の指数列にも対応できます。

Q. 係数が1個だけのとき何が返りますか?

係数₁ × x^n だけ、つまり単純なべき乗計算の結果が返ります。=POWER(x, n) * 係数₁ と同じ値ですよ。

Q. 係数範囲に空白セルが含まれているとどうなりますか?

空白セルは 0 として扱われ、計算自体は止まりません。ただし「空白で項が途切れる」と誤解してミスになりやすいポイントです。係数範囲を指定するときは空白が混入していないかを事前に確認する癖をつけておきましょう。

Q. 係数範囲は縦列でなく横行でも使えますか?

行・列いずれの範囲でも機能します。配列定数で書く場合は方向に応じて区切り文字を使い分けてください(縦: セミコロン {1;2;3}、横: カンマ {1,2,3})。

まとめ

ExcelのSERIESSUM関数について、基本の使い方からTaylor展開との対応、係数配列の作り方、実務での使いどころまで解説しました。ポイントを振り返ります。

  • SERIESSUM関数はべき級数(a₁x^n + a₂x^(n+m) + a₃x^(n+2m) + …)の総和を計算する数学関数
  • 構文は=SERIESSUM(x, n, m, 係数)で、係数の個数が級数の項数になる
  • nは最初の項の指数、mは指数の増分。m=2にすると偶数次・奇数次だけの級数が作れる
  • e^x・sin(x)・cos(x)などのTaylor展開をそのままの形で計算できる
  • 係数はFACT関数と組み合わせて作業列で生成するとミスが減る
  • 金融計算・工学の多項式近似・数学学習など、地味だが応用範囲は広い

ちょっと数学寄りの関数ですが、一度仕組みを掴んでしまえば「級数の計算はSERIESSUMに任せる」というシンプルな使い方ができるので、覚えておいて損はない関数ですよ。

関数一覧

ましゅかぶろぐではExcel関数の一覧を3パターンご用意しています。用途に合わせてお使いください。

エラー値についてのまとめ記事

関数でエラーが発生した際に表示されるエラーの種類については、【Excel】セルに表示されるエラーの種類と原因、対処方法を解説でまとめていますので、あわせて確認してみてくださいね。

タイトルとURLをコピーしました