プロが教える店舗&オフィスのセキュリティ対策術

同一フォーマットの複数のexcelファイルの何箇所かのセルを抽出して一覧表を作る仕事をさせられています。

具体的には、一つのフォルダ(フルパスを仮に D:\shitumon とします)の中に "質問事項*.xls" ("*"の箇所は任意の文字列で、何文字あるかもまちまちです)が大量にあります。
この "質問事項*.xls" は同一フォーマットになっていて、シート名は QA となっております。

この "質問事項*.xls" の何箇所かのセルの内容を抽出して "一覧表.xls" というファイルにまとめる作業をさせられています。

"質問事項*.xls" と "一覧表.xls" の対応箇所なのですが、

(質問事項*.xls)   (一覧表.xls)
   B5          A列
   I3           B列
   C8          D列
   B10          E列
   C34          F列
   B36          G列
   H34          H列

となっております。
("質問事項*.xls" の何箇所かのセルは結合されているものがいくつかあります。)

現在、"一覧表.xls" には300行ぐらい入力済みで、
さらにその下の行から入力することになっているのですが、
例えば "一覧表(仮).xls" というフォルダにまとめて "質問事項*.xls" の該当箇所を抽出して、
 "一覧表(仮).xls" の内容をコピーして "一覧表.xls" に貼り付けるという作業でも構いません。

プログラミングを全く知らないおじさんなので、
噛み砕いて教えてくださればありがたく思います。

A 回答 (3件)

表で示されている最初の行の意味は質問事項B5のQAシートのA列をコピーするという意味でしょうか?

この回答への補足

回答ありがとうございます。

>表で示されている最初の行の意味は質問事項B5のQAシートのA列をコピーするという意味でしょうか?

説明が下手で申し訳ありません。
大量の ”質問事項*.xls” (*は任意の文字列で、文字数もばらばらです)はすべて QA という名のシートが一つだけある状態です。

また、”一覧表.xls” は sheet1、sheet2、sheet3 が存在しますが、入力するシートは sheet1 です。

やりたいことは
 ”質問事項*.xls” の QA シートの B5 セルの内容を
 ”一覧表.xls” sheet1 シートの A列 の上部から順に入れていくと言う事です。

同様に

(質問事項*.xls の QA シート)    (一覧表.xls の sheet1 シート)
   I3          →           B列
   C8          →           D列
   B10          →           E列
   C34          →           F列
   B36          →           G列
   H34          →           H列

とコピーしたいのです。

補足日時:2009/09/10 10:33
    • good
    • 0

エクセルのブックがたくさんある中で決まったセル番地のデータをリストアップするとなりますとかなり面倒な操作になります。

式の入力では間違いのないように注意が必要でしょう。
初めにシート1を用意してそこにお示しのデータを入力し、それをもとにシート2に一覧表を作成することにします。それからのことは適宜行ってください。
シート1ではA1セルにブック名とし、A2セルから下方には 質問事項*.xlsの正式の形を.xlsなどを含めて多数行にわたって入力します。
B1セルにはセル番地と入力し、B2セルから下方にはB5、I3などと入力します。
C1セルには列番号と入力し、C2セルから下方にはA,B,Dなどと入力します。
D2セルには次の式を入力し下方にオートフィルドラッグします。
=IF(C2="","",CODE(C2)-64)
これは列番号を数値に置き換えたものです。
A2セルには次の式を入力して右横方向にオートフィルドラッグしたのちに下方向にもオートフィルドラッグします。
=IF(INDIRECT("Sheet1!$A"&ROW(A2))="","",IF(COUNTIF(Sheet1!$D:$D,COLUMN(A1))>0,INDIRECT("'["&Sheet1!$A2&"]Sheet1'!"&INDIRECT("Sheet1!B"&MATCH(COLUMN(A1),Sheet1!$D:$D,0))),""))
なお得られる表では空白のセルは0表示になります。
    • good
    • 0

ごめんなさい。

QAのシート名でしたね。次のようにしてください。
=IF(INDIRECT("Sheet1!$A"&ROW(A2))="","",IF(COUNTIF(Sheet1!$D:$D,COLUMN(A1))>0,INDIRECT("'["&Sheet1!$A2&"]QA'!"&INDIRECT("Sheet1!B"&MATCH(COLUMN(A1),Sheet1!$D:$D,0))),""))
    • good
    • 0

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