• 締切済み

自動で3つの表から一つの表にする方法

kagakusukiの回答

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.6

 幾つか不明な点かあります。  A、B、Cの各表中の数値は、同じ国名のものに関しては合計値を表示すれば良いのか、それとも個別に表示する様にするのか?  1つの表中に(例えば表Aの中に)同じ国名が複数回現れている事があり得るのか否か?  もし、1つの表中に同じ国名が複数回現れている事もあるとした場合において、国名が同じであっても数値が異なる場合があり得るのか否か?  もし、1つの表中に国名が同じであっても数値が異なるものがあり得るとした場合において、その複数個の数値の合計値を表示するのか、或いは、その国名の数値の全てを表示するために複数行を使って個別に表示するのか、それとも、何か他の方法で表示するのか?  それらの事が不明ですので、取り敢えずの話として、1つの表中には同じ国名が複数回現れる事は無く、A、B、Cの各表中の数値は個別に表示するものとして話を進める事に致します。(もし、この条件が誤っている場合には、補足欄等を使用して、実際にはどの様にされたいのかを御教え願います)  今仮に、Sheet1のA列の3行目以下に国名、B列に1種類目の数値データ、C列に2種類目の数値データが入力されている表Aがあり、Sheet1のE列の3行目以下に国名、F列に3種類目の数値データ、G列に4種類目の数値データが入力されている表Bがあり、Sheet1のI列の3行目以下に国名、J列に5種類目の数値データ、K列に6種類目の数値データが入力されている表Cがあり、Sheet2のA列~G列に、表A~表Cのデータを一纏めにした表を表示させるものとします。  又、Sheet3のB1~C5の範囲内のセルを作業用のセルに、同様にSheet3のE列とF列を作業列として使用するものとします。  まず、Sheet3のB2セルに次の関数を入力して下さい。(表Aにおいて国名が入力されている行範囲内に含まれる行数を求める関数です) =IF(ISNUMBER(MATCH("*?",Sheet1!$A:$A,-1)),MATCH("*?",Sheet1!$A:$A,-1)-ROW(Sheet1!$A$2),0)  次に、Sheet3のB3セルに次の関数を入力して下さい。(表Bにおいて国名が入力されている行範囲内に含まれる行数を求める関数です) =IF(ISNUMBER(MATCH("*?",Sheet1!$E:$E,-1)),MATCH("*?",Sheet1!$E:$E,-1)-ROW(Sheet1!$E$2),0)  次に、Sheet3のB4セルに次の関数を入力して下さい。(表Cにおいて国名が入力されている行範囲内に含まれる行数を求める関数です) =IF(ISNUMBER(MATCH("*?",Sheet1!$I:$I,-1)),MATCH("*?",Sheet1!$I:$I,-1)-ROW(Sheet1!$I$2),0)  次に、Sheet3のB5セルに次の関数を入力して下さい。(表A~表Cにおいて国名が入力されている行範囲内に含まれる行数の合計を求める関数です) =SUM($B$2:$B$4)  次に、Sheet3のC1セルに数値の1を入力して下さい。  次に、Sheet3のC2セルに次の関数を入力して下さい。 =IF($B2>0,SUM($B$1:$B2)+1,"")  次に、Sheet3のC2セルをコピーして、Sheet3のC3~C4の範囲に貼り付けて下さい。  次に、Sheet3のE1セルに次の関数を入力して下さい。 =IF(ROWS($1:1)>$B$5,"",INDEX(CHOOSE(MATCH(ROWS($1:1),$C$1:$C$3),Sheet1!$A:$A,Sheet1!$D:$D,Sheet1!$G:$G),ROWS($1:1)-LOOKUP(ROWS($1:1),$C$1:$C$3)+1+ROW(CHOOSE(MATCH(ROWS($1:1),$C$1:$C$3),Sheet1!$A$2,Sheet1!$D$2,Sheet1!$G$2)))&"")  次に、Sheet3のF1セルに次の関数を入力して下さい。(国名を並べる順番の基準となる数値を割り振る関数です) =IF($E1="","",IF(COUNTIF($E$1:$E1,$E1)=1,COUNTIF($E:$E,">"&$E1),""))  次に、Sheet3のE1~F1の範囲をコピーして、同じ列の2行目以下に(表A~表Cの行数の合計値を上回るのに十分な行数となる様に)貼り付けて下さい。  次に、Sheet2のA3セルに次の関数を入力して下さい。(Sheet3のF列の数値を利用して、国名を昇順で並べる関数です) =IF(ROWS($3:3)>COUNT(Sheet3!$F:$F),"",INDEX(Sheet3!$E:$E,MATCH(LARGE(Sheet3!$F:$F,ROWS($3:3)),Sheet3!$F:$F,0)))  次に、Sheet2のB3セルに次の関数を入力して下さい。(1種類目の数値を表示させるための関数です) =IF($A3="","",IF(ISNUMBER(1/(VLOOKUP($A3,Sheet1!$A:$C,2,FALSE)<>"")),VLOOKUP($A3,Sheet1!$A:$C,2,FALSE),""))  次に、Sheet2のC3セルに次の関数を入力して下さい。(2種類目の数値を表示させるための関数です) =IF($A3="","",IF(ISNUMBER(1/(VLOOKUP($A3,Sheet1!$A:$C,3,FALSE)<>"")),VLOOKUP($A3,Sheet1!$A:$C,3,FALSE),""))  次に、Sheet2のD3セルに次の関数を入力して下さい。(3種類目の数値を表示させるための関数です) =IF($A3="","",IF(ISNUMBER(1/(VLOOKUP($A3,Sheet1!$E:$G,2,FALSE)<>"")),VLOOKUP($A3,Sheet1!$E:$G,2,FALSE),""))  次に、Sheet2のE3セルに次の関数を入力して下さい。(4種類目の数値を表示させるための関数です) =IF($A3="","",IF(ISNUMBER(1/(VLOOKUP($A3,Sheet1!$E:$G,3,FALSE)<>"")),VLOOKUP($A3,Sheet1!$E:$G,3,FALSE),""))  次に、Sheet2のF3セルに次の関数を入力して下さい。(5種類目の数値を表示させるための関数です) =IF($A3="","",IF(ISNUMBER(1/(VLOOKUP($A3,Sheet1!$I:$K,2,FALSE)<>"")),VLOOKUP($A3,Sheet1!$I:$K,2,FALSE),""))  次に、Sheet2のG3セルに次の関数を入力して下さい。(6種類目の数値を表示させるための関数です) =IF($A3="","",IF(ISNUMBER(1/(VLOOKUP($A3,Sheet1!$I:$K,3,FALSE)<>"")),VLOOKUP($A3,Sheet1!$I:$K,3,FALSE),""))  次に、Sheet2のA3~G3の範囲をコピーして、同じ列の4行目以下に貼り付けて下さい。  以上です。

関連するQ&A

  • エクセル変わった表の作り方

    例えばABCと三つの文字があるとして、これらの全ての組み合わせは(A,B,C,AB、AC、BC、ABC)七種類ですよね。これをエクセルで一発で表にしてくれる方法ないですかね?A,B,C,D・・・・と入力したら全ての組み合わせが表示されるようにしたいのですが・・・無理ですか?いちいち自分で全部しらべて入力するしかないですかねー?教えてください。お願いいたします。

  • EXCELの表をコピーして別表を作りたい

     EXCELで集計表を作りました。データとなる表を3ファイルabc(それぞれの小計シート有り)作り、もう1ファイルdにそれらの小計を集めて総計を作っています。この4ファイルを1フォルダにまとめたものを「集計表A」とします。  次に同じ形式で名前だけ変えた「集計表B」が欲しいので、ctrl+ドラッグ&ドロップで「集計表A」のコピーを作って、名前の変更「集計表B」にしました。これで、別々の表として使えると思っていたところ、「B」は保存先フォルダが別でも同じ名前のファイルは開けないとエラーがでました。そこで、「B」abcdファイルの名前a-2,b-2,c-2,d-2のように変えてみました。ところが、新しいa-2,b-2,c-2の数値がd-2に反映しません。  これはもしや、〈'C\mydocument\フォルダ集計表A\ファイル小計a〉のレベルから変更しなければならないのでしょうか。 もっと簡単に同じ表を2部作ることはできないのでしょうか。緊急ですので、大変申し訳ありませんが、どなたかご教授ください。

  • マクロを使用した表において集計を自動表示する

    エクセルのマクロでABC集計表なるものを作成しています。ボタンを押す毎に下位に行が追加され表ができる形です。行を挿入する毎に右側の3列に設けたセルにA~C品の数量を記入し、その集計を各2行目のセル(色付きのセル)に表示できるようにしたいと考えています。例えばA品の集計をK6に”=SUM(k7:k7)”として、ボタンを押して下へセルを追加しますと、集計が正しくされず、計算式を確認すると”=SUM(k8:k8)”となっており、数列1のk7が固定されていません。 マクロ文を入れないとできないのでしょうか、ご教授下さい。よろしくお願いします。

  • エクセルでこんな表を自動的に作りたいです

    エクセルで下記のような停止値一覧表があります。 <停止値一覧> 記号  停止値 a    3 b    2 c    5 d    4 e    10 上記のデータを元にして、下記のような記号別の連番表を別シートに自動的に作りたいのです。。。 <連番表> No  記号 0   a 1   a 2   a 0   b 1   b 0   c 1   c 2   c 3   c 4   c 0   d 連番表の「No」は連続データで、 ・開始値=ゼロ、 ・停止値=<停止値一覧>の停止値からマイナス1した値、 ・増分=1 です。 関数で簡単に出来ますでしょうか?それともマクロか何かになるのでしょうか..? 分かりにくい説明で恐縮ですが、いい方法をお分かりの方、助けて頂けないでしょうか。 よろしくお願いします。 追記:エクセルは2002を使用しています

  • Excel 2007 マクロ 表の集計について

    Excel 2007 マクロ 表の集計について 2つのシート(Sheet1とSheet2)の情報を集計して Sheet3に反映するマクロを考えています。 (1)Sheet1のC列、D列、E列とSheet2のC列が空欄の場合は  Sheet3に反映しません。 (2)Sheet1のC列、D列、E列とSheet2のC列のいずれかに数値が  入っている場合にはSheet3に行を反映します。  ※Sheet3に反映する際に、Sheet1とSheet2のキー(A列)は  反映しません。  各Sheetの表は画像を添付します。  どのようなマクロを作成すればよろしいでしょうか。  マクロの超初心者です。  マクロのサンプルをご紹介頂けますでしょうか。

  • ピボットテーブルで集計された表から集計する方法

    いつもお世話になります。 今回はピボットテーブルについて質問です。 ピボットテーブルの集計結果 【データの個数 / 学生】 【教科 】 【回答テーブル】 回答 総計 ABC 1 1 ABCD 1 1 ABCE 1 1 AC 3 3 ACD 2 2 AD 1 1 BC 3 3 C 26 26 CD 15 15 CDE 3 3 D 39 39 DE 2 2 E 3 3 総計 100 100 教科 回答 A ←ここに集計したい! B C D E 100人の学生が好きな教科(A、B、C、D、E)を答えましたが、列にはABC、ABCDと羅列で入っています。 その集計をA教科で○○個、B教科で○○個と計算したい。 ※【】はピボットテーブルの項目 またはエクセルシートにはそれぞればらばらのデータベースがありますので、そちらからの集計でもかまいません。 要は回答テーブルに含まれるAの文字がある項目の集計をしたいということです。 お手数ですが、教えて頂きたくどうぞ宜しくお願い致します。

  • 表引き

    表引き関数  再質問です 仮に A    B  C   D   E  A1    2  1   1   A2    4  2   1 A3    5  3   2  A4    6  4   4 A5    1  5   6 A6    2  6   2 BとCに2列の表があります E1には =vlookup(D1,B1:C6,2,false)の関数の式を入れました B列はランダムな数値 C列は通し番号です いつもは B列に通し番号 C列はランダム数値なのでD列の数値に対してのE列の表引きは問題ないのですが 上のように B列がランダムな数値 C列が通し番号の場合 B列に同じ数値が複数個あるとき E列に返してくるのは その数値の最初のひとつだけ  上の仮の表 では D列の数値に対して E1は 以下     E列  5  5  1と6  2  4  1と6 ですが この1と6の6が表引き出来なんです この6も表引きしたいのです どうすればいいのでしょうか 他の関数と組み合わせるんでしょうか よろしくお願いします

  • 表を自動で作成する方法を教えてください。

    表を自動で作成する方法を教えてください。 エクセルでとあるモデルを作成しました。 それは二つの条件から複数の計算を経由して結果を出力するモデルです たとえば 数値Aと数値Bを入力すると、表に A B C(数値AとBに依存する複数の計算うを経由した結果) と出力されます。 これを表の縦軸にA横軸にBを様々なパターンの値にした表を作成して それぞれのAとBの値の組み合わせから計算された結果Cを、表に入れていきたいと考えています。 以下のようなものを想定しています。  B  B'  B'' A C C' C'' A’C'''C'''''  A'' このABの表から自動的に最初に構築した計算に反映して表を埋めていくような方法はありますでしょうか。 ご存知の方がいましたら教えていただきたいと思いまして質問させていただきました。 よろしくお願いいたします。

  • 表のデータからある範囲の集計をしたい

    1)Excel2007&windows7を使いマクロ作成中の初心者です。 2)シートに毎月データを追加入力し、年で締め切る表を作成しています。 3)表はF列からL列まで、6行目から580行(毎月変動)ぐらいの表です。 4)H列には、A部門、B部門、C部門のいずれかの文字列が入ります。 5)J列には、平成27年1月から12月までの年月が入ります。 6)K列、L列には数値が入力されます。 以上が、毎月作成する表の概要です。 そして、やりたいことは、この表に基づいて、例として、27年1月の表示される行の中の A部門のK列の合計、B部門のK列の合計、C部門のK列の合計を知りたいことと、 A部門のL列の合計、B部門のL列の合計、C部門のL列の合計を知りたいです。 この、合計の結果を、他のシートに表示したいです。 Excel関数でもExcel VBAでも、やりたいこと出来れば、どちらでもいいです。 =SUMIF(C17:C29,"A部門",F17:F29) 同一シート内で上の関数を、利用できますが、これに27年1月だけで集計したいです。 また、他のシートの中に表示したいです。どうしたらよろしいか教えてください。

  • Excelの集計表で1ヶ月分別表に抜き出したいです

    Excel2010を使用しています。   A    B   C   D   E   F   G 1         1月         2月 2     売上 請求 残高 売上 請求 残高 3 本社 1000  800 200  4 支店 800  650 150 5 営業 600  300 300  上記のような集計表に一年分の数値を月ごとに打ち込んでいます。 これを下記のような1か月分の別表に抜き出して印刷をかけたいのですが。   A    B   C   D   1 1月  売上 請求 残高 2 本社 1000  800  200 3 支店  800  650  150 4 営業  600  300  300 A1のところに月を入力すれば、B2:D4のところに集計表の数字が出るような。 VLOOKUPやHLOOKUP、INDEX等ネットで探して関数と格闘して何日かやってみましたが 上手くできませんでした・・・。 別表は同じシートでも別シートでも可能です。 関数を利用して作りたいので、よろしくお願いします。