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

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

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

桁数の統一と不要な文字の削除の仕方 数字の後に「-(ハイフン)1」や「-(ハイフン)2」が入力されている数字があり、 「-」以下の数字を表示させず、尚且つ数字の桁数(6桁)を統一する方法を探しています。 <例> 最初の数字       処理後 11111-1    →   011111 11111-2    →   011111 222222     →   222222 222222-1    →   222222 当初「-1」、「-2」を置換で削除した後、ユーザー定義を「000000」にしていました。 ただ、置換処理が手間な為、関数等で簡単に処理できればと考えています。 宜しくお願い致します。

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

  • ベストアンサー
  • 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/17068)
回答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/7940)
回答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

  • データの桁数を揃える関数をご教示下さい。

    データの桁数を揃える関数をご教示下さい。 セルの内容自体を同じ桁数の文字列としたいです。 また、桁数を揃える場合に、桁数の少ない場合には、 末尾に0を追加し、桁数を揃えたいです。 ex) 10桁と11桁と12桁の数字が混在 ⇒12桁に統一 120004561234(12)⇒120004561234(そのまま) 12000457131(11)⇒1200045713100(末尾に0を追加) 1200000562(10)⇒120000056200(末尾に00を追加) 以上、ご回答をよろしくお願いします。

  • エクセルの桁数切り上げ

    エクセルの桁数を四捨五入するのは、 関数でどのようにすればよいのでしょうか? 具体的には4桁を2桁にする場合、 3073 → 31 2736 → 27 書式設定のユーザー定義を見たのですが、#の意味がよくわからなかったです。 どなたか詳しい方よろしくお願いいたします。

  • Excelの置換機能で文字列の部分削除

    Excelの置換機能を使って、あるパターンの文字列の特定の部分のみ削除すると言うことは可能でしょうか? <文字列例> AB01234-56789 のハイフン以下(-56789)のみを削除したい 対象の文字列パターンは、最初の2桁がアルファベットで固定、そのあと数字が5桁(ユニーク)続き、ハイフン、その後ユニークな文字列(数字5桁) さらに言うと、ファイル内にはこのパターン以外の文字列も存在している(ハイフン含む)ので、上記のパターンの文字列のみをマッチングさせ、ハイフン以下を削除したいのです。 やはり、VBAとかで正規表現使わないと無理ですかね?? 数万件の大量のデータの中から上記処理をせねばならず困っております・・ ご教授いただけると幸いです。

  • エクセルの質問です。不定の桁数の、ある文字を表示しない方法

    10~12桁の数字の最後に付く”合計”の文字を削除したいのです。 膨大なデータベースで集計を取り、ジャンプの可視セルでコピーを取りましたが合計の文字だけを取り除きたいのです。置き換えで桁数を統一するのは可能です。leftやreplaceの関数を使ってもできますが、最後の2文字を表示しない方法があるなら教えて下さい。 宜しくお願いします。

  • 桁数が混在する並び替えの方法

    EXCEL2007です。関数やマクロについてはこんなものがあるんだぁ~程度の知識しかありません。そこで質問です。 以下の数字の並び替えできる方法がわかりません。 単純にEXCELのコマンド操作でできるのでしょうか? それとも関数やプログラムを必要とするのでしょうか? もし関数やプログラムが必要であるならば、がんばって勉強してみようと思ってます。(勉強はするつもりでも、なにが必要かもよくわかっていません。) 並び替えしたい数字は以下のような数字が混在します。 桁数が違う 1桁のものや、2桁~6桁のものが混在する 例 1or12or345or645874 など ハイフンがあるのとないものがある。 例 1-1or1-2or345 順番はまずハイフンの前の番号が若い順に並べたい。 次にハイフンより前の番号が同じものについては、ハイフン後の番号の順番に並べたい。ハイフンが2回重なる場合がある。以下の例を並び替える場合まず一番始まりのハイフン前の若い順に並べるまず4番次に26番次に100番次に226番となり次は1番はじめのハイフンの順番で最後は一番最後のハイフンの順番で以下の例のように並びかえたいです。 1番 4 2番 4-3-5 3番 4-25-2 4番 26-13-6 5番 26-13-21 6番 100 7番 226-8-9 8番 226-15-31 しかしEXCELでは表示形式は文字列にしないと、ハイフンは入力できず、次に並びかえようとすると桁数がバラバラなので 一番初めの数字が桁数より優先されてしまい上記の例ですと本来並びかえたい上の例とは違い。 6番 100 8番 226-15-31 7番 226-8-9 5番 26-13-21 4番 26-13-6 1番 4 3番 4-25-2 2番 4-3-5 と並んでしまいます。理由がわかる方教えていただけませんか??? またどのようにすれば解決するのでしょうか?

  • 有効桁数について

    ある数値を5回測定したとします A 5.039 B 5.075 C 5.092 D 5.064 E 5.058 有効桁数はすべて4桁ですよね? 次にA~Eの平均を取ると (A+B+C+D+E)/5=5.0656 と関数電卓で結果がでますが、4桁に丸めて5.066とすれば有効桁数の扱い方としては問題ないですか? そしてA~Eの平均の2乗をするときは、上記の平均を有効桁数4桁に丸めた5.066を2乗して (5.066)^2=25.664356 となり、そして5.066の有効桁数4桁に合わして25.66とすればいいのでしょうか? それとも平均の値を4桁に丸める前の電卓で出た値のまま2乗した後、最終的に4桁に丸めるのがいいのでしょうか?この数値だとどちらでやっても4桁にした値は変わりませんが・・・ 有効桁数の扱い方で問題があったら教えてください、また平均の2乗を求めるときはどちらが正しいのでしょうか? (平均の値の2乗は平均×平均なのだから平均の値を4桁にせず5桁として計算すると平均の2乗は有効桁数5桁と考えるので、やはり正しく平均の値を測定値の有効桁数4桁に丸めて出した平均の値を2乗する方が正しいですかね・・・)    また、上記の平均の計算をしたときのよな、「5」などの数字の有効桁数は何桁ですか?1桁なんでしょうか?もし1桁なら割り算をしているので有効桁数はいちばん桁数の少ないものに合わせるので有効桁数1となると平均の値が「5」となりおかしいとおもうんですが・・・ 上記の平均を取ったときの「5」や、測定回数の数値や、測定していない数で100で割れと書いてあったりしたときは、それらの数字の桁数も考えなければならないんでしょうか? 読みづらい文章かもしれませんが、ご回答待っています。

  • エクセルで一つの列にある数値の桁数を統一したい

    エクセル2000を使用しています。 ある列に 12345 012348 012349 98750 と言うように5桁と6桁の数値が混ざっています。 これを5桁の数字の先頭に0(ゼロ)をつけて すべて6桁に統一した数値の列にしたいのですが、 このような変換ができる関数などはありましたら教えてください。

  • 有意桁数、有効桁数について

    有意桁数というものがあって、それが公に認知されている(出所がJISとかその他の公知規格)ものなのか、また有効桁数との関係等を悩んでいます。どなたかそちら方面に詳しい方がいらっしゃいましたら是非教えてください。お願いいたします。 有意桁数 ・測定値に小数点が含まれている場合、または10のべき乗で示されている場合はべき乗以外のすべての桁を有意桁数とする。 例:0.001ー有意桁数3、1.01ー有意桁数3、3×10⁴-有意桁数1、1.25×10⁵ ー有意桁数3 ・べき乗で示されていない自然数の場合で数値の後ろにゼロがある場合は、ゼロを省いた上位の数字の桁数を有意桁数とするが、1桁となる場合は、”2桁”とみなす(最低でも2桁とする)。 例;5000ー有意桁数2、3150ー有意桁数3、10ー有意桁数2、201ー有意桁数3 ・測定値のToleranceは、有意桁の最下位の1つ下の位で四捨五入する値とする。

  • Excelで、ハイフンを消したいけど000は残したい

    A列に、 00033-11-55 00432-12-01 00022-11-56 ・・・・・・ と、5桁-2桁-2桁 の数字がずーっと並んでいます。 これを、B列の、各となりのセルに、 000331155 004321201 000221156 ・・・・・・ というふうに、 ハイフンは消すが、000や00は残した数字を表示させたいです。 単に置換で、「-」を「」に置き換えると、00や000が消えてしまいます。。。。。 A列の、セルの書式設定を文字列にしても駄目でした。 どうすればいいでしょうか? 何かうまい関数などは、ありませんでしょうか?

  • エクセルで桁数を拾って削除

    以下のことがエクセルの関数で変換可能か教えてください。 ・A列の1行目~100行目くらいまでにばらばらの数字が入っている。  例)A列1行目 1000      2行目 12530      3行目 4000      4行目 254530      5行目 3000000      6行目 125346      7行目 2453 ・このなかで、99999(5桁)以下の数字はそのまま、100000(6桁)以上の数字は、4桁削除して切捨て、例えば4行目であれば25、5行目であれば300というように認識。 ・このような関数を列Bの各行に入れる。 説明が下手なので、分かりづらいかもしれませんが、ご回答の程、宜しくお願いします。

専門家に質問してみよう