- ベストアンサー
Excelの単一セルから結合セルへのコピー方法について
お世話になります。 今、Aのシートには、 世帯主氏名 住 所 東京太郎 東京都渋谷区 神南・・ 江戸花子 東京都渋谷区 神北・・ といったように入っております。これを Bのシートに 世帯主氏名 住所 東京太郎 東京都渋谷区 神南・・ 江戸花子 東京都渋谷区 神北・・ とAシートは、全て単一セル Bシートの 氏名の部分はセルを結合しており、住所は、 事情がって、2行に分けて作成したいので すが・・ Bのシートの氏名のところに =BシートA1と コピーをかけて、そのまま下へとコピーしよう としたのですが、Aシートのデータが1つ飛び に張り付いております。結合のためと思うので すが、これを上手く貼り付ける、方法を教えて ください。よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。maruru01です。 元のデータがSheet1のAB列とします。 (1行目は項目行で、データは2行目からとします。) コピーする方(Sheet2)もAB列で2行目からとします。 まず世帯主氏名は、Sheet2のA2に、 =OFFSET(Sheet1!$A$1,INT(ROW()/2),0,1,1) と入力して、A2とA3を結合します。 (先に結合しておいてもOKです。) そうしたら下の行へコピーします。 次に住所ですが、2行に分けるのは、スペースを区切りにするのでしょうか。 その場合は、Sheet2のB2に、 =LEFT(OFFSET(Sheet1!$B$1,INT(ROW()/2),0,1,1),FIND(" ",ASC(OFFSET(Sheet1!$B$1,INT(ROW()/2),0,1,1)))-1) B3に、 =MID(OFFSET(Sheet1!$B$1,INT(ROW()/2),0,1,1),FIND(" ",ASC(OFFSET(Sheet1!$B$1,INT(ROW()/2),0,1,1)))+1,LEN(OFFSET(Sheet1!$B$1,INT(ROW()/2),0,1,1))) と入力して、B2とB3を範囲選択して、下の行へコピーします。 区切りのスペースは半角でも全角でもいいですが、2つ以上入っていると上手く分割されません。
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17070)
(サンプルデータ)Sheet1に A1:A10にA,B,C,D・・・jと入っているとする。 (関数式)Sheet2のA1に =IF(MOD(ROW(),2)=0,"",OFFSET(Sheet1!$A$1,(ROW()-1)/2,0))と入れる。 Sheet2のA2からA20まで式を複写する。 A1にA,A2はなし、A3はB、A4はなし、A5はC・・と1つ飛びにSheet1のA列のセルがセットできます。 (セルの結合) 下記VBAを実行する。20やA(列)のところを適当に修正してください。 Sub test01() For i = 1 To 20 Step 2 Range(Cells(i, "A"), Cells(i + 1, "A")).MergeCells = True Next i End Sub 広範囲に一遍に上下2セルを結合する操作がわからず VBAにしました。 これなら全体をVBAにした方がマシですが、上記の関数式も 利用できるケースがあろうかと思い、あえて挙げます。
お礼
ありがとうございます。 VBAも含めてのご回答いただき感謝申し上げます。
- happypoint
- ベストアンサー率36% (521/1422)
#1です。 質問の意図を取り違えておりました。 すいません。 数式で、氏名を取り出す方法があります。 参考にしてください。 SheetAの、A列に氏名が連続して入力されているとします。 まずSheetBの、セルA1に、次の数式を入力します。 =INDIRECT("SheetA!A"&(ROW()+1)/2) そして、この数式を入力したセルA1とA2をセル結合します。 このセルをコピーして、下方向に貼り付けます。
- happypoint
- ベストアンサー率36% (521/1422)
こんにちは。 これはうまくやる方法はないと思いますね。 地道にやっていくしかないです。 手作業で。 件数が多ければVBAですね。
お礼
800件なんです。 ありがとうございました。
お礼
ありがとう、こちらに希望のご回答となっておりました。 また、次の質問時にもよろしくお願い申し上げます。