C#を使用してExcelでワークシートの数式を編集する方法

IronXLを使ってC#でExcelの数式を編集する

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronXLを使用すると、任意のセルにFormulaプロパティを設定し、FormattedCellValueで計算結果を取得し、EvaluateAll()を使用してワークブック内のすべての数式を再計算することにより、C#でExcelの数式を編集することができます。 このライブラリは、165以上のExcel数式をサポートし、セルの値が変更されたときの動的な更新を保証します。

Excelの数式は、等号(=)から始まる数式で、数学的計算、データ操作、セル値に基づく結果の導出に使用されます。 それは算術、関数、セル参照、定数、および論理演算を含むことができます。 数式はセルの値が変化するにつれて動的に更新でき、Excelをタスクの自動化とデータ分析のための多目的ツールにします。 IronXLは、Excelファイルの既存の数式を編集し、数式から結果を取得し、ワークブックを強制的に再評価することをサポートしています。 これにより、すべての数式が正確な結果のために再計算されることを保証します。 IronXLは165以上の数式をサポートしています。

クイックスタート: セルの数式を即座に変更

IronXLのFormulaプロパティを使用して、任意のセルに数式を設定または更新します。 その後、EvaluateAll()を呼び出して、すべての数式を再計算します。

Nuget Icon今すぐ NuGet で PDF を作成してみましょう:

  1. NuGet パッケージ マネージャーを使用して IronXL をインストールします

    PM > Install-Package IronXL.Excel

  2. このコード スニペットをコピーして実行します。

    IronXL.WorkBook.Load("MyFile.xlsx").DefaultWorkSheet["B2"].Formula = "=平均(C1,C2)";
    workBook.EvaluateAll();
  3. 実際の環境でテストするためにデプロイする

    今すぐ無料トライアルでプロジェクトに IronXL を使い始めましょう
    arrow pointer


なぜIronXLは数式編集に最適なのでしょうか? IronXLはMicrosoft Office Interopの必要性を排除し、直感的なプロパティを通して数式への直接アクセスを提供します。 このライブラリは、[165以上の組み込みExcel関数](https://ironsoftware.com/csharp/excel/how-to/math-functions/)をサポートし、複雑な数式の依存関係を自動的に処理し、Windows、Linux、macOSの各プラットフォームで高速処理を実現します。 軽量なアーキテクチャにより、外部依存なしにExcelと互換性のある計算が可能です。 ### システム要件は何ですか? IronXLには.NET Framework 4.6.2以上、または.NET Core 2.0以上が必要です。 このライブラリは、Microsoft Excelをインストールすることなく、Windows、Linux、macOS上で動作します。 複雑な数式を含む大規模なワークブックで最適なパフォーマンスを得るためには、少なくとも4GBのRAMを推奨します。 [プラットフォーム固有の詳細な要件については、完全なドキュメント](https://ironsoftware.com/csharp/excel/docs/)を確認してください。 ### IronXLを使い始めるには? `Install-PackageIronXL.Excel`でパッケージマネージャーコンソールを使ってNuGetパッケージをインストールしてください。 インストール後、[ライセンスキーを適用](https://ironsoftware.com/csharp/excel/get-started/license-keys/)して、全機能のロックを解除してください。 C#ファイルにIronXL名前空間をインポートし、数式の編集を開始してください。 直感的なAPI設計により、Excelファイルを読み込んで数分で数式を修正できます。 ## C#を使用してExcelで数式を編集するには? 数式を編集または設定するには、**`Formula`**プロパティにアクセスしてください。 まず、範囲またはセルを選択し、`Formula`プロパティにアクセスして設定します。 `Formula` プロパティは、もしあれば、数式文字列を返す get および set プロパティです。 `EvaluateAll()`メソッドを呼び出してワークブック全体を再評価し、正確な計算を保証します。 ```csharp :path=/static-assets/excel/content-code-examples/how-to/edit-formulas-edit-formulas.cs ``` IronXLは数式を扱う際に完全な柔軟性を提供します。 既存の数式を修正したり、新しい数式を作成したり、実行時の条件に基づいて動的な数式を構築したりすることができます。 このライブラリは、Excelとの互換性を確保するため、数式の構文検証を自動的に処理します。 複雑なシナリオについては、高度な操作テクニックを示す [comprehensive formula examples](https://ironsoftware.com/csharp/excel/examples/excel-formulas-csharp/) を参照してください。 ### なぜ数式の編集後に EvaluateAll() を使用する必要があるのですか? `EvaluateAll()`メソッドは、Excelワークブックのデータの整合性を維持します。 数式を変更すると、ワークブック全体の依存セルに再計算が必要になることがあります。 `EvaluateAll()`は、ワークブックの完全な再計算をトリガーし、すべての数式が最新の変更を反映するようにします。 これは、1つのセルの結果が複数の計算に影響するカスケード式を扱う場合に非常に重要です。 `EvaluateAll()`を呼び出さなければ、古い値をエクスポートしてしまい、データの不整合につながる可能性があります。 ### ワークブックを再計算しないとどうなりますか? 再計算を省略すると、重大な問題につながる可能性があります。 Excelファイルには、数式とキャッシュされた結果の両方が保存されます。 再計算せずに数式を変更すると、キャッシュされた値が変更されずに残り、数式と表示結果の間に不一致が生じます。 この不一致は、ユーザーがExcelでファイルを開き、予想と異なる値が表示されたときに明らかになります。 これらの計算式の結果に依存する後続の操作は、古いデータを使用することになり、下流のプロセスでエラーを引き起こす可能性があります。 ### 一度に複数の数式を編集できますか? はい、IronXLは範囲操作による数式の一括編集をサポートしています。 `workSheet["A1:A10"]`のような範囲表記を使用して複数のセルを選択し、すべてのセルに数式を同時に適用します。 複雑なパターンでは、セルのコレクションを繰り返し処理し、条件付きロジックを適用して、セルの位置や既存の値に基づいて異なる数式を設定します。 このアプローチは、[繰り返しの数式パターンでスプレッドシートを作成したり](https://ironsoftware.com/csharp/excel/how-to/create-spreadsheet/)、大規模なデータセットをプログラムで更新したりする場合に効果的です。 ## 数式から結果を取得するには? 数式から結果を取得するには、正確な結果を得るためにセルの**`FormattedCellValue`**プロパティを使用してください。 選択されたRange内で、`First`メソッドを使用してCellにアクセスし、シーケンスの最初の要素を選択します。 そこから、`FormattedCellValue`プロパティにアクセスします。 ```csharp :path=/static-assets/excel/content-code-examples/how-to/edit-formulas-retrieve-formula-value.cs ``` `FormattedCellValue` プロパティは、数値書式、日付書式、およびカスタム書式ルールを尊重し、Excel で表示されるようにセルの値を返します。 これにより、プログラムによる出力とユーザーがExcelで見る出力との一貫性が保たれます。 数値分析では、`Value`プロパティを通して生の値にアクセスします。 ### なぜ Value プロパティの代わりに FormattedCellValue を使用するのですか? `FormattedCellValue`は、アプリケーションで Excel の視覚的な書式設定を維持するために重要な、セルの内容の表示可能な表現を提供します。 `Value` プロパティは生のデータを返しますが、`FormattedCellValue` は、数値の書式、通貨記号、パーセント表示、日付の書式設定など、Excel の書式設定ルールを適用します。 この区別は、Excelの経験と一貫した書式の値を期待するエンドユーザーにレポートを作成したり、データを表示したりする際に重要になります。 詳細なフォーマットオプションについては、[APIリファレンス](https://ironsoftware.com/csharp/excel/object-reference/api/)を参照してください。 ### セルの値と計算式の結果の違いは何ですか? セルの数式は式("=A1+B1 "のような)であり、数式結果は計算値("150 "のような)です。 IronXLは異なるプロパティを通してこれらの概念を分離します:`式を表すFormula`と、結果を表す`Value`/`FormattedCellValue`です。 この分離により、監査のための計算式の検査、プログラムによる計算の修正、さらなる処理のための結果の抽出が可能になります。 `Formula`プロパティがNULLを返す一方で、`Value`はセルの内容を提供したままです。 ### 数式エラーはどのように処理すればよいですか? Excelの数式エラー(#DIV/0!、#価値!、#REF!など)は、C#コードで特別な処理が必要です。 IronXLはこれらのエラー状態を保持し、検出とプログラムによる対応を可能にします。 FormattedCellValue プロパティで文字列比較を使用してセルにエラーが含まれているかどうかをチェックしたり、数式結果を数値処理するときに try-catch ブロックを実装したりします。 堅牢なエラー処理については、数式の評価前に検証ロジックを考慮するか、Excelの`もしERRまたは`関数を数式内で使用してフォールバック値を提供します。 [よくある問題のトラブルシューティング](https://ironsoftware.com/csharp/excel/troubleshooting/file-size-limits/)については、こちらをご覧ください。 ## IronXLはどのExcelの数式をサポートしていますか? Excelには、さまざまな計算目的のために450以上の数式が含まれています。 IronXLは、最も一般的に使用される数式の約165をサポートしています。 サポートされる数式については、以下を確認してください:
数式名 翻訳内容
ABS符号を無視して数値の絶対値を返します。
INT数値を最も近い整数に切り捨てます。
カウント指定された範囲内の数値を含むセルの数を数えます。
もし条件テストを実行し、条件が真の場合は 1 つの値を返します。条件が偽の場合は別の値を返します。
数値の範囲を合計します。
平均数値の範囲の平均を計算します。
数値セットから最小値を返します。
マックス数値セットから最大値を返します。
セル参照の行番号を返します。
カラムセル参照の列番号を返します。
それ"利用不可"または欠落データのエラー値を表します。
正味現在価値指定された割引率で一連のキャッシュフローの正味現在価値を計算します。
標準偏差一連の数値の標準偏差を計算します。
サイン数値の符号を、負の場合は -1、ゼロの場合は 0、正の場合は 1 として返します。
ラウンド数値を指定された小数点以下の桁数に丸めます。
見上げる範囲内の値を検索し、別の範囲から対応する値を返します。
索引指定された範囲の指定された行と列にあるセルの値を返します。
レプトテキスト文字列を指定された回数繰り返します。
ミッド指定された開始位置と長さに基づいて、特定のテキスト文字列からテキストの一部を抽出します。
のみテキスト文字列内の文字数を返します。
価値数値を表すテキスト文字列を実際の数値に変換します。
真実"True"の論理値を表します。
間違い"False"の論理値を表します。
そして指定されたすべての条件が真であるかどうかを確認し、真である場合は"True"を返し、そうでない場合は"False"を返します。
または指定された条件の少なくとも 1 つが真であるかどうかを確認し、真である場合は"True"を返し、そうでない場合は"False"を返します。
ない条件の論理値を反転し、"True"を"False"に、またはその逆に変換します。
に対してある数値を別の数値で割ったときの余りを返します。
D分指定された条件に基づいてデータベースから最小値を抽出します。
私たちの一連の数値の分散を計算します。
文章指定された形式を使用して数値をテキストに変換します。
PV一連のキャッシュフローと割引率に基づいて、投資またはローンの現在価値を計算します。
FV(将来価値)定期的な支払いと指定された利率に基づいて、投資またはローンの将来価値を計算します。
NPER(期間数)定期的な支払いと金利に基づいて、特定の財務目標を達成するために必要な支払い期間の数を決定します。
PMT(支払い)元金と利息を含むローンまたは投資の返済に必要な定期的な支払いを計算します。
RATE(金利)一連の定期的な支払いで財務目標を達成するために必要な金利を計算します。
MIRR(修正内部収益率)複数の再投資および融資率を考慮し、一連のキャッシュフローの内部収益率を計算します。
IRR(内部収益率)一連のキャッシュフローの内部収益率を計算し、投資が損益分岐点に達する率を示します。
ランド0 から 1 までのランダムな小数を生成します。
マッチ範囲内で指定された値を検索し、見つかった項目の相対位置を返します。
日付年、月、日を指定して日付値を作成します。
時間時間、分、秒を指定して時間値を作成します。
指定された日付から日を抽出します。
指定された日付から月を抽出します。
指定された日付から年を抽出します。
平日指定された日付の曜日を返します。
時間指定された時刻から時間を抽出します。
指定された時刻から分を抽出します。
2番指定された時刻から秒を抽出します。
現在の日付と時刻を返します。
エリア参照内の個々の範囲の数をカウントします。
指定された範囲内の行数をカウントします。
コラム指定された範囲内の列の数をカウントします。
オフセット指定されたセルから特定の行数と列数だけオフセットされた参照を返します。
検索テキスト文字列内の部分文字列を検索し、その位置を返します。
転置範囲の行と列を転置します。
アタン2指定された x 座標と y 座標の逆正接を計算します。
指定された値の逆正弦を計算します。
ACOS指定された値の逆余弦を計算します。
選ぶ指定された位置に基づいて値のリストから値を返します。
検索テーブルまたは範囲の一番上の行の値を検索し、指定された行の同じ列の値を返します。
V見上げるテーブルまたは範囲の最初の列の値を検索し、指定された列の同じ行の値を返します。
ISREF値が参照であるかどうかを確認し、そうである場合は"True"を返し、そうでない場合は"False"を返します。
ログ指定された底に対する数値の対数を計算します。
チャー指定された番号で指定された文字を返します。
より低いテキストを小文字に変換します。
アッパーテキストを大文字に変換します。
ちゃんとしたテキスト文字列内の各単語の最初の文字を大文字にします。
テキスト文字列の先頭から指定された文字数を抽出します。
テキスト文字列の末尾から指定された文字数を抽出します。
ちょうど2 つのテキスト文字列を比較し、同一の場合は"True"を返し、同一でない場合は"False"を返します。
トリム単語間の単一のスペースを除き、テキスト文字列から余分なスペースを削除します。
交換するテキスト文字列内の指定された数の文字を新しいテキストに置き換えます。
代わりのテキスト文字列内の指定されたテキストを新しいテキストに置き換えます。
コードテキスト文字列の最初の文字の数値 Unicode 値を返します。
探すテキスト文字列内の特定の部分文字列を検索し、その位置を返します。
ISERR値が"#N/A"以外のエラー値であるかどうかを確認し、そうである場合は"True"を返し、そうでない場合は"False"を返します。
テキスト値がテキストかどうかを確認し、テキストの場合は"True"を返し、そうでない場合は"False"を返します。
番号値が数値かどうかを確認し、数値の場合は"True"を返し、数値でない場合は"False"を返します。
空白セルが空かどうかを確認し、空の場合は"True"を返し、空でない場合は"False"を返します。
T値をテキスト形式に変換します。
日付値テキストとして表された日付を日付シリアル番号に変換します。
クリーンテキストから印刷できない文字を削除します。
MDETERM配列の行列式を計算します。
ミンバース行列の逆数を返します。
MMULT2 つの行列を乗算します。
IPMT指定された期間のローン支払いの利息部分を計算します。
PPMT指定された期間のローン支払いの元金部分を計算します。
カウントテキストや数値など、範囲内の空でないセルの数を数えます。
製品範囲内のすべての数値を乗算します。
事実数値の階乗を計算します。
テキストではありません値がテキストではないかどうかを確認し、テキストでない場合は"True"を返し、テキストの場合は"False"を返します。
配送標本に基づいて母集団の分散を推定します。
トランク数値を指定された小数点以下の桁数に切り捨てます。
非論理的値が論理値 (ブール値) であるかどうかを確認し、そうである場合は"True"を返し、そうでない場合は"False"を返します。
USDOLS数値を通貨記号と小数点 2 桁を含むテキスト形式に変換します。
切り上げする数値を指定された小数点以下の桁数に切り上げます。
切り下げ数値を指定された小数点以下の桁数に切り捨てます。
ランクリスト内の数値の順位を返します。同点を処理するオプションもあります。
住所行番号と列番号に基づいてセル アドレスをテキストとして返します。
デイズ3601 年を 360 日として、2 つの日付間の日数を計算します。
今日現在の日付を返します。
中央値一連の数値の中央値を返します。
サンプロダクト配列内の対応する要素を乗算し、積の合計を返します。
生まれる数値の双曲線正弦を計算します。
コッシュ数値の双曲線余弦を計算します。
タン数値の双曲線正接を計算します。
アシン数値の逆双曲線正弦を計算します。
アコッシュ数値の逆双曲線余弦を計算します。
アタン数値の逆双曲線正接を計算します。
外部関数外部アドインまたはカスタム関数によって提供される関数呼び出しまたは操作を表します。
エラータイプ指定された値のエラー タイプに対応する数値を返します。
アヴェデフ一連の値の平均からの絶対偏差を計算します。
組み合わせるより大きなセットから取得した特定の数の項目の組み合わせの数を計算します。
数値を最も近い偶数に切り上げます。
指定された基準値の最も近い倍数に数値を切り捨てます。
シーリング指定された基準値の最も近い倍数に数値を切り上げます。
ノルディスト指定された値の累積正規分布関数を計算します。
ノルムディスト標準正規累積分布関数を計算します。
ノーミンV指定された確率の正規累積分布関数の逆を計算します。
ノルムシンブ標準正規累積分布関数の逆関数を計算します。
標準化値を平均 0、標準偏差 1 の標準正規分布に変換します。
奇数数値を最も近い奇数の整数に切り上げます。
ポワソン指定された数のイベントのポアソン分布確率を計算します。
TDIST指定された値と自由度に対するスチューデント t 分布を計算します。
和XMY22 つの配列内の対応する値の差の二乗の合計を計算します。
和X2MY22 つの配列内の対応する値の差の二乗の合計を計算します。
和X2PY22 つの配列内の対応する値の合計の二乗の合計を計算します。
インターセプトグラフ内のトレンドラインが Y 軸と交差するポイントを計算します。
スロープグラフ内のトレンドラインの傾きを計算します。
デブスクデータ ポイントの平均からの偏差の二乗の合計を返します。
和SQ一連の数値の平方の合計を計算します。
大きいデータセット内の k 番目に大きい値を返します (k が指定されます)。
小さいデータセット内の k 番目に小さい値を返します (k が指定されます)。
パーセンタイルデータセットの k 番目のパーセンタイル (k を指定) を返します。
パーセントランクデータセット内の値の順位を、値の合計数に対するパーセンテージとして返します。
モードデータセット内で最も頻繁に発生する値を返します。
連結複数のテキスト文字列を 1 つに結合します。
数値を指定された指数で累乗します。
ラジアン度をラジアンに変換します。
学位ラジアンを度に変換します。
小計範囲内でさまざまな計算 (合計、平均など) を実行し、範囲内の他の 小計 結果を含めるか除外するかを選択できます。
和もし指定された条件を満たす範囲内のすべての数値を合計します。
カウントもし指定された条件を満たす範囲内のセルの数をカウントします。
カウントブランク範囲内の空のセルの数を数えます。
ローマアラビア数字をローマ数字に変換します。
ハイパーリンクWeb ページまたはファイルへのハイパーリンクを作成します。
テキストや論理値を含む数値セットから最大値を返します。
私のテキストや論理値を含む数値セットから最小値を返します。
### どの数式を最も頻繁に使用すべきですか? ビジネスアプリケーションで最も頻繁に使用される数式には、`和`、`平均`、`カウント`、`もし`、`V見上げる`などがあります。 これらの基本的な公式は、データ分析のニーズの大部分をカバーしています。 金融アプリケーションでは、`正味現在価値`、`PMT`、`IRR`関数を使用してください。 統計解析は、`標準偏差`、`中央値`、`パーセンタイル` 関数の恩恵を受けます。 テキスト操作は、`連結`、`左`、`右`、`トリム`関数に依存しています。 これらの核となる公式を理解することで、組み合わせによる複雑な計算が可能になります。 IronXLの包括的な数式サポートにより、C#アプリケーションはExcelのあらゆる計算要件に対応できます。 ### 私の数式がサポートされていない場合はどうすればよいですか? IronXLはほとんどのビジネスニーズをカバーする165以上の数式をサポートしていますが、いくつかの特殊な、あるいは新しいExcel関数は使用できない場合があります。 いくつかの選択肢があります:まず、サポートされている数式の組み合わせで同じ結果が得られるかどうかを確認します。 Excelの複雑な関数の多くは、基本的な数学操作で再現できます。 あるいは、計算ロジックをC#で直接実装し、結果を値としてセルに書き込む。 ミッションクリティカルな数式がサポートされていない場合は、[IronXLサポート](https://ironsoftware.com/csharp/excel/features/)までご連絡ください。 開発チームは、ユーザーからのフィードバックに基づいて、定期的に公式サポートを更新します。 ### カスタム数式サポートを追加できますか? IronXLは、異なるExcelのバージョンやアプリケーション間での互換性を確保するために、標準的なExcelの数式をサポートすることに重点を置いています。 IronXLを通してExcel自体にカスタム数式定義を追加することはできませんが、効果的な回避策を作成することはできます。 C#アプリケーションにカスタム計算ロジックを実装し、IronXLを使用して入力値を読み取り、結果を書き込みます。 複雑なシナリオの場合は、サポートされている複数の数式を組み合わせて、希望する結果を達成してください。 このアプローチでは、Excelファイルの互換性を維持しながら、カスタム計算のためにC#を活用します。 [IronXLの豊富な機能](https://ironsoftware.com/csharp/excel/features/)を活用して、数式自動化機能を最大限に活用してください。

よくある質問

C#でExcelの数式をプログラムで編集するには?

IronXLを使用すると、任意のセルにFormulaプロパティを設定することにより、C#でExcelの数式を編集することができます。ワークブックをロードして目的のセルにアクセスし、'='で始まる数式文字列をFormulaプロパティに代入するだけです。次にEvaluateAll()を呼び出すと、ワークブック内のすべての数式が再計算され、正確な結果が得られます。

どのような種類のExcel数式がサポートされていますか?

IronXLは、算術演算、数学関数、統計計算、論理演算、複雑な数式の依存関係を含む165以上のExcel組み込み数式をサポートしています。このライブラリはExcelの標準的な数式構文をすべて処理し、Excelで作成されたファイルとの互換性を保証します。

数式から計算結果を取得するにはどうすればよいですか?

IronXLで数式を設定した後、セルのFormattedCellValueプロパティを使用して計算結果を取得できます。このプロパティは数式の評価結果をフォーマットされた文字列として返します。

数式を編集するには、Microsoft Excelをインストールする必要がありますか?

IronXLはMicrosoft ExcelやOffice Interopを必要とせず、独立して動作します。このライブラリにはWindows、Linux、macOSの各プラットフォームで動作する独自の数式計算エンジンが含まれており、サーバー環境やクロスプラットフォームのアプリケーションに最適です。

変更後にすべての数式が再計算されるようにするにはどうすればよいですか?

IronXLはワークブックのすべての数式を再計算するEvaluateAll()メソッドを提供しています。セルの値や数式を変更した後にこのメソッドをコールすると、依存するすべての計算が最新のデータに更新され、スプレッドシート全体の精度が維持されます。

数式編集のシステム要件は何ですか?

IronXLには.NET Framework 4.6.2以上、または.NET Core 2.0以上が必要です。複雑な数式や大きなワークブックで最適なパフォーマンスを得るためには、最低4GBのRAMを推奨します。ライブラリの軽量アーキテクチャにより、外部依存なしに効率的な処理が可能です。

カーティス・チャウ
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はできましたか?
Nuget ダウンロード 1,802,965 | バージョン: 2025.12 リリース