EXCELでのデータ操作方法について

このQ&Aのポイント
  • EXCELを使用して、フォルダに2つのEXCELファイルを作成し、データを操作する方法について教えてください。
  • 具体的には、EXCELファイルAにはタイトルと数値データが入力されており、EXCELファイルBにはファイルAのデータから列を抽出する方法についても知りたいです。
  • お手数ですが、良い方法があれば教えていただけると助かります。
回答を見る
  • ベストアンサー

EXCEL 良い方法ありますでしょうか?

いつもお世話になります。 EXCELでやりたいことがあるのですが、知識がない故できるかどうかがわかりません・・・。 内容は以下です。 ・フォルダに、ファイルAとファイルBの、2つのEXCELファイルを作成する ・EXCELファイルAには、各列にタイトル(20列)、各行に数値データが入力してある(1000行) ・EXCELファイルBには、シートが2つ。 一つ目のシートの任意のセルに、ファイルAの名前を入力すると、2つ目のシートにはファイルAの列の中から、何列かをピックアップして抽出する(ファイルAの2、4、5列目といったように、毎回抽出する列は固定) といった内容ですが、良い方法を教えて頂けると嬉しいです。 よろしくお願いしますm(_ _)m

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

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

基本やることは,次の手順です。 1.ファイルAの所定の列(1行目から1000行目まで)をコピーする 2.ファイルBのシート2の所定の列に,形式を選んで貼り付けのリンク貼り付けにチェックして,参照式をどさどさっと投入させる 3.他の列も,同様にリンクする式を記入しておく で。 ファイルAのファイル名が「ファイルA」じゃなく,毎回変わってしまうという点が,聞きたいポイントだった(けどご質問には書いてない)という事でしょうかね。 >一つ目のシートの任意のセルに、ファイルAの名前を入力すると これ自体はINDIRECT関数を使って行う内容になりますが,現実にはINDIRECT関数が使えるためには,ファイルAを「開いておかないと」計算ができません。 方法1: ファイルA.xlsを「開いておく」 シート1のA1に「ファイルA」と記入すると 前述でお話しした参照式が =[ファイルA.xls]Sheet1!B1 のようになっていた部分を =INDIRECT("["& Sheet1!$A$1 &".xls]Sheet1!R" & ROW() & "C2,FALSE)") という数式に変更して,1000行までコピーしておく 方法2: ファイルAを「閉じたまま」 前述でお話しした参照式が ='c:\フォルダ\[ファイルA.xls]Sheet1'!B1 のようになっている状態で, ご利用のエクセルのバージョンが不明ですが,たとえば2003までなら編集メニューのリンクの編集でいま「ファイルA.xls」を参照しているのを,今現在の正しいブックに参照を付け替える 方法3: ファイルAを「閉じたまま」 前述でお話しした参照式が ='c:\フォルダ\[ファイルA.xls]Sheet1'!B1 のようになっている状態で, Ctrl+Hで置換を出し ファイルA.xls を 正しいブック名.xls に全て置換する

kumachan1027
質問者

お礼

回答ありがとうございます。 教えて頂いたINDIRECT関数を試してみたのですが、私の理解が至らずエラーになり、解消できませんでした・・・。問い合わせの仕方がうなくなかったのもありますので、あらためて質問をあげさせて頂きます。ありがとうございました。

その他の回答 (1)

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

具体例と、一般的な内容とがゴッチャになっているようで、質問の内容がよくわからない。 >ファイルAとファイルB 一般的なようで具体的なようで。何度も同じような作業があるのか?その都度対象が変わるということか? ファイルA   Sheet1 A-T列=20列 各行数値データ ファイルB   Sheet1 ファイルAの名前を入力 >任意のセルーーこれは困るだろう。どこかに決めておかないと。なぜ任意というのか        一般性のある書き方を心がけたつもりかもしれないが、質問ではかえって判りにくい。   Sheet2  ファイルAのブックのSheet1(シートもはっきり書け)の>何列かをピックアップして抽出する         これも意味わからない。何列かは何処のシートのどのせるなりに指定されるのか。 -- VBAでも使いたいのか、関数でやりたいのか。 ーー もう一度自分の書いた質問をよく読んで(補足するか)再質問のこと。

kumachan1027
質問者

お礼

回答ありがとうございます。 以下、補足です。 >ファイルAとファイルB >一般的なようで具体的なようで。何度も同じような作業があるのか? >その都度対象が変わるということか? →ファイルAのように、データの入っているファイルは、毎日発生します。  (データの数値等は、毎日バラバラです)  よって何度も同じ作業がありますし、都度対象も変わります。 >ファイルB >Sheet1 ファイルAの名前を入力  >任意のセルーーこれは困るだろう。どこかに決めておかないと。 →どこかのセルで固定します。 >Sheet2 ファイルAのブックのSheet1(シートもはっきり書け)の >何列かをピックアップして抽出する >これも意味わからない。何列かは何処のシートのどのせるなりに指定されるのか。 →例えば、ファイルAがA~Tまでの20列にタイトル、1~1000までの行があるとすると、ファイルBのSheet2の列には、A,B,F,Iの4列の1~1000までの行のデータのみが抽出されて入ってくる、と内容です。 >VBAでも使いたいのか、関数でやりたいのか。 →VBAはわかりません。関数でできれば良いのですが、できなければ別の方法を考えたいと思います。

関連するQ&A

  • エクセルの操作

    エクセル初心者です。仕事の都合で次のような操作をしたいのですが、悪戦苦闘しています。ご存じの方教えてください。 *「シート1」の各行の、A列には「整理番号」が、B列からG列までにはそれぞれのセルに「データ」が入力してあります。 *「シート2」の任意のセルに「シート1のいずれかの整理番号」を入力すると、「シート1」内の「該当する整理番号の行(?)」が選択され、それらの各BセルからGセルのデータが、「シート2」の任意のセルに入力されるようにしたいのです。 書き方がまずいかもしれませんが、よろしくお願いします。

  • エクセル 数式について

    皆さんこんにちわ。 現在エクセルで計算式を作らせようとしているのですが、 わからない事があったので質問させて下さい。 メインシート(シート1) A1セルに入力欄(数値記入)  B1セルにA1セルから出した結果  C1セルには別シートの対応した列の数値÷B1セルに入力した数値 別シート内容(シート2) A1 1 B1 20000 A2 2 B2 40000 A3 3 B3 60000 例で書くと シート1のA1セルに2 シート1のB1セルに2000  と書いてるとして シート1のC1セルには   「A1には2と入っているのでシート2の2って表示されている列のB2セルの40000÷B1セルの2000」の答えを表示させたいです。 ここでわからないのが別シートからの参照方法とその列の入力した数字の列のBセルの参照 方法です。(その行で2と言う数値がある列の別セルを参照させる) 少しわかりずらいのですが、上記に書いた事のやり方 どんな風にしたらいいのか、詳しい方ご助言下さいm(__)m

  • エクセルの空白を求めたいのですが。

    エクセルの空白を求めたいのですが。 例えば、 ・・A B C D E 1 4 2 3 8 4 5 6 4 7 8 9 2 10 A列の数字入力があるセルから、次のセルの入力値まで の空白の個数を関数で出来ますでしょうか? A9~A6 は空白が2個となります。 A6~A3 は空白が3個となります。 A列の 各行 には他のセルで計算された値を出しているので、 各行に現れる数値は、その時によって違います。(現れる数値は整数です) わかる方いましたら、宜しくお願いします。

  • [エクセル]処理結果を残して次の処理をさせるには?

    AシートのB~G列の各セルには数値が入っており、全部で数百行あります。 Bシートには、いろいろとデータ処理させる作業用のシートとなっております。 Bシートでは、6つの数字を入力するセルに数値を入力する事でデータ処理がされ、Bシート上で結果が算出されます。 現在はBシートに、Aシートの各行のB~G列の6つの数値を入力してデータ処理をして、結果を算出させています。 ですが、Aシートには数百行もあるので、1行1行の数値を入力して処理させていては時間と労力がかかってしまうので、一気に処理できる方法はないか考えていますが、良いアイディアがありません。 AシートのI列の各行に、Bシートでの処理結果をまとめて算出させる方法はないでしょうか? 例えばAシートのB~G列の各行に 1,2,3,4,5,6 7,8,9,1,2,3 4,5,6,7,8,9 と入力されているとします。 Bシートでは、各行の数字を足す処理をさせるとします。(実際はもっと複雑な処理をさせています) 一気にAシートにBシートでの処理結果を表示させたいと思ってます。 1,2,3,4,5,6,21 7,8,9,1,2,3,30 4,5,6,7,8,9,40 何か良い方法はないかと、ずっと考えているのですが、思い付きそうもなかったので、こちらで質問させて頂く事にしました。 アドバイスをお願い致します。

  • Excel のセルどうしでの循環を避けた参照の方法

    次の方法があれば教えてください。 Excelの同一ワークシートの中にある、または複数のワークシートに存在するセルA,B,C,D,...の間において、任意のセルを選択し、そのセルに任意の数値/文字列を入力した場合、他のセルもその数値を参照するように関連付けたいのですが、これらのセル間で、互いに循環問題を生じないようにするには、どうしたらよいのでしょうか?

  • エクセルでこんなことはできますか?

    エクセルで、 A列には日付が入っていて、B列には数値が入っています。 「A列の日付の月が5月のところのB列の値を合計する」 という式を作ることは可能でしょうか? ワークシートのセルに式を入力して実現できるでしょうか? それともマクロでないとできないでしょうか?? 自分で考えてみたのですが、ギブアップです。。。 日付が入力されているセルの月の値を抽出というか 検索する方法がわかりません・・・ どなたかご教授いただけないでしょうか?

  • エクセル2000で文字列から数値を抽出したい。

    エクセル2000で文字列から数値を抽出したい。 ワークシートのA列に下記の文字列が入力されています。 A1セル="123456 日本男子 54,321 7,654,321 12,345" A2セル="234567 東京都子 1,234 2,345 5,321" A3セル="345678 大阪太郎 99 689 9,876" データ間はスペースで区切られています。 後方2番目の数値をB列に取出す方法を教えて下さい。 B1セル=7,654,321 B2セル=2,345 B3セル=689 よろしくお願い致します。

  • Excelで、少しプログラムのようなことがしたいのですが・・・

    『A.csv』と『B.xls』のように、別々のexcelfile(または、sheet)で、どちらにも同じ項目の『C』という列があるとします。 その列の入力されているデータ(数値)が一致したとき、『B.xls』のfile(または、sheet)の『C』という列のセルにそのデータ(数値)記入させる。 …みたいなプログラムをExcelでしたいのですが、できるでしょうか?

  • セルに入力した数値の組み合わせを抽出する方法

    セルに入力した数値の組み合わせを抽出する方法 色々探したのですが、よく分からないので教えてください。 エクセルシートのB3:E6の16個の各セルに、任意に数値を入力していきます。 その入力した数値の組み合わせを全て抽出したいと思っております。 (抽出先はどこでもいいです。) 希望としてはB3:E3の4個の数値は必ず入った組み合わせを作りたいです。 関数でもVBAでも何か方法が有れば教えてください。 宜しくお願い致します。

  • エクセルの使用方法

    エクセルの使用方法で質問があります。 1.あるA列10行に数式が入力されています。その数式はA列9行+B列10行の値です。B列10行に数値を入力する時、C列10行には日付を入力しています。このままだと、B列、C列に何も入力されていない行でも、A列だけは、延々と数値が表示されてしいます。できれば、B or C列に入力していない時は、A列の表示を空白にすることはできないでしょうか? 2.上記のようにA列には、数値が入っており、何行目まで数値があるのかは、B列、C列次第です。この状態で、A列の一番下の行のセルの数値を、固定したセルに表示させる方法はないでしょうか? ただこのシートは複数個作成し、あるシートでは、10行目が一番下だったり、あるシートでは25行目が一番下だったりする条件になります。 またB列にはマイナスの数値も入るので必ずしも行が増える程、A列の値が大きいわけではありません。 3.C列の日付ですが、たとえば「2009/8/8」と入力したら、「2008.8.8」と半角で表示するようにしてるのですが、これを「2008.08.08」と半角で表示する方法はないでしょうか? 4.エクセルで時々、あるセルの左上端が緑色になり<!>と表示されています。この<!>を押すと、いろいろコメントがでてくるのですが、エラーを無視するを選ぶと、消えます。一体これは何なんでしょうか? 出ないようにする方法はないでしょうか? 以上の件、どれでもよいのでご回答くださいますようお願います。

専門家に質問してみよう