次のような整数の列があります。1, 2, 3, 4, 5
これらの値を次のように3つの長さにパディングした別の列を作成します001, 002, 003, 004, 005
。
Googleスプレッドシートで文字列の長さを埋めることはできますか?
私はこのための標準機能を見つけることができませんでした。
次のような整数の列があります。1, 2, 3, 4, 5
これらの値を次のように3つの長さにパディングした別の列を作成します001, 002, 003, 004, 005
。
Googleスプレッドシートで文字列の長さを埋めることはできますか?
私はこのための標準機能を見つけることができませんでした。
回答:
あなたのケースでそれをどのように使用するかについての簡単な要約:
=TEXT(5,"000")
出力します:
005
もちろん、リテラル5をソース番号がある別のセルへの参照に置き換えます。
ここに私が思いついた一時的な回避策があります。
次の式を使用してください。
`=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)