マクロ初心者によるシートデータの取得方法と反復計算についての質問

このQ&Aのポイント
  • マクロ初心者がシートデータを取得する方法や反復計算について質問しています。
  • 具体的な例を挙げながら、添付ファイルのデータを使用してシートの特定のセルに値を入れる方法を知りたいとしています。
  • さらに、シートの特定の範囲からデータを取得し、それを他の複数のシートに反復計算させる方法についても知りたいと述べています。
回答を見る
  • ベストアンサー

マクロに関して 画像が見づらいので再度質問

マクロ初心者です。 シートAからシートBのデータを取得する際の質問です。 1. 添付ファイルの左側のシート(シート:損益計算)ように シート:損益計算 B1~B18まで1~10まであります。 これはシート名に対応します。(シート名:1~10) シート:損益計算のC4,5,6に書かれているデータが あります。これを(シート:損益計算)C9に入れる値を 添付ファイルの右側から入れる値を(シート:1) から選択して、(シート:損益計算)C9に入れたいです。 具体的には(シート:損益計算)C9に入れるデータは 添付ファイル右側の(シート:1)1205はB2~22 で(シート:1)C2~22の中では9500は(シート:1)のC12に 相当しますので1205の9500のC価格である(シート:1)の 147を(シート:損益計算)C9に入れたいです。 まずどのような関数を使って入れれば良いか教えてください。 2. また、次に(シート:損益計算)のD4,5,6からL4,5,6まで終わらせて (シート:損益計算)のB10の2、つまりシート2から同様のデータを 取得する気でいます。それをB18のシート10まで反復計算させる 事が最終目的です。 大変申し訳ないのですが、1だけでも良いので教えていただけないでしょうか。 以上、よろしくお願いいたします。

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

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

ご質問の意味が、シート名がB9セル以下に入力されていて、そのシートの中でC列から右に5行目の値をB列の値から、6行目の値をC列から検索し、4行目のデータがC価格の場合は対応するシートのA列のデータから、それ以外の場合は(O価格の場合は)D列の値から抽出したいということなら、C9セルに以下のような関数を入力して右方向及び下方向にオートフィルすれば表示することができます。 =INDEX(IF(C$4="C価格",INDIRECT($B9&"!$A:$A"),INDIRECT($B9&"!$D:$D")),MAX(INDEX((INDIRECT($B9&"!$B$2:$B$66")=C$5)*(INDIRECT($B9&"!$C$2:$C$66")=C$6)*ROW($B$2:$B$66),))) ただし上記の式は数式が複雑になるので、4から6行目の3つのデータに合致するデータが無い場合のエラー処理をしていませんので注意してください。

その他の回答 (2)

  • myi333
  • ベストアンサー率34% (10/29)
回答No.2

損益計算書の4~8行には、品名 原価 売価 ? 利益 が入っていて9~40までは日々の損益が入るのですか? Vlookupが使えると思うのですが、右側のシートの1行目の文字と数字が読めないので検索条件を立てられないです。何を計算(加減乗除だけではない)するか説明が足りないです。

momocha1030
質問者

お礼

ありがとうございました。 できました。

momocha1030
質問者

補足

みづらくてすいません。 画像を2つつければ良いのですができませんでした。 >損益計算書の4~8行には、品名 原価 売価 ? 利益 が入っていて9~40までは日々の損益が入る >のですか? 損益計算書の4~8行の ・4行目には(C価格 または P価格)が入ります。 ・5行目には1205(12年5月)や1206または1207が入ります。 ・6行目には7000,7250・・・12000等の250円刻みの数字(権利行使価格)が入ります。 シート1の ・A行にはA1にC価格が書いてあり、その下のA行には値段が書いてあります。 ・B行のB1には限月と書いてあり、1205や1206または1207が入ります。 その時にB2~B22までは1205 B24~B44までは1206 B46~B66までは1207です。 (画像では見えないですが) ・D1には権利行使価格と書いてあり、D2から下はD2に7000 D3に7250、 D4に7500・・・D22に12000と書いています。またD24~D44までも同様に 7000~12000の250円刻みで書いてあり、D46~D66までも同様の7000~12000 が書いてあります。 ・D行のD1にはP価格 D2から下は値段が書いてあります。 そして私が実施したいのは、まずは損益計算書のC4(C価格)とC5(1205)と C6(9500)に書かれているのと同じものをシート1から選択したいのです。 具体的には 損益計算書(C4)=シート1(A行) 損益計算書(C5)=シート1(B2~B22) 損益計算書(C6)=シート1(D12,D33,D54)に書かれています。 その中で損益計算書のC4,5,6に書かれているものはシート1のA12になるので その値を損益計算書のC9に入れたいと思っています。これが終われば損益計算書の D,E,F・・・とマクロの記録でとほかの方が書かれているのですが、 この作業も実際マクロの記録でどのようにしたら良いか思いつかず質問した 次第です。 以上、よろしくお願いいたします。(もし言葉足らずでしたらメールで ファイルを送付いたします。)

  • shinkami
  • ベストアンサー率43% (179/411)
回答No.1

マクロのチェックをしてみてくください。 マクロツールをクリックするとマクロウィンドが マクロのチェック方法です。 ・マクロをクリックし表示されたマクロの一つを選んで 編集ボタンをクリックするとマクロのコードが表示されます。 この左端をクリックすると●が表示されます (もう一度クリックすると●は消えます。 コードウィンドウを閉じてマクロを実行すると このポイントで一時停止します。この後F8で処理は一行づつ 進みます。 最初コードの一覧でめんくらいますが少しづつ解ってくると思います。 辻の質問にはこのコードも添えてください。 行頭のシングルコーテーションはコメント行です。 まくろの

関連するQ&A

  • EXCELマクロに関しての質問

    マクロ初心者です。 シートAからシートBのデータを取得する際の質問です。 1. 添付ファイルの左側のシート(シート:損益計算)ように シート:損益計算 B1~B18まで1~10まであります。 これはシート名に対応します。(シート名:1~10) シート:損益計算のC4,5,6に書かれているデータが あります。これを(シート:損益計算)C9に入れる値を 添付ファイルの右側から入れる値を(シート:1) から選択して、(シート:損益計算)C9に入れたいです。 具体的には(シート:損益計算)C9に入れるデータは 添付ファイル右側の(シート:1)1205はB2~22 で(シート:1)C2~22の中では9500は(シート:1)のC12に 相当しますので1205の9500のC価格である(シート:1)の 147を(シート:損益計算)C9に入れたいです。 まずどのような関数を使って入れれば良いか教えてください。 2. また、次に(シート:損益計算)のD4,5,6からL4,5,6まで終わらせて (シート:損益計算)のB10の2、つまりシート2から同様のデータを 取得する気でいます。それをB18のシート10まで反復計算させる 事が最終目的です。 大変申し訳ないのですが、1だけでも良いので教えていただけないでしょうか。 以上、よろしくお願いいたします。

  • エクセルのマクロについての質問です。

    エクセルのマクロについての質問です。 長文申し訳ございません。 Excelマクロが何度作り直してもうまく作動せず非常に困っております。 (1)ファイルAのシート1のDB列3行目に1の値をいれます。 (2)ファイルAのDC列172行目の値をファイルBのシート名が「1」のシートのD列4行目に入れます。 (3)ファイルAのDC列2733行目の値をファイルBのシート名が「1」のシートのD列6行目に入れます。 (4)ファイルAのDC列3128行目の値をファイルBのシート名が「1」のシートのD列7行目に入れます。 (5)ファイルAのシート1のDB列3行目に1.2の値をいれます。 (6)ファイルAのDC列172行目の値をファイルBのシート名が「1.2」のシートのD列4行目に入れます。 (7)ファイルAのDC列2733行目の値をファイルBのシート名が「1.2」のシートのD列6行目に入れます。 (8)ファイルAのDC列3128行目の値をファイルBのシート名が「1.2」のシートのD列7行目に入れます。 (9)以上のようにファイルAのシート1のDB列3行目に入れる値を0.2ずつ増やしていき、その値に対応したファイルBのシートに上記のように値を入れていくという動作を20まで繰り返す。 以上のようなマクロを作る事は可能でしょうか? マクロについて勉強はしているのですが上手く使いこなせず苦労しております。 長文の質問で大変申し訳ございませんがよろしければ皆さまのお知恵をお貸しください。 宜しくお願い致します。

  • エクセル再度ご質問(画像添付あり)

    宜しくご指導を。 判りやすい様に画像を添付しました。沢山の方からの返信頂きましたが 理解不足で上手く行きませんでしたので。改めておねがいです。 まず源泉シートとDATAシートに別れています 1.源泉シートG1に数値を入れるとDATAシートの表を見に行く様にしたい 2.DATAシートには添付データの様に表が組まれています。 源泉シートにはB1大正、C1明治、D1昭和、E1平成と言う枠があります。 例)源泉シートG1に2と入れると(DATAシートからこの人は大正生まれ)なので、 源泉シートのB2に○を入れたいのです。そのほか明治昭和平成は空白です。 3を入れると昭和D2に○が入るように。 宜しくお願いします。

  • マクロ(VLOOKUP)に関しての質問です。

    現在、シート名が、A1セル~A5セルの値となっています。(状況によっては増減があります。) VLOOKUP関数の範囲指定をセルの値によってシートを選択するようにしたいと考えています。 シートには、A列とB列にデータがあり、B列の値を元のシートのA2と検索をし、B2に引っ張りたいと思っています。 以下のようなコードを考えているのですが、エラーとなってしまいます。 ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],Sheets(Cells(1, 2).Value)!C[-7]:C[-6],2,0)" Sheets(Cells(1, 2).Value)!C[-7]:C[-6]の部分が間違えていると思うのですが、どのように修正すればよろしいのでしょうか。 申し訳ありませんが、お力をお貸しいただけませんでしょうか、 よろしくお願いいたします。

  • エクセル計算式の複写について

    計算式の複写について シート1   シート2   1 あ    1 あ       A    2 い    2 い    3 う        B            3 う             C シート1に2行使ったデータがあります シート2にシート1から1の「あ」・2の「い」・3・の「う」のデーターを取り出すために計算式を以下のようにしたい 例(C3=sheet1!B3)   (C4=sheet1!B5) ・・・・ と B7 B9 B11 と計算式を入れたい どうすれば複写ができますか?

  • VBAでおしえてください

    お世話になっております。 今、5個のエクセルファイルがあり、それぞれ複数のシートで構成されていますが、シート名、並び順は、5個のファイルとも共通です。 シート名は、sheet1から、A,B,C,D,・・・・と割り振っております。 ここで、同じシート名のdataを同じシート内に集めたいです。。 (元DATAの形式) ファイル1 SheetA SheetB セル DATA セル DATA B2 2 B2 8 B3 3 B3 5 B4 4 B4 6 ファイル2 SheetA SheetB セル DATA セル DATA B2 6 B2 2 B3 5 B3 3 B4 1 B4 4 VBA変換後 ファイル1 SheetA セル DATA セル DATA B2 2 C2 6 B3 3 C3 5 B4 4 C4 1 よろしくお願いいたします

  • 同一フォルダ内のデータを自動的に移動するマクロ

    こんなことが可能かわかりませんが、 毎月集計をとっているファイルがあります。 そのファイルは毎月名前がかわるのですが、(2013.05○○ファイル←毎月数がふえていきます。) そのファイルの中にあるシートの数枚(4枚をれぞれに名前がAデータ・Bデータ・Cデータ・Dデータ)を違うファイル(調査ファイル)に値だけを貼り付けたいのです。 月末にデータが完成したら、あるボタンをおしたら2013.05○○ファイルのA・B・C・Dデータを 調査ファイルのデータa・b・c・dデータに値だけを貼り付けたいです。 対象となるのは各シート全体の数値です。 どなた様かご教授くださいませ。 よろしくお願い致します。 そのようなことができるマクロというのはあるのでしょうか。

  • マクロで自動的に計算式に値を取得させたい

    マクロで自動的に計算式に値を取得させsheet1にある基データを sheet2に等間隔で出力させたいのですが・・・うまくいきません。 最終的にはこれをループさせsheet1の全てのデータを等間隔で sheet2の方へもたせる予定です。 [sheet1]          [sheet2]   A   B   C        A     B     C 1  りんご         りんご 2  みかん 3  なし          みかん 4  ・・・ 5  ・・・          なし 6  ・・・                    sheet2のA1に計算式「=sheet1!$A1」を入れ、それをコピーして A3、A5にペーストすると計算式が上手く反映されず、ずれてしまいます。 希望としては・・・ A3には「=sheet1!$A2」となりsheet1のA2の「みかん」 A5には「=sheet1!$A3」となりsheet1のA3の「なし」 が入るようにしたいのですが、上手くいきません。また、 sheet1のデータ量も多いのでマクロでの処理を考えています。 いろいろ検索してみたのですが上手く処理ができませんでしたので こちらで質問させていただきました。 よろしくお願いします。

  • Excelマクロに関しての質問

    Excelマクロに関しての質問です。 ファイルAの”シート1”のF1,F16,F42,F65,F97,F122を別のファイルBの”集計シート”のB2,C2,D2,E2,F2,G2にデータ(数値or文字)を移します。 そしてファイルAの”シート2”のF1,F16,F42,F65,F97,F122をファイルBの”集計シート”のB3,C3,D3,E3,F3,G3にデータを移します。 それをファイルAの”シート29”まで繰り返し行いたいのですが、どのようなマクロを組めば良いのでしょうか? 教えて頂きたいです。

  • 再度・・・エクセル 検索・抽出マクロを教えて下さい

    (画像が添付されてなかったので、同じ質問をします) 項目が同じで内容の違う、膨大な量のエクセルデータが9シートあります。 会社で決められた『記号』列のひとつの値を、9シートのデータ全て検索して、 シートにまとめる作業をすることになりました。 (1)抽出表示するのはシート1で、シート2~シート10に、項目が同じ検索データがあります。 (2)抽出シート1のB3に、検索する『記号』を入れると、   D2から右に項目、   D3から右には、シート2からシート10のデータが   シートごとに追加されて出るようにします。 今までやった検索・抽出は、1シートづつで、今回のように 何シートにも渡るものは初めてです。 ご回答を おまちしております。 よろしくおねがいします。

専門家に質問してみよう