• ベストアンサー

Excelで、ある列に入力している文字にa,b,cと付け加えたい

Excelで次のようなことをする方法を教えて下さい。 一つの列に次のように入力されています。 0001 0001 0001 0002 0002 0003 0003 0003 0003 0004 このあと0005、0006、・・・・と千行ほど続きます。 (上の例では0001が3行、0002が2行続いていますが、 同一のものが何行続くかに規則性は無く、一行のみのものや8行 くらい続くものもあります) これにa,b,cを加えて 0001a 0001b 0001c 0002a 0002b 0003a 0003b 0003c 0003d 0004a というように同じ文字が並んでいる間はa,b,c・・・と付け加えられ 文字が0001から0002などに変化すると付け加えられるアルファベットがaにもどって、そこから文字が変化するまでa,b,cと入力させたいのですが、これを自動的に入力する方法はないでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • redowl
  • ベストアンサー率43% (2140/4926)
回答No.5

ある列 が A列なら B1に =IF(A1="","",A1&CHAR(COUNTIF($A$1:$A1,A1)+96)) これをB2下方向にドラッグ

miyu1980
質問者

お礼

この方法もためさせていただきました! うまくいきました。 新たな疑問が出てきたので、新たに質問させていただくと思いますが よろしくお願いします!!

その他の回答 (5)

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.6

◆こんな方法もありますよ B1=IF(A1="","",A1&LEFT((ADDRESS(1,COUNTIF($A$1:A1,A1),4)))) ★下にコピー

miyu1980
質問者

お礼

こんな方法もあるんですね!! 同じことをやるのにこんなにも色々方法があるんですね! また、よろしくお願いします!

  • fronteye
  • ベストアンサー率43% (118/271)
回答No.4

No.3です。 訂正。 誤) ただしデータの最初の、セルB1には文字aを入力しておいてください。 正) ただしデータの最初の、セルB1は、 =A1&"a" としてください。  

miyu1980
質問者

お礼

ありがとうございました。 うまくできました! 同じような内容の質問をまた立てると思いますが、 そのときは、よろしくお願いします。

  • fronteye
  • ベストアンサー率43% (118/271)
回答No.3

元のデータがA列に入力されているとして、英字を付けたデータをB列に表示させるとします。 また、元のデータは1行目から入力されているとします。 セルB2に次のよに入力して、以下コピーすればできます。 =IF(A1<>A2,A2&"a",A2&CHAR(CODE(RIGHT(B1,1))+1)) ただしデータの最初の、セルB1には文字aを入力しておいてください。

回答No.2

大事なことを忘れました。 例えば実行した結果がうまくいった場合でも、マクロは解放(削除)しないと次回開くときにマクロに関する問い合わせがでてくるかもしれません。 解放の仕方 Excel表画面で[Alt]+[F11]でEditorを開きます。 左側、プロジェクトという部分に、 「標準モジュール」 └Module1 となっていると思います。 この[Module1]で右クリックし、「Module1の解放」→いいえ で解放できます。 少し面倒かもしれませんが、1000行に文字を追加していくよりは楽だと思いますのでやってみてください。

miyu1980
質問者

お礼

ありがとうございます。 マクロは私にとっては、少し難しいかもしれません・・・ やってみると簡単かもしれませんが、他にエクスポート して使えるのかな・・・ また、よろしくお願いします!

回答No.1

マクロが実行できれば早いです。 ----ここから---- Sub EXE() Dim ch As Variant, tmp As String, count As Integer ch = Array("a", "b", "c", "d", "e", "f", "g", "h", "i") tmp = "" count = 0 For i = 1 To ★ If tmp <> Cells(i, ☆).Value Then count = 0 tmp = Cells(i, ☆).Value Cells(i, ☆).Value = Cells(i, ☆).Value & ch(count) count = count + 1 ElseIf tmp = Cells(i, ☆).Value Then Cells(i, ☆).Value = Cells(i, ☆).Value & ch(count) count = count + 1 End If Next End Sub ----ここまで---- これを実行するとできます。が、これを実行するには情報不足です。 ★に変換したい行数 ☆に列をいれなければなりません。 列はA列ならば"A"と指定します。 わからないと思うので、行数と列を補足していただければ修正して再投稿します。 実行の仕方 Excelで[Alt]と[F11]を押します。 出てきた画面の上、「挿入」で「標準モジュール」を選びます。 修正した上のプログラムをコピーして挿入した標準モジュール(真っ白な画面)に貼り付けます。 Excelの表の画面で[Alt]と[F8]を押します。 「EXE」というマクロを実行します。 ※注意 マクロは実行してしまうと元に戻せません。 実行する前に必ず一度保存してください。 実行結果が満足いかなかった場合は保存せずに一度Excelを閉じて再度開いてください。

関連するQ&A