人に聞けない痔の悩み、これでスッキリ >>

連続データを1行おきに貼り付けする方法(エクセル)
都道府県ごとに全国の個人と企業の会員数と売上のデータが連続で縦に並んでおります。

  A列  B列    C列   D列      E列
1 エリア 個人会員数  売上   企業会員数  売上
2 北海道 100     ¥2000  120    ¥10000
3 青森  50      ¥500   60     ¥2000

これを、別ファイルに月度別の年間一覧表として下記の雛形に貼り付けたいです。

 A列   B列   C列   D列   E列  F列
1          1月         2月
2 エリア      会員数   売上   会員数 売上
3 北海道  個人   100   ¥2000  
4      企業   120   ¥10000
5 青森   個人    50    ¥500 
6      企業    60   ¥2000
7


個人分のデータを1行ごとに空欄で貼り付けることはオートフィルでできたのですが、
次にそのデータの間に企業分のデータを貼り付ける方法がわからず困っております。

よろしくお願いします
  
 

このQ&Aに関連する最新のQ&A

A 回答 (5件)

元データがSheet1にあると仮定して、


関数を使用して行うと、

Sheet2のセルC3に下記の式を入れて下へオートフィル

=INDIRECT("sheet1!"&IF(MOD(ROW(),2)=0,"D","B")&ROUNDUP(ROW()/2,0)+1)

Sheet2のセルD3に下記の式を入れて下へオートフィル

=INDIRECT("sheet1!"&IF(MOD(ROW(),2)=0,"E","C")&ROUNDUP(ROW()/2,0)+1)

これで会員数と売上を1行おきに表示させる形となります。
ただ、1月、2月、、、、 の仕分け表記がなかったので、
そこは省いています。

この回答への補足

やはり、同じファイルで作業シートを使っての表示方法しかないのでしょうか?
データ納品となるため、できれば作業用のシートやセルは、同じファイル内に
ないほうがいいのですが・・・
値で貼り付けなおすのが最善でしょうか?

補足日時:2010/07/05 16:45
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。
表示できました。

>1月、2月、、、の仕分け表記がなかったのでそこは省いています。
月度ごとの作業になるので、一月分できれば大丈夫です。

お礼日時:2010/07/05 16:42

こういう表の再構成は関数では複雑になって一般に苦手なんだ。


全セルが式で埋まってしまうし。
別ブックに再構成するというのも難しい点が加わる。
・VBAででもやると考えかたは簡単。
・また北海道の下の企業の件名が空白だと将来処理に困るよ。データは北海道にして、2番目以下は文字を白色にするなどしては。
・最終的に集計するならピボットテーブルででも使えないか勉強してみることかな。
・個人法人コードを補人法人列の前と、法人の前の列に県名列を挿入し、法人部分を、最下行の下に貼り付け、県名でソートしては
結果
エリア個人法人個人会員数売上
青森150\500
青森260\2,000
北海道1100\2,000
北海道2120\10,000
操作だけで出来る。データに今後は増減・変更がないなら。
・元データが1行で、再構成表は必ず2行だから、計算すれば、元データの何行目の何列を持ってくるか割り出せる。それを関数でやることは出来る。INDEX関数で行と列を指定する。
まず別シートに再構成表を作るぐらいにして、この式をどうなるか考えてみては。
    • good
    • 1
この回答へのお礼

いくつかの案をだしていただき、ありがとうございます。
どの方法が良いか勉強してみます。

お礼日時:2010/07/06 09:38

一例です。


(1)別ファイルをオープンして、1~2行目を入力
(2)別ファイルのA3に#[元ファイル.xls]Sheet1!A2、B3に個人、C3に#[元ファイル.xls]Sheet1!B2、D3に#[元ファイル.xls]Sheet1!C2
   B4に企業、C4に#[元ファイル.xls]Sheet1!D2、D4に#[元ファイル.xls]Sheet1!E2
(3)A3:D4を選択して下方向に必要分コピーし、置換で#を=に全て置換

因みに、元、別ファイルは同一フォルダにある事として、ファイル名、シート名は実名に変更して下さい。   
    • good
    • 2
この回答へのお礼

別ファイルでの方法ありがとうございました。
個人と企業を縦に並べたかったので、表組みをちょっと修正してできました。

お礼日時:2010/07/06 10:21

参照元は、A.xlsのSheet1と仮定



別ブックで、A2~D3に参照式を入力

A2に「=[A.xls]Sheet1!A2」B2に「個人」C2に「=[A.xls]Sheet1!B2」D2に「=[A.xls]Sheet1!C2」
B3に「企業」C3に「=[A.xls]Sheet1!D2」D3に「=[A.xls]Sheet1!E2」

A2~D3を選択
選択枠の右下角の■(フィルハンドル)を下方にドラッグ
ドラッグ範囲が選択状態のまま
編集メニューの「置換」で
=

#=
に「すべて置換」

上記「置換」操作で数式が文字列になります。
A2に「#=[A.xls]Sheet1!A2」B2に「個人」C2に「#=[A.xls]Sheet1!B2」D2に「#=[A.xls]Sheet1!C2」
B3に「企業」C3に「#=[A.xls]Sheet1!D2」D3に「#=[A.xls]Sheet1!E2」

A2~D3を選択状態のまま
選択枠の右下角の■(フィルハンドル)を下方にドラッグ
ドラッグ範囲が選択状態のまま
編集メニューの「置換」で
#=

=
に「すべて置換」

上記のような操作で参照式が完成します。
あと、対象セル範囲を選択してコピー
その場で、「形式を選択して貼り付け」の「値」で貼り付けで値化します。
    • good
    • 0
この回答へのお礼

別ファイルでの方法、ありがとうございました。

お礼日時:2010/07/06 10:19

オートフィル操作をするなら以下のような方法が直感的でわかりやすいかもしれません。



C3セルに「'=sheet1!B2」と「'」を入力後に「=sheet1!B2」と文字列で入力し、同様にD3セルに「'=sheet1!C2」、C4セルに「'=sheet1!D2」、D4セルに「'=sheet1!E2」と入力して、この4つのセルを下方向にオートフィルコピーします。

C列を選択して「データ」「区切り位置」で「完了」して文字列を数式化します。
同様に、D列を選択して「データ」「区切り位置」で「完了」します。
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。
同ファイル内で処理する場合は、この方法が簡単でした。

お礼日時:2010/07/06 10:16

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセル コピーしたデータを1行おきに貼り付け

エクセル2003を使っております。
コピーしたデータを1行おきに貼り付けたいのですがやり方がわかりません。あと、1つのセルに対して2行ごとに結合したいのですがどのようにすればいいのか。教えてください。よろしくお願いします。

Aベストアンサー

>1行おきに空白があるデータがありまして、それにコピーしたデータ
を貼り付けたいのです。
あいまいにならないように、実例を質問に挙げること。
例えば
コピー先 -は空白行を示す(1)は行番号
A列
(1)12
(2)ー
(3)15
(4)ー
(5)8
(6)ー
(7)5
ーー
(A)上記のーのセルに
(B)1回の操作で
貼り付けたいのだな。
ーー
ここへコピー元はどういうデータですか。
D2:D8に(-は空白セル)
a

b

c

d
なら
D2:D8をコピー
A2を選択
編集ー形式を選択して貼り付け
空白を無視する、にチェック
で貼り付け。
ーーー
結果
12
a
15
b
8
c
5
d
こんなことか?。質問の書き方をむしろ勉強してほしい。

QEXCELで、セル間隔をあけて貼り付けしたい。

2つのEXCELファイルがあります。
ファイルAのデータが以下のようにありまして、

   A  B  C  D  E
---------------------------------
1| 5  10  3  4  6

この横にならんだ数値をコピーして、ファイルBに

   A  B  C  D  E
---------------------------------
1 | 5
2 | ×
3 | 10
4 | ×
5 | 3
6 | ×
7 | 4
8 | ×
9 | 6

こんな風に縦に、しかもセル間隔をひとつずつ空けてペーストしたいのです。

ファイルAの方の数値はSUBTOTAL関数を使用して出した結果の数値が入ったセルです。
貼り付けしたいセルだけをCtrlキーを押しながら選択して張り付けると 縦のセルの数×ファイルAの数値セルの数 で貼り付けされてしまいます。
「形式を選択して貼り付け」などもやってみましたが、うまくいきません。

なにかよい方法があったら教えていただきたいです。
よろしくお願いします。

2つのEXCELファイルがあります。
ファイルAのデータが以下のようにありまして、

   A  B  C  D  E
---------------------------------
1| 5  10  3  4  6

この横にならんだ数値をコピーして、ファイルBに

   A  B  C  D  E
---------------------------------
1 | 5
2 | ×
3 | 10
4 | ×
5 | 3
6 | ×
7 | 4
8 | ×
9 | 6

こんな風に縦に、しかもセル間隔をひとつずつ空けてペーストしたいのです。

ファイルAの方の数値はSUBTOTAL関...続きを読む

Aベストアンサー

A1=IF(MOD(ROW(),2)=1,INDIRECT(ADDRESS(1,ROW()/2+1,,,"[ファイル名.XLS]シート名")),"")
を下方にコピーでは駄目でしょうか?上記で
=[ファイル名.XLS]シート名!A1
と同じ表示になり偶数行は非表示になります。開始位置がずれる場合は
ADDRESS関数の行数・列数の設定を変更してください。
ADDRESS(行数,列数,参照型,参照形式,シート名)です。
行数は直接1をその行の数値に、列数はROW()/2-1の-1の数値を変更で対応できます。
展開後に確定する場合は式のある列をコピーして、形式を選択して貼り付けで値にしてください。

QExcelで連続データを行飛ばしで反映させるには?

Excelのオートフィルの様な機能を利用して、連続するデータを二段飛ばしの行に反映させることは可能でしょうか?
たとえば、セル「A1・A2・A3…」に「10・20・30…」とあった場合、セル「B1・B4・B7…」に「10・20・30…」と入力したいのです。
Aセルのデータは固定値ではなく、良く変動します。
また、セル「B2・B3」に当るところにも他のデータが入ります。
何か解決策があれば教えてください。宜しくお願いします。

Aベストアンサー

標準モジュールに

Sub test1()
  Dim crng As Range
  Dim rng As Range
  Set rng = Range("a1", Cells(Rows.Count, "a").End(xlUp))
  For Each crng In rng
   With crng
     Cells(3 * .Row - 2, "b").Value = .Value
     End With
   Next
End Sub
当該シートをアクティブにして、Test1を試してみてください

QExcelの連続データから数行おきのコピー

ExcelのSheet1に連続したデータが入っています。

Sheet2はSheet1の内容を参考にしてレイアウトを変えていますが、

Sheet1で入力してある項目を参照して表示したいです。

コピーには規則性があるので、Sheet2を2項目だけ入力した後、

オートフィルで、一発で全部コピーしたいです。

VBAではなく、Sheet2に書くべき関数のコードを教えてください。

よろしくお願い致します。


-------------------------------

連続したデータがSheet1に大量に入っています。


  A   B    C
1 北海道 札幌市 メロン
2 青森県 八戸市 りんご
3 岩手県 盛岡市 冷麺

以下、多数あり。



Sheet2に、

  A   B    C
1 北海道 札幌市 メロン
2
3
4
5 青森県 八戸市 りんご
6
7
8
9 ※ここから下をオートフィルのコピーで表示したい

Aベストアンサー

シート2のA2セルには(A1,A3セルでもよい)次の式を入力してC2セルまでドラッグコピーしたのちに下方にもドラッグコピーします。

=IF(MOD(ROW(A1),4)<>1,"",IF(INDEX(Sheet1!$A:$C,ROUNDUP(ROW(A1)/4,0),COLUMN(A1))="","",INDEX(Sheet1!$A:$C,ROUNDUP(ROW(A1)/4,0),COLUMN(A1))))

上式では1つのデータに4行を使っているので4が入力されています。5行必要なら5に改めて使用すればよいでしょう。
なお、シート1でデータが2行目から下方になる場合には次のような式になります。

=IF(MOD(ROW(A1),4)<>1,"",IF(INDEX(Sheet1!$A:$C,ROUNDUP(ROW(A1)/4,0)+1,COLUMN(A1))="","",INDEX(Sheet1!$A:$C,ROUNDUP(ROW(A1)/4,0)+1,COLUMN(A1))))

+1が新たに追加されますね。

Qエクセルで連続データから、数個飛ばしのデータを抜き取る方法

  A  B
1 a1
2 a2
3 a3
4 a4
5 a5
・・・・・
のような表において、
Bの列にB1=a1、B2=a3、B3=a5
のような2個飛ばしのデータを連続で抜き取る方法はありますでしょうか。
A列が3000行ほどあり手打ち入力がしんどいです。
OFFSET関数を使ってもうまく連続コピーされません。
どなたかご教授願います。

Aベストアンサー

OFFSET関数利用でもよいが、INDEX関数のほうが普通かな。
=INDEX($A$1:$A$100,(ROW()-1)*2+1,1)
100はデータ数が多い場合はデータ行数に変える。
例データ A1:A5
a1
a2
a3
a4
a5
B1に上記。データ数の半数の行数を複写。
結果
a1
a3
a5

Q一行おきにコピーするマクロが知りたい

行のF列からX列まで計算式を入れてあるんですけど
それを100回ほど一行おきにコピーしたいんです。
計算式はよく変わるのでマクロを使って一気にコピーをしようと思うのですが、どのようなモジュールにすればよいのか教えてください。お願いします。

Aベストアンサー

これでどうですか。

Sub main()
For i = 3 To 199 Step 2
For j = 3 To 6
Cells(1, j).Copy Cells(i, j)
Next j
Next i
End Sub

Qエクセルで1列おきのデータのみコピペする計算式

エクセルで、A1:Z1に金額が入っています。
A1、C1、E1、G1、I1・・・・・の1列おきのデータだけが
A2、B2、C2、D2、E2、・・に入る様な計算式をおしえて頂きたく宜しくお願い致します。

Aベストアンサー

A2セルに
 =OFFSET($A$1,0,(COLUMN(A1)-1)*2)
を貼り付けて、そのセルを右方向にコピーしてはいかがでしょう

QEXCEL 1つ飛ばしのセル参照

A1には「=B1」
A2には「=B3」
A3には「=B5」・・・
というように、参照先の列を1つ飛ばしにしていく場合、
簡単にコピーしてA列を作る方法を教えてください!!

Aベストアンサー

>A1には「=B1」
>A3には「=B2」
>A5には「=B3」であればどうなりますか?

A2、A4・・・は空白という意味であれば、A1に
 =IF(MOD(ROW(),2)=1,INDIRECT("B"&INT(ROW()/2)+1),"")
下方にフィルコピー

Qエクセルで1行間隔でのオートフィルって出来るんですか?

A1,A3,A5,A7・・・と言う風に1行間隔でオートフィルできるのでしょうか?
素人なので一個ずつ入力しています。どなたかご存知の方できる方法があれば教えていただけませんか?

Aベストアンサー

たとえば、A1セルに「100」、A3セルに「200」と入力したうえで、
A1~A4セルを選択して(反転させて)ドラッグすると、A5セルに
「300」、A7セルに「400」....というように、結果として1行間
隔でオートフィルされます。

要はあらかじめ1行おきの初期値を用意しておいて、1行おきに
データをオートフィルしたいことがわかるように4つのセルを
選択した状態でドラッグすることです。

Qエクセルで一列おきに空白列を入れたい

ABCDEF・・・
の表を

A B C D E F ・・・

のように一列空白の列を入れたいのですがどうすればいいのでしょうか。

Aベストアンサー

○列数が少ない場合、

B列を選択、Ctrlキーを押しながらC列を選択、Ctrlキーを押しながらD列を選択...として、右クリックで[挿入]

○列数が多い場合

たとえば、A1:Z5にデータが入っているとして、A列からZ列の間を一列ずつあけたい開けたい場合、以下の手順はいかがでしょう

1.あいている行(たとえば5行)にA列からZ列に1~26を入力
2.A5:Z26をコピーしてAA5:AY5にペースト
3.1:5を選択して、メニュー[データ]-[並べ替え]
4.[オプション]キーを押して[列単位]にチェックして[OK]
5.最優先されるキーを行5にして[OK]
6.5行目を選択して、deleteキー

参考URL:http://www2.odn.ne.jp/excel/waza/cell.html


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング