xlsx-official
ユーザーや既存のテンプレートで特に指定がない限り、デフォルトの設定や形式を適用してExcelファイルを操作・生成します。
description の原文を見る
Unless otherwise stated by the user or existing template
SKILL.md 本文
出力の要件
すべての Excel ファイル
ゼロ フォーミュラ エラー
- すべての Excel モデルは、ゼロ フォーミュラ エラー (#REF!、#DIV/0!、#VALUE!、#N/A、#NAME?) で配信される必要があります
既存テンプレートの保持 (テンプレートを更新する場合)
- ファイルを変更する際、既存の形式、スタイル、および規則を厳密に研究して一致させてください
- 確立されたパターンを持つファイルに標準化されたフォーマットを押し付けないでください
- 既存のテンプレート規則は常にこれらのガイドラインを優先します
財務モデル
カラーコーディング標準
ユーザーまたは既存のテンプレートで特に指示がない限り
業界標準カラー規則
- 青いテキスト (RGB: 0,0,255): ハードコード化された入力値、およびユーザーがシナリオ用に変更する数値
- 黒いテキスト (RGB: 0,0,0): すべてのフォーミュラと計算
- 緑いテキスト (RGB: 0,128,0): 同じワークブック内の他のワークシートから引っ張ってくるリンク
- 赤いテキスト (RGB: 255,0,0): 他のファイルへの外部リンク
- 黄色い背景 (RGB: 255,255,0): 注意が必要な主要な仮定、または更新が必要なセル
数値フォーマット標準
必須フォーマット規則
- 年: テキスト文字列として形式設定 (例: "2024" ではなく "2,024")
- 通貨: $#,##0 形式を使用; ヘッダーで常に単位を指定 ("Revenue ($mm)")
- ゼロ: すべてのゼロを "-" にするように数値形式を使用。パーセンテージも含む (例: "$#,##0;($#,##0);-")
- パーセンテージ: デフォルトで 0.0% フォーマット (小数第1位)
- 倍数: バリュエーション倍数の場合は 0.0x として形式設定 (EV/EBITDA、P/E)
- 負の数: マイナス記号 -123 ではなく括弧 (123) を使用
フォーミュラ構築規則
仮定の配置
- すべての仮定 (成長率、マージン、倍数など) を個別の仮定セルに配置
- フォーミュラ内でハードコード化された値の代わりにセル参照を使用
- 例: =B51.05 の代わりに =B5(1+$B$6) を使用
フォーミュラ エラー防止
- すべてのセル参照が正しいことを確認
- 範囲内のオフバイワンエラーをチェック
- すべての予測期間全体でフォーミュラの一貫性を確認
- エッジケース (ゼロ値、負の数) でテスト
- 意図しない循環参照がないことを確認
ハードコード化された値のドキュメント要件
- コメントまたはセルの隣に記載 (テーブルの終わりの場合)。フォーマット: "Source: [システム/ドキュメント], [日付], [特定の参照], [該当する場合は URL]"
- 例:
- "Source: Company 10-K, FY2024, Page 45, Revenue Note, [SEC EDGAR URL]"
- "Source: Company 10-Q, Q2 2025, Exhibit 99.1, [SEC EDGAR URL]"
- "Source: Bloomberg Terminal, 8/15/2025, AAPL US Equity"
- "Source: FactSet, 8/20/2025, Consensus Estimates Screen"
XLSX の作成、編集、および分析
概要
ユーザーは .xlsx ファイルの作成、編集、または分析を依頼する場合があります。異なるタスクに対して異なるツールとワークフローが利用可能です。
重要な要件
フォーミュラ再計算には LibreOffice が必須: recalc.py スクリプトを使用してフォーミュラ値を再計算するために LibreOffice がインストールされていると想定できます。スクリプトは最初の実行時に自動的に LibreOffice を構成します
データの読み取りと分析
pandas によるデータ分析
データ分析、可視化、および基本的な操作については、強力なデータ操作機能を提供する pandas を使用します:
import pandas as pd
# Excel を読み込み
df = pd.read_excel('file.xlsx') # デフォルト: 最初のシート
all_sheets = pd.read_excel('file.xlsx', sheet_name=None) # すべてのシートを辞書として
# 分析
df.head() # データをプレビュー
df.info() # 列情報
df.describe() # 統計情報
# Excel に書き込み
df.to_excel('output.xlsx', index=False)
Excel ファイル ワークフロー
重大: ハードコード化された値ではなくフォーミュラを使用
Python で値を計算してハードコード化するのではなく、常に Excel フォーミュラを使用してください。 これにより、スプレッドシートは動的で更新可能なままになります。
❌ 間違い - 計算値をハードコード化
# 悪い例: Python で計算してハードコード化
total = df['Sales'].sum()
sheet['B10'] = total # 5000 をハードコード化
# 悪い例: Python で成長率を計算
growth = (df.iloc[-1]['Revenue'] - df.iloc[0]['Revenue']) / df.iloc[0]['Revenue']
sheet['C5'] = growth # 0.15 をハードコード化
# 悪い例: Python で平均値を計算
avg = sum(values) / len(values)
sheet['D20'] = avg # 42.5 をハードコード化
✅ 正しい方法 - Excel フォーミュラを使用
# 良い例: Excel に合計を計算させる
sheet['B10'] = '=SUM(B2:B9)'
# 良い例: 成長率を Excel フォーミュラで表示
sheet['C5'] = '=(C4-C2)/C2'
# 良い例: Excel 関数を使用して平均値を計算
sheet['D20'] = '=AVERAGE(D2:D19)'
これはすべての計算に適用されます - 合計、パーセンテージ、比率、差分など。スプレッドシートはソースデータが変更されたときに再計算できる必要があります。
一般的なワークフロー
- ツールを選択: データには pandas、フォーミュラ/フォーマットには openpyxl
- 作成/ロード: 新しいワークブックを作成するか既存ファイルをロード
- 変更: データ、フォーミュラ、フォーマットを追加/編集
- 保存: ファイルに書き込み
- フォーミュラを再計算 (フォーミュラを使用する場合は必須): recalc.py スクリプトを使用
python recalc.py output.xlsx - エラーを検証して修正:
- スクリプトはエラー詳細と共に JSON を返します
statusがerrors_foundの場合、error_summaryで特定のエラータイプと場所をチェック- 特定されたエラーを修正して再度再計算
- 修正対象の一般的なエラー:
#REF!: 無効なセル参照#DIV/0!: ゼロで除算#VALUE!: フォーミュラ内の間違ったデータ型#NAME?: 認識されていないフォーミュラ名
新しい Excel ファイルを作成
# フォーミュラとフォーマットのために openpyxl を使用
from openpyxl import Workbook
from openpyxl.styles import Font, PatternFill, Alignment
wb = Workbook()
sheet = wb.active
# データを追加
sheet['A1'] = 'Hello'
sheet['B1'] = 'World'
sheet.append(['Row', 'of', 'data'])
# フォーミュラを追加
sheet['B2'] = '=SUM(A1:A10)'
# フォーマット
sheet['A1'].font = Font(bold=True, color='FF0000')
sheet['A1'].fill = PatternFill('solid', start_color='FFFF00')
sheet['A1'].alignment = Alignment(horizontal='center')
# 列幅
sheet.column_dimensions['A'].width = 20
wb.save('output.xlsx')
既存の Excel ファイルを編集
# フォーミュラとフォーマットを保持するために openpyxl を使用
from openpyxl import load_workbook
# 既存ファイルをロード
wb = load_workbook('existing.xlsx')
sheet = wb.active # または特定のシートには wb['SheetName']
# 複数のシートを操作
for sheet_name in wb.sheetnames:
sheet = wb[sheet_name]
print(f"Sheet: {sheet_name}")
# セルを変更
sheet['A1'] = 'New Value'
sheet.insert_rows(2) # 位置 2 に行を挿入
sheet.delete_cols(3) # 列 3 を削除
# 新しいシートを追加
new_sheet = wb.create_sheet('NewSheet')
new_sheet['A1'] = 'Data'
wb.save('modified.xlsx')
フォーミュラの再計算
openpyxl で作成または変更された Excel ファイルには、フォーミュラが文字列として含まれていますが、計算された値は含まれていません。提供された recalc.py スクリプトを使用してフォーミュラを再計算:
python recalc.py <excel_file> [timeout_seconds]
例:
python recalc.py output.xlsx 30
スクリプト:
- 最初の実行時に自動的に LibreOffice マクロをセットアップ
- すべてのシートのすべてのフォーミュラを再計算
- すべてのセルで Excel エラー (#REF!、#DIV/0! など) をスキャン
- エラー場所とカウント付きの詳細 JSON を返します
- Linux と macOS の両方で動作
フォーミュラ検証チェックリスト
フォーミュラが正しく機能していることを確認するための簡単なチェック:
必須検証
- 2~3 個のサンプル参照をテスト: フルモデルを構築する前に、正しい値を引っ張ってきていることを確認
- 列マッピング: Excel 列が一致していることを確認 (例: 列 64 = BK ではなく BL)
- 行オフセット: Excel の行は 1 から始まることに注意 (DataFrame 行 5 = Excel 行 6)
一般的な落とし穴
- NaN 処理:
pd.notna()で null 値をチェック - 右端の列: FY データは多くの場合列 50 以上にあります
- 複数一致: 最初だけではなく、すべての出現箇所を検索
- ゼロで除算: フォーミュラで
/を使用する前に分母をチェック (#DIV/0!) - 間違った参照: すべてのセル参照が意図したセルを指していることを確認 (#REF!)
- クロスシート参照: リンクシートに正しいフォーマットを使用 (Sheet1!A1)
フォーミュラテスト戦略
- 小さく始める: 広く適用する前に 2~3 個のセルでフォーミュラをテスト
- 依存関係を確認: フォーミュラで参照されているすべてのセルが存在することをチェック
- エッジケースをテスト: ゼロ、負の数、非常に大きな値を含める
recalc.py 出力の解釈
スクリプトはエラー詳細と共に JSON を返します:
{
"status": "success", // または "errors_found"
"total_errors": 0, // エラーの総数
"total_formulas": 42, // ファイル内のフォーミュラ数
"error_summary": { // エラーが見つかった場合のみ存在
"#REF!": {
"count": 2,
"locations": ["Sheet1!B5", "Sheet1!C10"]
}
}
}
ベストプラクティス
ライブラリの選択
- pandas: データ分析、一括操作、シンプルなデータエクスポートに最適
- openpyxl: 複雑なフォーマット、フォーミュラ、および Excel 固有の機能に最適
openpyxl の使用
- セルインデックスは 1 ベース (row=1, column=1 は セル A1 を指します)
- 計算された値を読み込むには
data_only=Trueを使用:load_workbook('file.xlsx', data_only=True) - 警告:
data_only=Trueで開いて保存すると、フォーミュラは値に置き換わり、永久に失われます - 大きなファイルの場合: 読み込みには
read_only=True、書き込みにはwrite_only=Trueを使用 - フォーミュラは保持されますが評価されません - recalc.py を使用して値を更新
pandas の使用
- 推論の問題を回避するためにデータ型を指定:
pd.read_excel('file.xlsx', dtype={'id': str}) - 大きなファイルの場合、特定の列を読み込み:
pd.read_excel('file.xlsx', usecols=['A', 'C', 'E']) - 日付を適切に処理:
pd.read_excel('file.xlsx', parse_dates=['date_column'])
コードスタイルガイドライン
重要: Excel 操作用に Python コードを生成する場合:
- 不要なコメントなしで、最小限で簡潔な Python コードを記述
- 冗長な変数名と冗長な操作を避ける
- 不要な print ステートメントを避ける
Excel ファイル自体の場合:
- 複雑なフォーミュラまたは重要な仮定のセルにコメントを追加
- ハードコード化された値のデータソースをドキュメント化
- 主要な計算とモデルセクションの注記を含める
使用時期
このスキルは、概要で説明されているワークフローまたはアクションを実行する場合に適用できます。
制限事項
- このスキルは、上記で説明された範囲と明確に一致するタスクの場合にのみ使用してください。
- 出力を環境固有の検証、テスト、または専門家レビューの代替として扱わないでください。
- 必要な入力、権限、安全境界、または成功基準が不足している場合は、停止して説明を求めてください。
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- sickn33
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/sickn33/antigravity-awesome-skills / ライセンス: MIT
関連スキル
hugging-face-trackio
Trackioを使用してMLトレーニング実験を追跡・可視化できます。トレーニング中のメトリクスログ記録(Python API)、トレーニング診断のアラート発火、ログされたメトリクスの取得・分析(CLI)が必要な場合に活用してください。リアルタイムダッシュボード表示、Webhookを使用したアラート、HF Space同期、自動化向けのJSON出力に対応しています。
btc-bottom-model
ビットコインのサイクルタイミングモデルで、加重スコアリングシステムを搭載しています。日次パルス(4指標、32ポイント)とウィークリー構造(9指標、68ポイント)の2カテゴリーにわたる13の指標を追跡し、0~100のマーケットヒートスコアを算出します。ETFフロー、ファンディングレート、ロング/ショート比率、恐怖・貪欲指数、LTH-MVRV、NUPL、SOPR(LTH+STH)、LTH供給率、移動平均倍率(365日MA、200週MA)、週次RSI、出来高トレンドに対応します。市場サイクル全体を通じて買いと売りの両方の推奨を提供します。ビットコインの底値拾い、BTCサイクルポジション、買い時・売り時、オンチェーン指標、MVRV、NUPL、SOPR、LTH動向、ETFの流出入、ファンディングレート、恐怖指数、ビットコインが過熱状態か、マイナーコスト、暗号資産市場のセンチメント、BTCのポジションサイジング、「今ビットコインを買うべきか」「BTCが天井をつけているか」「オンチェーン指標は何を示しているか」といった質問の際にこのスキルを活用します。
protein_solubility_optimization
タンパク質の溶解性最適化 - タンパク質の溶解性を最適化します。タンパク質の特性を計算し、溶解性と親水性を予測し、有効な変異を提案します。タンパク質配列の特性計算、タンパク質機能の予測、親水性計算、ゼロショット配列予測を含むタンパク質エンジニアリング業務に使用できます。3つのSCPサーバーから4つのツールを統合しています。
research-lookup
Parallel Chat APIまたはPerplexity sonar-pro-searchを使用して、最新の研究情報を検索できます。学術論文の検索にも対応しています。クエリは自動的に最適なバックエンドにルーティングされるため、論文の検索、研究データの収集、科学情報の検証に活用できます。
tree-formatting
ggtree(R)またはiTOL(ウェブ)を使用して、系統樹の可視化とフォーマットを行います。系統樹を図として描画する際、ツリーレイアウトの選択、分類学に基づく枝やラベルの色付け、クレードの折りたたみ、サポート値の表示、またはツリーへのオーバーレイ追加が必要な場合に使用してください。系統推定(protein-phylogenyスキルを使用)やドメイン注釈(今後の独立したスキル)には使用しないでください。
querying-indonesian-gov-data
インドネシア政府の50以上のAPIとデータソースに接続できます。BPJPH(ハラール認証)、BOM(食品安全)、OJK(金融適正性)、BPS(統計)、BMKG(気象・地震)、インドネシア中央銀行(為替レート)、IDX(株式)、CKAN公開データポータル、pasal.id(第三者法MCP)に対応しています。インドネシア政府データを活用したアプリ開発、.go.idウェブサイトのスクレイピング、ハラール認証の確認、企業の法的適正性の検証、金融機関ステータスの照会、またはインドネシアMCPサーバーへの接続時に使用できます。CSRF処理、CKAN API使用方法、IP制限回避など、すぐに実行可能なPythonパターンを含んでいます。