web-dev-qa-db-ja.com

Googleスプレッドシートで数字を特定の長さに埋める

次のような整数の列があります:1, 2, 3, 4, 5そして、これらの値を次のように3つの長さに埋め込んだ別の列を作成します。001, 002, 003, 004, 005

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

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

36
Slava Fomin II

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

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

=TEXT(5,"000")

出力されます:

005

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

57
Lennart Rolland

表示の変更だけが必要な場合は、カスタム数値形式 "000"をセルに適用できます。 enter image description here

セルを選択し、[フォーマット]> [数値]> [その他のフォーマット]> [カスタム数値フォーマット]をクリックします。

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

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

12
sylr

一時的な解決策

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

作業式

この式を使用してください:

`=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)

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

=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)
3
Slava Fomin II