• ベストアンサー

Excelの単一セルから結合セルへのコピー方法について

お世話になります。 今、Aのシートには、   世帯主氏名   住  所   東京太郎    東京都渋谷区 神南・・   江戸花子    東京都渋谷区 神北・・  といったように入っております。これを  Bのシートに     世帯主氏名   住所   東京太郎    東京都渋谷区           神南・・   江戸花子    東京都渋谷区           神北・・   とAシートは、全て単一セル Bシートの   氏名の部分はセルを結合しており、住所は、   事情がって、2行に分けて作成したいので   すが・・   Bのシートの氏名のところに =BシートA1と   コピーをかけて、そのまま下へとコピーしよう   としたのですが、Aシートのデータが1つ飛び   に張り付いております。結合のためと思うので   すが、これを上手く貼り付ける、方法を教えて   ください。よろしくお願いします。     

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.3

こんにちは。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つ以上入っていると上手く分割されません。

makoteru
質問者

お礼

ありがとう、こちらに希望のご回答となっておりました。 また、次の質問時にもよろしくお願い申し上げます。

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.4

(サンプルデータ)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にした方がマシですが、上記の関数式も 利用できるケースがあろうかと思い、あえて挙げます。

makoteru
質問者

お礼

ありがとうございます。 VBAも含めてのご回答いただき感謝申し上げます。

  • happypoint
  • ベストアンサー率36% (521/1422)
回答No.2

#1です。 質問の意図を取り違えておりました。 すいません。 数式で、氏名を取り出す方法があります。 参考にしてください。 SheetAの、A列に氏名が連続して入力されているとします。 まずSheetBの、セルA1に、次の数式を入力します。  =INDIRECT("SheetA!A"&(ROW()+1)/2) そして、この数式を入力したセルA1とA2をセル結合します。 このセルをコピーして、下方向に貼り付けます。

  • happypoint
  • ベストアンサー率36% (521/1422)
回答No.1

こんにちは。 これはうまくやる方法はないと思いますね。 地道にやっていくしかないです。 手作業で。 件数が多ければVBAですね。

makoteru
質問者

お礼

800件なんです。 ありがとうございました。