web-dev-qa-db-ja.com

Excelで= LEFT関数を取得して、最初の数値としてゼロも取得するにはどうすればよいですか?

私のデータには部屋番号の列が含まれています。各部屋番号の最初の2桁は、部屋が配置されている階数です。 = LEFT関数は、ゼロで始まらないデータに適しています。 = LEFT関数は、ゼロで始まるデータに対してはうまく機能しません。

最初の数値がゼロの場合、最初の数値を無視しないようにするにはどうすればよいですか?

Room Number       Formula         Floor Number
1214              =LEFT (A2, 2)   12
2354              =LEFT (A2, 2)   23 
1876              =LEFT (A2, 2)   18
1567              =LEFT (A2, 2)   15
0403              =LEFT (A2, 2)   40* (should be level 04)
1918              =LEFT (A2, 2)   19
0910              =LEFT (A2, 2)   91* (should be level 09)
20
Jefferson

すべての部屋番号が4桁であることが意図されていて、4桁が1000未満の番号をカスタム形式 "0000"でフォーマットすることによって達成される場合、次を使用できます。

=LEFT(TEXT(A1,"0000"),2)

編集:FWIW、このアプローチは、値がテキストの場合にも機能します。

enter image description here

35
teylyn

部屋番号を番号として保存しているようです。この場合はLEFTが最適ではありません。代わりにINTを使用してください。

=INT(A2/100)

先頭のゼロ(04 の代わりに 4)セルの数値形式を「タイプ」で「カスタム」に設定する必要があります:00

コメントをありがとう@ fixer1234!

enter image description here

26
Máté Juhász

これはセルのフォーマットの問題のようです。 _Room Number_列がGeneralまたはNumberではなくTextとしてフォーマットされていることを確認してください。

LEFT formula example
これはLibreOfficeからのものですが、セルがテキストとしてフォーマットされている限り、動作はExcelでも同じです。

先頭の0を表示するように値を単にカスタムフォーマットしたというコメントに基づいて、この式を使用して部屋名に先頭の0があるかどうかを確認し、ない場合は1を追加できます。

=IF(LEFT(A1,1)=0,LEFT(A1,2),CONCAT("0",LEFT(A1,1)))

Screenshot to show leading 0 logic formula in action

6
Michael Frank

マイケル・フランクは何が起こっているのかを理解しました。 「0000」のカスタム形式では、4桁を表示するために必要に応じて先行ゼロが追加されますが、セルの内容は変更されません。その形式を102に適用すると、セルには0102が表示されますが、LEN()を使用して文字数をテストすると、3と表示されます。これは、短い式のソリューションに使用できます。

enter image description here

A1には、102という値があります。 A2では同じ値、カスタム形式0000です。 B2の式は次のとおりです。

=LEFT(REPT("0",4-LEN(A2))&A2,2)

これにより、A2の値の実際の長さが4から差し引かれ、結果の先行ゼロのカウントが作成され、A2の実際の値に連結されます。次に、結果の左2文字を取ります。

行3は、列Aの値が実際には4文字である場合の結果を示しています。

6
fixer1234

あなたの質問にはすでに良い答えがありますが、最初に使用したのと同じ式でこれを機能させたい場合:

=LEFT(A1,2)

次に、単に接頭辞'(数値の前の単一引用符)。以下のスクリーンショットを参照してください

例:0403、 成功する '0403次に、同じ数式を適用します。

以下の参照用のスクリーンショット

番号の前にプレフィックスを追加します。

Prefixed with '

同じ式で動作します:

Works with same formula

1
Subin_Learner