Excelの繰り返し計算をLETでリファクタリングする

著者: AILesson6 分でセットアップテスト済み:ChatGPTレビュー日: 2026-08-28

クイック回答

繰り返す式に一度だけ名前を付け、ブックの動作を維持し、リファクタリング前後の同等性を検証する. 入力するもの: 現在の数式, 期待する動作とブックの状況, 互換性とテストケース. 期待される結果: 読みやすいLET数式、依存関係図、同等性テスト、互換性のある代替案.

1

コンテキストを追加

テキストはこのブラウザ内に留まります。AILesson Prompts は、そのテキストをモデルやサーバーに送信しません。

2

あなたのプロンプト

未入力のフィールドはプレースホルダーとして表示されたままなので、プロンプトをコピーして編集できます。

式に名前を付けることで再利用性、読みやすさ、計算コストが改善する場合に限り、Excel数式をLETでリファクタリングしてください。

正確な数式と最初のセル:
[formula]

見出し、名前、繰り返し処理、空白/エラー時の動作、コピー方法、リファクタリングの目的:
[intent]

バージョン/プラットフォーム、区切り文字、性能、入力例、境界での期待結果:
[environment]

変更前に数式を解析してください。繰り返し計算、安定した入力、中間値、揮発性または配列処理、短絡評価の仮定、エラー境界を特定してください。業務上の意味を表す有効なExcel変数名を作り、セル参照のような名前や名前の衝突を避け、各値を使用前に定義してください。参照の固定、評価上の意味、空白/テキスト/日付時の動作、エラー処理、最終的な型を維持してください。より整ったLETを作るために不具合を隠してはいけません。必要な環境のいずれかでLETがサポートされていない場合は、元の数式または別の互換性のある代替案を提示してください。動作の要約、繰り返しと依存関係図、リファクタリング後の数式、名前ごとの説明、正確な変更点と維持した動作、互換性に関する注記、推測可能な範囲に限定した性能説明、通常・空白・ゼロ・エラー・境界・下方向コピーを含む同等性テストを返してください。
Playgroundで試す
デフォルトで非公開プロンプトの組み立てはブラウザ内で行われます。組織が許可しない限り、機密情報を AI サービスに入力しないでください。

入力から結果へ

具体例

具体的なコンテキストを加えると、このレシピが実用的な結果になる様子をご覧ください。

実際の入力

現在の数式
Sales!H2:=IF(B2="","",IFERROR(IF(XLOOKUP(B2,Products!$A$2:$A$2000,Products!$D$2:$D$2000,0)>0,ROUND(E2*XLOOKUP(B2,Products!$A$2:$A$2000,Products!$D$2:$D$2000,0),2),0),"Review"))
期待する動作とブックの状況
B列はProduct ID、E列は数量、H列は明細金額です。ProductsのA列には一意のProduct ID、D列には単価があります。Product IDが空白なら空白を返し、不明なIDならゼロではなくReviewを返す必要があります。実際の単価がゼロなら0を返します。数式は20,000行にわたって下方向にコピーされます。XLOOKUPが2回繰り返されています。固定した参照元範囲と相対参照のB/Eを維持してください。現在の数式には不具合がある可能性があります。XLOOKUPの見つからない場合の引数が0のため、不明なIDを実際の単価ゼロと誤認するおそれがあります。
互換性とテストケース
Microsoft 365のデスクトップ版とWeb版のみ。LETとXLOOKUPをサポート。区切り文字はカンマ。テスト:P-10、数量3、単価12.50 -> 37.50、P-FREE、数量2、単価0 -> 0、不明なP-99 -> Review、Bが空白 -> 空白、数量がテキストの‘three’ -> Review、3行目にコピーするとB3/E3を使用。性能の測定基準はありません。

出力例

動作監査:現在の数式はまったく同じ検索を2回繰り返していますが、提示された不明IDのルールを満たしていません。XLOOKUPはキーが見つからないと0を返し、外側の比較がそれを正当な単価ゼロとして扱います。動作を維持するLETではこの不具合も残るため、修正は別途明示する必要があります。

H2の修正後のLET数式:=IF(B2="","",LET(productId,B2,quantity,E2,unitPrice,XLOOKUP(productId,Products!$A$2:$A$2000,Products!$D$2:$D$2000,NA(),0),IFERROR(IF(unitPrice>0,ROUND(quantity*unitPrice,2),0),"Review")))。productIdとquantityは行ごとに変わる相対参照の入力を表し、unitPriceは固定した参照元範囲に対して完全一致検索を1回だけ実行します。NA()により、不明なキーはIFERRORに到達する一方、実際の数値ゼロは引き続き0を返します。意図的な動作変更は、不明なIDを0からReviewに変えることです。空白、実際のゼロ、丸め、入力エラー時の動作は維持されます。

互換性:提示されたMicrosoft 365環境で有効です。今後LETを利用できない相手に渡す場合に限り、修正済みのLETを使わない形式も残してください。空白でない行ごとの検索が2回から1回になるため性能が向上する可能性はありますが、ブックを測定せずに具体的な改善率を示すことはできません。

同等性/修正テスト:P-10 ×3は修正後の旧式とLET式の両方で37.50、P-FREE ×2は0、P-99はReview(意図的な修正)、IDが空白なら検索せず空白、有効な正の単価で数量がテキストの「three」ならReview。H3にコピーするとproductId/quantityはB3/E3に変わり、Productsの範囲は固定されたままです。単一結果の検索を信頼する前に、Product IDの重複も別途確認してください。

これがうまくいく理由

  1. 1

    依存関係図により、参照やエラー境界が実際には同等でないのに、繰り返すテキストをまとめてしまうのを防げます。

  2. 2

    同等性テストにより、読みやすさの改善後もブックの結果が変わらないことを確認できます。

結果を確認

  • 各LET名は、繰り返される値または概念上重要な値を1つ表し、Excelの命名規則に従っていますか?

  • コピー時に絶対参照、複合参照、構造化参照、相対参照が維持されていますか?

  • 元の数式とリファクタリング後の数式は、通常と境界のテスト行で一致しますか?

安心して使うために

よくある質問

このレシピをいつ使うか、何を用意するか、どの場面で人による確認が依然として重要かについての実践的な回答です。

「Excelの繰り返し計算をLETでリファクタリングする」を使う前に何を準備すればよいですか?

「Excelの繰り返し計算をLETでリファクタリングする」を使う前に、現在の数式、期待する動作とブックの状況、互換性とテストケースを準備してください。確認できる情報だけでプレースホルダーを置き換えます。不明な点はモデルに推測させず、不明であることを明示してください。

「Excelの繰り返し計算をLETでリファクタリングする」の結果がまだ使用できないのはどのような場合ですか?

提供された根拠から、記載された成果である「読みやすいLET数式、依存関係図、同等性テスト、互換性のある代替案」をまだ実現できていない場合や、未解決の仮定、未取得の承認、作り上げた詳細に依存している場合、その結果は使用できません。チェック項目を公開判定基準として使い、裏付けのない出力を磨くのではなく、入力情報を修正するか、権限を持つ担当者を指名してレビューを依頼してください。

「Excelの繰り返し計算をLETでリファクタリングする」について、テスト記録があるAIツールはどれですか?

2026-08-28時点で、「Excelの繰り返し計算をLETでリファクタリングする」の公開テスト記録にはChatGPTが掲載されています。これは実行記録の存在を示すもので、後の製品バージョンでの互換性や同一結果を保証するものではありません。別のツールやバージョンを使う場合は、すべての制約を明示したまま、使用前に結果のチェックを再実行してください。

作業を前に進める