• ベストアンサー

エクセルの連続データでこんなことできませんか?

いろいろ調べたのですが、どうしてもできなかったので 質問させてください。 以下の様な感じで連続データを作成したいのですが なにかよい方法はないでしょうか? a001 ・ ・ ・ a050 b001 ・ ・ ・ b050 c001 ・ ・ ・ c050 普通にドラッグしても同じセルのコピーか 同じ連続パターンの繰り返しにしかならず困っております。 最悪、数字の部分は(000~050)連続しなくても(データがなくても) 構いません。 例えば、50行ごとにA.B.Cとなればいいのですが・・。

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.5

#1です。確認を忘れてました。 #1の式はZ050の次はA001に戻ります。AA001として続ける場合は =SUBSTITUTE(ADDRESS(MOD(ROW(A1)-1,50)+1,INT((ROW(A1)-1)/50)+1,2),"$",REPT("0",(3-LEN(MOD(ROW(A1)-1,50)+1)))) でIV050(12800行)まで可能です。 ※この式の場合IV050の次は#VALUE!のエラーになります。

noname#65125
質問者

お礼

ありがとうございます。 しくみは到底理解不能ですが・・・; 非常に助かりました!

その他の回答 (7)

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.8

No7の式の訂正です =INDEX(Sheet1!$B$2:$AA$51,MOD(ROW(A1)-1,3)+1, INT((ROW(A1)-1)/3)+1)

noname#65125
質問者

お礼

回答ありがとうございました。 全員にポイント付与できないのが残念です・・・ ひとまず質問は締め切らせていただきました。

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.7

A2からA51に001から050を入力 B1からB43にaからzを入力 B2に「=B$1&$A2」を入力し B2:AA51に上の式をコピー これで欲しいものは作れます 後はこれを1列に並べ替えるだけ 並べたい列の1行目に =INDEX(Sheet1!$B$2:$D$4,MOD(ROW(A1)-1,3)+1, INT((ROW(A1)-1)/3)+1) これを下へずーとコピー 上の式はシート2のA列に欲しいものを表示させた例です

  • ebinamori
  • ベストアンサー率21% (96/439)
回答No.6

=CHAR(97+(ROW(A3)-ROW(A$1))/50)&TEXT(MOD((ROW(A3)-ROW(A$1)),50)+1,"000") 97:小文字(65:大文字) A1:先頭のセル A3:現在のセル 50:周期

回答No.4

A列にはabc・・・abc・・・の繰り返しを入力してデータ→並べ替え B列には001~050・・・の繰り返しを入力。 C1に =A1&B1 と入力して下までフィルコピー。

noname#65125
質問者

お礼

まさかこんな方法があったなんて・・・思いつきませんでした。 ありがとうございます!

回答No.3

マクロに貼り付けてください。 -----ここから Sub Macro1() Dim lngI As Long Dim lngJ As Long Dim lngK As Long lngK = 1 lngJ = 1 Do Until Range("B" & lngJ).Value = "" For lngI = 0 To Range("A1").Value lngK = lngK + 1 Range("C" & lngK).Value = Range("B" & lngJ).Value & Format(lngI, "000") Next lngI lngJ = lngJ + 1 Loop End Sub ここまで----- 使い方: 1.A1セルにカウントする数字 50と入れれば000から050までを3桁で表現します。 2.B列の1行目から入力したい文字を入れます。  B1=a  B2=b  B3=c としたばあい、C列の1行目から a000~a050 次にb000~b050 更にc000~c050 と作成します。 B列は値の入っていない行を見つけるとプログラムも止まります。 A1セル、B列の各セルに値を入力すれば、あとはマクロを実行するのみです。 マクロの貼り付け方は、ツール→マクロ→Visual Besic Editorを起動し、左の「標準モジュール」を右クリックし、挿入→標準モジュールとします。出てきたModule1に プログラムを貼り付けます。 後は、エディターを終了し、ツール→マクロ→再生で完了です。

noname#65125
質問者

お礼

わざわざプログラムを書いてくださり、ありがとうございました!

  • yukisam71
  • ベストアンサー率36% (26/71)
回答No.2

置換えは使ってみましたか? A001のセルを選択、オートフィルでA050までドラッグ→ そのままA050のセルの+を二つ目のA050までドラッグ→ AをBにしたいセルを選択、 編集→置換→”検索する文字列”に”A” ”置換後の文字列”に”B”と入れてすべて置換をクリック、 同様にCの時も置換えを使う。 …しか思いつかないです^_^; よろしければ参考までに。

noname#65125
質問者

お礼

ありがとうございます。 この方法は実践済みなのですが 行が数千クラスになってくると少し面倒だったので・・。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

=CHAR(65+MOD(INT((ROW(A1)-1)/50),26))&TEXT(MOD(ROW(A1)-1,50)+1,"000") 上記で開始位置がA001となりA050の次はB001となります。 アルファベットを小文字にするならCHARの初めの数字65を97としてください。 また、ROW(A1)-1の部分はROW()-開始セルの行数でもかまいません。

関連するQ&A