次のような整数の列があります:1, 2, 3, 4, 5
そして、これらの値を次のように3つの長さに埋め込んだ別の列を作成します。001, 002, 003, 004, 005
。
Googleスプレッドシートで文字列の長さを埋めることはできますか?
このための標準機能を見つけることができませんでした。
推奨される方法は TEXT()関数 を使用することです。
あなたのケースでそれをどのように使用するかについての簡単な要約:
=TEXT(5,"000")
出力されます:
005
もちろん、リテラル5をソース番号のある別のセルへの参照に置き換えます。
表示の変更だけが必要な場合は、カスタム数値形式 "000"をセルに適用できます。
セルを選択し、[フォーマット]> [数値]> [その他のフォーマット]> [カスタム数値フォーマット]をクリックします。
ドキュメントエディタのヘルプ から:
数字の数字。わずかな0が結果に表示されます。
ここに私が思いついた一時的な回避策があります。
この式を使用してください:
`=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)