[[20031120224235]] 『数値の後に0を4っ追加』(nana) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『数値の後に0を4っ追加』(nana)

 こんばんは。またお世話になります。
 9000行で20列ほどあるリストのA列に12桁の数字と8桁の数字がランダムに入力され
 ています。この8桁の数値の後に0000と0を4つつけてA列すべての数値を12桁にしたい
 のですが、一括して0を4つ挿入する方法がありますか?宜しくお願いします。


 9000行もあると大変ですね。
 まず21列目U列に連番を振ります。1から9000
 A列を基準に昇り準並べ替え、8桁のセルだけ表の上のほうに固まります。
 どこか空いたセルでいいので、「10000」を入力してこのセルをコピー、
 8桁のセルを選択
 右クリック、「形式を選択して貼り付け」「乗算」OK。
 最後にU列を基準に昇り準並べ替えで元の配置に直してU列削除。

 (注)
 表示形式標準の場合は乗算貼り付けした時点で「?.??????E+11」になるので、
 表示形式を数値に変更してください。
 (KAMIYA)

 KAMIYAさん、こんばんは。どうもありがとうございます。できました!こんな方法が
 あるのですね。勉強になります。
 すみません。もう一つ質問ですが、8桁が文字列だった場合、この8桁の文字列の後に
 0を4つつける方法はどのようにしたらよいのでしょうか?私が考えられるのは列を2列
 挿入、挿入したB列の8桁のセルに「0000」と入力する。C1に=A1&B1 とし、C1のセルを
 8桁の最後の行までコピーする。さらにこのセルをコピーし、A列の8桁の列に値だけ貼
 り付ける。その後挿入したB列とC列は削除する。といくつもの操作をする方法しか考
 えられないのですが、一括して8桁の後ろに0を4つ挿入する方法はありますか?
 宜しくお願いします。
 (nana)

 横から失礼します。
8桁の数字が文字列でも形式を選択して貼り付けで乗算して数値を貼り付けすれば
8桁の数字の文字列は数値化されます。(ケン)

 8桁が文字列数字の場合はKAMIYAさんの一括乗算貼付けでよいが
8桁の商品コードのようにアルファベットが入っていれば、B列挿入
B1 =A1&"0000"とし、このセルのフィルハンドルをダブルクリックし、次にこの範囲をコピー、A列に値貼り付けしB列削除
nanaさんの方法より1列挿入が少ないだけです。
 (シニア)

 こんばんは。ケンさん、シニアさん、どうもありがとうございます。
 シニアさんのおっしゃるように今回のこの8桁というのは先頭にアルファベットが
 はいっている文字列です。
 シニアさんのおっしゃるフィルハンドルをダブルクリックする方法というのは初めて
 知りました。驚きです。こんなに簡単にコピーできるのですね。
 本当にこの学校ではいろいろな勉強をさせて頂いています。
 皆さん、どうもありがとうございました。
 (nana)

 いつも終結後ですみません。ハンドルを「蛇の足」と変えた方がいいかも…。

 ぼくはこういう場合、数字であろうが文字であろうが、=left(A1 & "0000000",12)
 です。まあ、数字にどうしてもしておく必要がある場合は、*1 (1をかける)を
 付け加えますけど…。(通りすがりの者)

 通りすがりの者さんこんにちは
案内の方法、即決でよいですね。求める桁が決まれば余分に"00゛を結合させて12桁取得する。
right関数の代わりにMID(5,100)などのように、文字列の5文字目から以降の文字を取得する。
手法とよく似た応用で桁数の違う文字列を一定の桁に揃えるのに都合がよいですね。
これから活用させて頂きます。案内有難う御座います。(シニア)

元祖が居てはりますけど、ボクも入れて下さい。
 ボクは横着モンですさかい、機械が勝手に作業してくれる事しか考えてまへん。
     ほな...(弥太郎)
 '------------------------
 Sub tuika()
    Dim max_row As Long, i As Long
    max_row = Cells(, 1).End(xlDown).Row
    For i = 1 To max_row
        If Len(Cells(i, 1)) = 8 Then
            Cells(i, 1) = Cells(i, 1) + "0000"
        End If
    Next i

 End Sub

 nanaです。こんにちは。 
 皆さん、どうもありがとうございます。

 通りすがりの者さんの教えて頂いた式はソートしなくても簡単に0が4つ追加できる
 のですね。いろいろな方法があるのですね。ありがとうございます。

 弥太郎さん、すみません。わたしのやり方が悪いのだと思うのですが、上記マクロ
 を標準モジュールに貼り付けしたのですが、変化がなかったのですが。マクロの実行
 の時にカーソルを置く位置とか関係ありますか?教えて下さい。宜しくお願いします。
 (nana)

 >弥太郎さま
 max_row = Cells(,1)・・・
 row_no
 が気になります。
 (VBコードがあると試してみたくなるKAMIYA)

 KAMIYAさん、またまたおおきに。
 いやぁ、先だってlongとintegerのスレで「Explicit」をイの一番に書きます、ちゅう
 て宣言したのにこのざまですわ。あっさりバレてまいましたがな。どない言い訳しよう
 クスン。

 nanaさんごめんなさ〜い。
 上のコード For i = 1 To max_row これに訂正しておくんなはれ。
 横着した報いがnanaさんにふりかかってもて、ホンマにごめんやで。
 せやけど、あのスレに寄り集まっとった連中、ほれ見た事かとせせら笑うとるやろな
 ぁ。  穴があったら入りたい(弥太郎) 

 すご〜い!あっという間に0が4つ追加されました!!!
 やはり、弥太郎さんのこの世界はすごいですね!
 実は、皆さん、VBの達人ばかりではないですか?その方々がVBを進めてはいらっしゃら
 なかったので、VBではできないんだと一人納得していました。

 >あのスレに寄り集まっとった連中、ほれ見た事かとせせら笑うとるやろな
 ぁ。
 ふふ、弥太郎さんを中心に皆さん、とても面白い方ばかりですね。楽しませて頂いて
 います。
 皆さん、いつも本当にありがとうございます。又宜しくお願いします。
 (nana)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.