全単射 base-26 変換
列番号を表計算ソフトの列の文字に、文字を番号に変換します。27はAA、26はZ、702はZZで、ExcelやGoogle Sheetsの列見出しと同じです。ゼロはないので、0は受け付けません。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 値
- 27
- 方向
- encode
- 10進数
- 27
- 10進数の文字列
- 27
- 文字
- AA
- 小文字
- aa
全単射 base-26 は表計算ソフトの列記号に使われる文字番号付けです。1 は A、26 は Z、27 は AA に対応し、ゼロ桁は存在しません。通常の 26 進法はゼロ記号やゼロ始まりの索引を必要とし、Excel や Google Sheets の列見出しとは一致しません。開発者、データ技術者、学習者は、列インデックス用ヘルパーの実装、CSV ヘッダの型付きスキーマへの取り込み、第 n 列ラベルを問う課題の検算などでこの対応を調べます。本変換器は value と direction を受け取ります。encode は正の整数を大文字の文字列へ、decode は A から Z の文字列を正の整数へ戻します。処理は純粋で決定的です。
全単射 base-26 の意味と通常の base-26 との違い
通常の位置記数法による 26 進は桁値 0 から 25 を用い、ゼロ記号かゼロ始まりの索引を要することが多いです。表計算ソフトは A から Z の 26 記号だけでゼロを持たない全単射の数体系を使います。どの正の整数もちょうど一つの有限表現を持ち、列は A, B, …, Z, AA, AB, … と隙間なく進み、先頭ゼロの慣習もありません。
正の整数 n を符号化するには古典的な全単射剰余ループを用います。1 を引いて剰余を 0 から 25 に収め、対応する文字を最下位桁として出し、n を n を 26 で割った床に置き換え、n が 0 になるまで繰り返します。小数経路はなく、ゼロを空列として黙認することもなく、ネットワークや時計にも依存しません。
全単射 base-26 変換が役立つ場面
表計算インポータは 1 始まりの列番号を A, B, …, AA に写し、数式・名前付き範囲・誤セルを指す可読エラーを生成します。フラットファイルを書き出す ETL やデータウェアハウスはメタデータに列番号を保つことが多く、エンドユーザが Excel で見るのと同じ文字列がサポート票とログ行の整合に必要です。
授業や離散数学ではゼロ桁のない体系として全単射数系が登場し、教師にはゼロを無効と扱う決定的なオラクルが要ります。無料の対話探索と同一の有料 parse 経路という分割は KIT の tier-A カタログ全体と一致し、授業デモから自動化パイプラインへ数学結果を変えずに移行できます。
表計算風の全単射 base-26 が必要なとき本ツールを、桁に数字や真のゼロ位取りがあるときは通常の base-36 や十六進変換をご利用ください。
活用例
表計算の列ラベル
数式・範囲名・利用者向けエラーを組み立てる際、1 始まりの列番号を A・Z・AA・XFD 形式のラベルへ対応付けます。
ETL とデータ取込の診断
保存済みの列番号を、運用担当が Excel で見るのと同じ文字ヘッダへ変換し、ログとサポート票を一致させます。
課題とコーディング練習
全単射 base-26 の encode/decode 境界(26→Z、27→AA)を、授業と面接対策向けの決定的オラクルで確認します。
よくある質問
全単射 base-26 とは何ですか?
桁が A–Z のみでゼロを持たない数体系です。正の整数は一意に対応します:1=A、26=Z、27=AA。表計算の列と同じ方式です。
なぜゼロは拒否されますか?
全単射 base-26 にゼロ桁はなく、表計算の列は 1 = A から始まります。
列の文字を番号に変えるにはどうしますか?
文字を左から順に読み、それまでの合計に26を掛けて、各文字の値を足します。Aは1、Zは26です。AAなら1×26に1を足して、27列目になります。
番号を列の文字に変えるにはどうしますか?
1を引き、26で割った余りを最後の文字にします。0ならA、25ならZです。次に26で割った整数部分で同じことを繰り返すので、27はAA、703はAAAになります。
小文字で入力してもよいですか?
かまいません。大文字と小文字は区別せず、前後の空白も取り除きます。ただし使えるのはAからZだけで、途中の数字や記号は受け付けません。結果は大文字で、小文字の写しも付きます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/enc/base26-bijective \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"value":"27","direction":"encode"}'const res = await fetch("https://api.kit.forhosting.com/enc/base26-bijective", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"value": "27",
"direction": "encode"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/base26-bijective",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"value": "27",
"direction": "encode"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/base26-bijective", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"value":"27","direction":"encode"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"value":"27","direction":"encode"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/base26-bijective", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"value": "27",
"direction": "encode"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.base26_bijective",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
encode は各段で 1 を引いたうえで全単射の剰余を取り、decode は A=1・Z=26 の Horner 法で左から右へ文字を積み上げます。ゼロ、負数、非整数の encode、英字以外の decode は invalid_input で失敗し課金されません。素早い確認には無料のブラウザ経路を、CI・ETL・教材で同じ契約が必要なときは成功 1 回あたり $0.002 の API をご利用ください。
全単射 base-26 の意味と通常の base-26 との違い
復号は文字列を左から右へたどり、累積値を 26 倍してから A=1 … Z=26 の文字値を加えます。この同一性により 26 は Z、27 は AA、702 は ZZ となり、Excel や Google Sheets の列見出しと同じラベルになります。本機能は元の value のエコー、正規化された encode または decode、decimal と decimal_string、大文字の letters と letters_lower、method タグ bijective_base26、短い formula の案内、base 26、scheme bijective を返し、API クライアントが推測なしで対応関係を記録・説明できます。エンジンは対応範囲内で厳密な変換を行うか、invalid_input で入力を拒否します。したがって「たまたま動いた」曖昧な写像ではなく、表計算と同じ契約を再現する決定的な変換になります。
入力契約、方向、エラー時の振る舞い
外側の空白は除去されます。encode 時、value は 1 以上の正の整数でなければなりません。decode 時、value は A から Z のみの空でない文字列(大文字小文字を区別しない)で、数字・空白・アンダースコア・句読点は無効な全単射 base-26 文字として失敗します。検証失敗は課金されません。必須フィールド value と direction を含む JSON 本体を POST してください。value は別名 v, input, text, number, n, decimal, column, letters でも受け取れるため、フォーム・クエリ・表計算セルが同一契約を再利用できます。direction は encode, to, to_base26, to_column, integer_to_letters で整数から文字へ、decode, from, from_base26, from_column, letters_to_integer で文字から整数へ写像します。有限な JSON 整数、数字列、先頭のプラスは受け付け、ゼロ・負数・3.5 のような小数・Infinity・NaN は invalid_input となり、問題点を示すメッセージで誤ったラベル化を防ぎます。成功時はトリム済み value と正規化 direction、decimal と decimal_string、letters と letters_lower、method・formula・base・scheme を返し、ログや教材 UI でそのまま使えます。
全単射 base-26 変換が役立つ場面
本ページでは処理はすべてブラウザ内で完結し、API では成功した変換ごとに $0.002、無効入力は課金されず、応答後に保存はされません。
技術的な質問
整数を列記号へ変換するには?
value に正の整数、direction に encode(または to_base26)を送ってください。例:value 27 は letters AA を返します。
列記号を整数へ戻すには?
value に A–Z 文字列(大文字小文字を問わず)、direction に decode(または from_base26)を送ってください。例:value AA は decimal 27 を返します。
全単射 base-26 変換の料金は?
ブラウザ上のツールは無料です。API は成功した呼び出しごとに前払い KIT 残高から $0.002 です。無効入力は課金されません。