アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセル2010にて、
A列に対して、特定の固定値を結合したデータを別の列に作りたいと思っています。

例)

A列






B列(他の列でも可能)に

白Sサイズ
白Mサイズ
黒Sサイズ
黒Mサイズ
赤Sサイズ
赤Mサイズ
青Sサイズ
青Mサイズ

つまり、A列の値ひとつずつに 
Sサイズ、Mサイズ、と加えたデータを作りたいのです。


これまでは仕方なく、A列を2倍にコピーして
B列には、全ての行に左右を揃えてSサイズ、Mサイズを表示させて
C列に & にて結合表示していました。


しかし、この例では、4点ですが、実際にはもっと組み合わせが多いため、
この方法では対応がし切れません。

こんな回りくどい方法をしなくてもできる方法があると思うのですが
よろしくお願いいたします。

A 回答 (2件)

こんにちは!


VBAでの一例です。
1行目は項目行でデータは2行目以降に入っているとします。

画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)

Sub test() 'この行から
Dim i, j As Long
Dim myArray As Variant
i = Cells(Rows.Count, 2).End(xlUp).Row
Range(Cells(2, 2), Cells(i, 2)).ClearContents
myArray = Array("Sサイズ", "Mサイズ")
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
For j = 0 To UBound(myArray)
Cells(Rows.Count, 2).End(xlUp).Offset(1) = Cells(i, 1) & myArray(j)
Next j
Next i
End Sub 'この行まで

※ サイズが増える場合は、コード内の
>myArray = Array("Sサイズ", "Mサイズ")
の行を
>myArray = Array("Sサイズ", "Mサイズ", "Lサイズ")
のように変更します。

※ 別の列にサイズを表示させてそれを利用する方法もあります。
その場合は当然コードも変わってきます。

ご希望の方法でなかったらごめんなさいね。m(__)m
    • good
    • 0
この回答へのお礼

色々とできるのですね。
ありがとうございました。

お礼日時:2012/02/16 17:07

A2セルから下方にデータが有るとしたら、B2セルには次の式を入力して下方にオートフィルドラッグコピーします。



=IF(ROW(A1)>COUNTA(A$2:A$100)*2,"",INDEX(A:A,ROUNDUP((ROW(A1)+2)/2,0))&IF(MOD(ROW(A1),2)=1,"Sサイズ","Mサイズ"))

この回答への補足

ありがとうございます。
これで質問の内容はクリアできたのですが、
私の説明が足りませんでした。

これに項目を増やす場合は、どこを変更したらよいでしょうか?
その時々によって、加えたい項目が2つだったり4つだったりします。

例えば、Lサイズと言う項目を増やしたい場合ですが、

,"Lサイズ" 

と入れる他はどこに手を加えたらいいのでしょうか。
よろしくお願いいたします。

補足日時:2012/02/16 16:39
    • good
    • 0
この回答へのお礼

ありがとうございます。
自己解決いたしました。

お礼日時:2012/02/16 17:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!