• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:桁数の統一と不要な文字の削除の仕方)

数字の桁数統一と不要な文字削除の方法

このQ&Aのポイント
  • 数字の後に「-(ハイフン)1」や「-(ハイフン)2」が入力されている場合、表示させずに数字の桁数を統一する方法を探しています。
  • 現在は置換処理で「-1」と「-2」を削除し、桁数を統一していますが、手間がかかるため、簡単な関数を探しています。
  • 処理した後の数字を「000000」とし、数字の桁数を6桁に統一したいと考えています。

質問者が選んだベストアンサー

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

A1セルから下行にデータがあるとして、B1セルには次の式を入力して下方にオートフィルドラッグします。 =IF(A1="","",IF(ISERROR(FIND("-",A1)),TEXT(A1,"000000"),TEXT(LEFT(A1,FIND("-",A1)-1),"000000")))

treemeet
質問者

お礼

回答ありがとうございました。 解決しました。

その他の回答 (6)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.7

表示形式で考えるより、値を変えてしまう関数を使う方が良かろう。 データ例 A列   B列   C列 11111-1 11111 011111 11111-2 11111 011111 222222 222222 222222 222222-1 222222 222222 11223 11223 011223 234-2 234 000234 1122 1122 001122 B1の式は =LEFT(A1&"-",FIND("-",A1&"-")-1) ハイフンが無い場合でも同じ式になるようにするため&"-"をくっつけている。 C1の式は =REPLACE("000000",6-LEN(B1)+1,LEN(B1),B1) 文字列000000をB列の値で、適当な桁位置から置換することで先頭部に0を補い 6桁に統一している。 最終結果を数値にしたければ、C列の式の最後に*1を追加する。 判りやすいように、B列に一旦中間で出したが、1式でやりたい場合はB列の式をC列の関数式の中に組み込む。

treemeet
質問者

お礼

回答ありがとうございました。 解決しました。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.6

No.3です! たびたびごめんなさい。 前回は大きく勘違いしていました。 無視してください。 何度も失礼しました。m(__)m

treemeet
質問者

お礼

回答ありがとうございました。 解決しました。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.5

>数字の桁数(6桁)を統一する方法 数式でも =TEXT(LEFT(A1,FIND("-",A1&"-")-1),"000000") ぐらいですから簡単ですが,置換の方が簡単とは思います。 それとアタマゼロを補うのは書式で良くて,6桁じゃなくても数値でいいなら =LEFT(A1,FIND("-",A1&"-")-1)*1 までにして,書式で000000を付けておけばいいです。 勿論-1や-2をいちいち置換してたらそりゃ大変ですが,列を選んでCtrl+Hして-*を何も入力しないに全て置換で出来ます。ま,でも手を入れるのがとにかくイヤなんだって事ならそれもチョイスですから,イイと思いますよ。

treemeet
質問者

お礼

回答ありがとうございました。 解決しました。 結果は同じでもいろんなやり方があるんですね。 置換のショートカットの「ctrl+H」は今後活躍しそうです。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.4

文字列関数だけで表示するなら以下のような数式で表示できます。 =TEXT(IF(LEFT(RIGHT(A1,2),1)="-",LEFT(A1,LEN(A1)-2),A1&""),"000000") 簡単に数式を説明すると、文字列の右2つを切り出した文字列の左1文字が「-」なら文字列全体から2文字を除いた左側の文字列を取得し、そうでない場合は元の文字列(数字が入力されていない場合は空白)を返し、その値をTEXT関数で6ケタ表示する式になっています。

treemeet
質問者

お礼

回答ありがとうございました。 解決しました。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんにちは! 一例です。 A1セルからデータがありB列に表示させるとします。 A列の右となりに1列挿入します。 B1セルの数式を =IF(A1="","",TEXT(SUBSTITUTE(A1,"-",""),"000000")*1) としてフィルハンドルの(+)マークでダブルクリック、又はオートフィルで下へコピー そして、このままA列を削除した場合はエラーになりますので、 B列すべてを範囲指定 → コピー → A列を選択 → 形式を選択して貼り付け → 「値」にチェックを入れ、OK 最後にB列を削除します。 以上、参考になれば幸いです。m(__)m

treemeet
質問者

お礼

回答ありがとうございました。 解決しました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

置換で行うこともできますね。 A列を選択してから置換で検索する文字列に -* と入力し、置換後の文字列は空白のままとします。 A列の表示形式をユーザー定義で000000にすればよいでしょう。

treemeet
質問者

お礼

回答ありがとうございました。 解決しました。 置換で「-*」という方法があるとは知りませんでした。 勉強になりました。

関連するQ&A