• ベストアンサー

エクセル2007にて表から

エクセル2007にて表から DATAを抜き出したいのでご教授ください 画像の上のセルに数字を入れていき個数部分(青丸部分)に数値があるものを 元にして 下セル13からのような並びにDATAを作成したく思っております。 マクロは自動保存などで触ったことがあります。 数値がある部分というのが難しく思っておりますので すいませんがよろしくお願いします

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

無理に関数でごり押しするより(出来ないとは言いませんが,お薦めはしません),マクロの方が遙かに簡単ですね。 作成例: sub macro1()  dim h as range  dim i as long  dim target as range  range("A13:A" & cells.rows.count).entirerow.delete shift:=xlshiftup  on error resume next  set target = range(range("D3"),cells(10, cells.columns.count)).specialcells(xlcelltypeconstants)  if target is nothing then exit sub  i = 12  for each h in target   i = i + 1   cells(i, "B") = cells(2, h.column)   cells(i, "C") = cells(1, "B")   cells(i, "D") = cells(h.row, "B")   cells(i, "E") = cells(h.row, "C")   cells(i, "F") = h  next end sub #あとは趣味に応じて,たとえばF13以下の降順で並べ替えたいとか書式を整えたいとか,諸々追加の修飾を新しいマクロの記録で記録したマクロなどを追記して完成させてください。

jpiclt4
質問者

お礼

貴重なお時間の中お答えくださいましてありがとうございました。

その他の回答 (1)

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

こういう、「表のセルの組み換え問題」は、関数では難しいか複雑で不可能に近く、一方VBAでは、処理のポイント(定石)を経験すると簡単。 例データ B1:F8 -は空白セルを示す。左に詰めて表示されるのを防止のためで特に意味なし - X Y Z U a - 2 - - b - - - - c - - - - d - - 1 - e 2 1 1 - f - - - 1 g - - - 1 ーーー コード 標準モジュールに Sub test01() k = 2 '書き出し列(H,I,J列)の2行目から結果を書き出す Dim cl As Range For c = 3 To 6 'C列からF列までの各列について For Each cl In Range(Cells(2, c), Cells(20, c)) 'その列の各セルについて If cl <> "" Then '空白でないなら Cells(k, 10) = cl 'J列k行に値を代入 Cells(k, 8) = Cells(cl.Row, 2) 'H列k行にその行のB列の値を代入 Cells(k, 9) = Cells(1, c) ' 'I列k行にその列の第1行の値を代入 k = k + 1 '次の書き出しに備え、行を1行下を指す 'MsgBox cl End If Next Next c End Sub ーーーー 結果 H2:j9 e X 2 a Y 2 e Y 1 d Z 1 e Z 1 f Z 1 f U 1 g U 1 一部質問例の中身を省略した個所がある。 ・書き出し列やスタート行 ・データのある列で 質問者の場合は、どう変えればよいか勉強のこと。 コード(やり方)は珍しく思うかもしれないが、定石的なやり方の1つと思う。

関連するQ&A

  • EXCELである表から違う表へデータを取り込む

    こんにちは。エクセルでわからないことがあるので 教えてください。 エクセルで作ったある表のデータを 違うフォーマット (表の形が違う)に各セルごと自動的にデータを取り込める ようにできますか? 得意先から送られてくるエクセルデータがあるのですが、 弊社のフォームに打ち直しをしています。入力事項は 20項目程度で、各項目には文字が入ったり、数字が入ったり します。 説明がわかりにくく申し訳ありません。 足りない部分があれば、補足させていただきますので、 どうぞお知恵を貸してください。よろしくお願いします。

  • エクセルで表計算ができなくなった!!

     エクセル2003を使用しています。 今まで普通に表計算ができていたのですが、 急に表計算ができなくなってしまいました。  あるデータ集計で表を作って使用していました。 昨日までは普通に数値を入れると自動で計算してくれていたのですが、 今日、数字を打ち込んでも計算してくれません。 集計欄にしてあるセルにカーソールを持っていき、 エンターを押すと、計算されます。 前までは、数字を入れると自動で計算してくれていたのですが・・・。 何か間違えて、設定を変えてしまったのかもしれませんが、 どこをいじればよいのか分かりません。 対策があったら、教えてください。

  • エクセル、マクロを使って自動的に表を完成させる方法教えて下さい

    膨大なデーターを表に入力するのに途方に暮れています。マクロ(VBA?)で自動的に入力する方法を教えて下さい。 エクセルのセル、A1~G1まで、横方向に入力した計算式や、数値をマクロで記憶させて、 同じ処理を、2行~1000行まで自動で繰り返させたいと思っていますが、繰り返しの指示の書き方がわかりません。行によって入力する数値が異なる為、 コピペではできません。どなたか宜しくお願いします。

  • エクセルで

    エクセルで作ったブック表1があって、それを基にブック表2を作っています。 表1と表2は表の形式が違うだけで、ほぼ数値は変わらないので、=を使って、数値をリンクさせています。 表1のセルには| 4 |という数字しかありません。 それを表2では|(4)|とカッコの中に表1の数値を入れたいのですが、どうしたら良いでしょうか? また、表1では-0.026という数値を表2では-2.6X10-2(10-2というのは10のマイナス2乗の意味)としたいのですが、その方法もあればお願いします。 エクセルはあまり詳しくないので困っています。 マクロとか関数とかもよくわかっていません。。。 よろしくお願いします。

  • エクセルの関数です。列に数字が並んでいる表。

    エクセルの関数です。列に数字が並んでいる表。 ある列内のセルにある数字を指定し、その数字から下一列にある数字をすべて選択したような状態でその中の数字の平均値を求める方法はあるのでしょうか? 数値 3210 ※例えば 3211  3212と3215とあるセルに入力したら自動的に3212~3215の平均値の結果が返るような  3333  関数です。 3212 3213 3214 3215 3217 3218 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235

  • ワードの表とエクセルの元データをリンク

    オフィス2010を使っています。 エクセルでグラフを作り、それをワードに張った場合、 元のエクセル表で数値を変えた場合、ワードの表も自動的に 変わるようなリンクが張れると聞きました。 エクセル表で、10個のデータで平均を取って表を作りワードに張ります。 そのあと、11個目、12個目のデータを作って平均を取ってエクセルでグラフを 作った場合、ワードにはった表も同じように自動的に変更できると 聞きました。 どのようにすればそのようなリンクを張れるのでしょうか? 教えてください。 よろしくお願いします。

  • エクセルで関数を使い注文品別の一覧表を作るには?

    まず、元になるデータとして、縦軸1~80に発注者氏名、横軸A~Jに注文品を記した表があり、発注した個数を入力してあります。縦軸最後にはSUM関数で注文品別の合計発注数が出ています。 この表を基に、注文品別の発注者がわかる一覧表を作成したいのですが、ご教授お願いします。 VLOOKUP関数等考えてみましたが、うまくいきません。(個数を入力したセルから氏名をひっぱってくる方法が不明です)エクセル上級者の皆様、宜しくお願い致します。(アクセスがないのでエクセルでお願いします)

  • エクセルで関数を使い注文品別の一覧表を作るには?

    まず、元になるデータとして、縦軸1~80に発注者氏名、横軸A~Jに注文品を記した表があり、発注した個数を入力してあります。縦軸最後にはSUM関数で注文品別の合計発注数が出ています。 この表を基に、注文品別の発注者がわかる一覧表を作成したいのですが、ご教授お願いします。 VLOOKUP関数等考えてみましたが、うまくいきません。(個数を入力したセルから氏名をひっぱってくる方法が不明です)エクセル上級者の皆様、宜しくお願い致します。(アクセスがないのでエクセルでお願いします)

  • エクセルのリンクについて

    エクセルの表の中で一部分だけ(例えばA列~D列まで)を抜き出して別の表に自動的に作成したい場合は新しいファイルを作って計算式を入れて表示させると思いますが、その表をメールで送りたい場合元のファイルも一緒に送らないと表示されないですよね? マクロを使ってボタンを押すとデータが別のファイルに保存されるといった方法はないでしょうか? マクロ以外でも何かいい方法があれば教えてください。

  • エクセルのデータをワードの表に貼り付ける

    こんばんわ。エクセルに入力したデータ(1から100など4種類のデータ)をワードの表(表が100個あり、それぞれの表に4種類のデータを貼り付ける)に自動的に貼り付けたいと思います。リンク貼り付け、差込印刷を試してみましたが、作業性が良いとわ思いません。マクロなどでできれば良いと思いますが、私マクロがあまり詳しくないため、わかりません。教えて頂けないでしょうか。宜しくお願いします。

専門家に質問してみよう