Googleスプレッドシートの特定の長さに数字を埋め込む[終了]


33

次のような整数の列があります。1, 2, 3, 4, 5これらの値を次のように3つの長さにパディングした別の列を作成します001, 002, 003, 004, 005

Googleスプレッドシートで文字列の長さを埋めることはできますか?

私はこのための標準機能を見つけることができませんでした。


2
これはまさにあなたが求めているものではありませんが、同等の効果を達成し、人々が検索する一般的なタスクの解決策になる可能性があります。(2)[書式]> [数値]> [その他の書式]> [カスタム数値書式...]を選択します。
tophcito

2
単純に閉じるだけでなく、webapps.stackexchange.com
レナート・ローランド

回答:


53

推奨される方法はTEXT()関数を使用することです。

あなたのケースでそれをどのように使用するかについての簡単な要約:

=TEXT(5,"000")

出力します:

005

もちろん、リテラル5をソース番号がある別のセルへの参照に置き換えます。


スペースでパディングする方法はありますか?
アレックス

私はただ「subsubtitude "000" with above "
レナート・ローランド

12

表示の変更だけが必要な場合は、カスタム数値形式「000」をセルに適用できます。ここに画像の説明を入力してください

セルを選択し、[ 書式]> [数値]> [その他の書式]> [カスタム数値書式...]をクリックします

ドキュメントエディタのヘルプから:

数字の数字。結果にわずかな0が表示されます。


2
あなたはすることができ、編集 OPはこれを行うだろうか上で展開してあなたの答えを?
ブルギ

3

一時的な解決策

ここに私が思いついた一時的な回避策があります。

作業式

次の式を使用してください。

`=IF(LEN(A2)<3, CONCATENATE(REPT("0", 3-LEN(A2)), A2), A2)`

3パディング長と0パディング文字で置き換えます。A2パディングソースです。

説明

次のスプレッドシートを検討してください。

-------------
| A   |  B  |
-------------
| 1   | 001 |
-------------
| 2   | 002 |
-------------
| 31  | 031 |
-------------
| 45  | 045 |
-------------
| 500 | 500 |
-------------

埋め込みたい整数を含む最初の列(A)があります。(B)列には、データを処理するための特別な式が含まれます。

連結!

まず、A列の値とパディング文字列を連結する方法が必要です。CONCATENATE関数でこれを行うことができます:

=CONCATENATE("00", A2)

繰り返す!

現在、パディング文字0は式で2回繰り返されています。これは良くない。REPT関数を使用して、次のようにパディング文字を数回繰り返すことができます。

=REPT("0", 2)

この式は02回繰り返されます。それらを組み合わせましょう:

=CONCATENATE(REPT("0", 2), A2)

長さを計算する!

それは良いです。ただし、パディングの長さは式で一定の値になっており、9を超える数では機能しません。パディングされた文字列の長さを(LEN関数を使用して)計算し、ターゲット長から差し引くことでこれを修正できます:

=3-LEN(A2)

それを式に追加しましょう:

=CONCATENATE(REPT("0", 3-LEN(A2)), A2)

ただし、999を超える値については否定的な結果が得られ、REPT関数が破損します(繰り返しの数を負にすることはできません)。

条件を追加することで簡単に修正できます:

=IF(LEN(A2)<3, "APPLY REPT", "OUTPUT AS IS")

最後の和平をまとめましょう:

=IF(LEN(A2)<3, CONCATENATE(REPT("0", 3-LEN(A2)), A2), A2)

パーフェクト!これが最良の答えであり、非数値で動作します;-D
t3chb0t
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.