- 締切済み
別シートの結果を月を替える度に自動反映
Sheet2にメーカー別の販売台数 Sheet3に地域別販売台数 Sheet4に各メーカーの前年度比などを各sheetで集計し、その結果を Sheet1に月ごとに反映させ、かつ、Sheet1で月をかえた際に、それに合わせて他のSheetから持ってくる値も全て自動で代わるようにするにはどうすればよいのでしょうか? 例えば、 Sheet1 で1月の場合、 1月 メーカー 販売台数 前年度比 Sony 100000台 89% Toshiba 800000台 200% Hitachi 200000台 300% 地域 アメリカ 30000台 120% 日本 20000台 170% とあった場合、一番上の1月を2月に換えた際に、他のシートで計算された数字が全て2月のものに入れ替わる方法です。 宜しくお願いします。
- みんなの回答 (7)
- 専門家の回答
みんなの回答
- KURUMITO
- ベストアンサー率42% (1835/4283)
回答No2,4です。 P3セルに入力する式はシート2で、B3セルに入力する式はシート1です。
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
#1,#5です >ただ、素人ですので、どこへ教えていただいた関数をペーストしてよいのかわかりません。 図を添付してもわからないって理解しようとする気がないでしょう。 また、そのように解釈されてもおかしくありません 私見ですが、Excelの「素人」って、仕事上Excelをまったく使わない人のことだと考えています。 >そのあたりを、詳しくコピペすればすむように、お願いできますでしょうか? とりあえず、学ぶ=真似ぶ から始まっていると思っているので、コピペで済むような回答しています。 その後は、数式を理解し自分で解決するだけの力をつけることです。 ただし、仕様もままならないまま質問なさっているので、回答者の勝手な解釈で回答しています。 今後問題が出ても、解決できるだけの理解を深めてください。 補足説明がこれでは、当方手に負えませんのでこれで失礼させていただきます。
お礼
ありがとうございました。 おっしゃるとおり、今日、初めてExcelを使いました。 色々、ネットで見て試してみると、 HLOOKUP(検索値,検索元範囲,行番号,オプション) というのがあり、これで色々やってみたところできました。 ありがとうございました。
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
- KURUMITO
- ベストアンサー率42% (1835/4283)
回答No2です。 シート1はNo2のとおりとして、シート2では例えばA2セルに2011と西暦年があります。 B3セルからM3セルまでには月の1,2,3・・が12まで入力されているとします。 それから下行にA列ではメーカーがB列からM列までには販売台数が入力されているとします。 また、2010年などのデータも下方の行に2011の場合と同様に西暦年、その下の行には1から12までの月が、更にその下の行ではA列にメーカーがBからM列には販売台数が入力されているとします。 その後にP列を作業列としてP3セルには次の式を入力して下方にオートフィルドラッグします。 =IF(COUNT(B3:M3)=0,"",IF(SUM(B3:M3)=78,A2,A3&RIGHT(P2,4))) その上でNo2で示したよう表ではB3セルには次の式を入力して下方にオートフィルドラッグします。 =IF(OR(A3="",A$1=""),"",INDEX(Sheet2!A:M,MATCH(A3&YEAR(A$1),Sheet2!P:P,0),MATCH(MONTH(A$1),Sheet2!$3:$3,0))) これらを参考にして他のケースも考えてください。
お礼
ありがとうございました。 色々、ネットで見て試してみると、 HLOOKUP(検索値,検索元範囲,行番号,オプション) というのがあり、これで色々やってみたところできました。 生まれてはじめてのExcelを使ったのですができて、本当に良かったです。 ありがとうございました。
補足
御回答、ありがとうございます。せっかく説明ただき恐縮なのですが、 その後にP列を作業列としてP3セルには次の式を入力して下方にオートフィルドラッグします。 =IF(COUNT(B3:M3)=0,"",IF(SUM(B3:M3)=78,A2,A3&RIGHT(P2,4))) その上でNo2で示したよう表ではB3セルには次の式を入力して下方にオートフィルドラッグします。 =IF(OR(A3="",A$1=""),"",INDEX(Sheet2!A:M,MATCH(A3&YEAR(A$1),Sheet2!P:P,0),MATCH(MONTH(A$1),Sheet2!$3:$3,0))) の意味がよくわかりません。
- keithin
- ベストアンサー率66% (5278/7941)
たとえば2010の表がSheet2のA2:M5にあったとすると =INDEX(Sheet2!$A$2:$M$5,MATCH(Sonyのセル,Sheet2!$A$2:$A$5,0),MATCH(1月のセル,Sheet2!$A$2:$M$2,0)) といった式を記入しておきます。 もちろん「sonyのセル」とか「1月のセル」と書いたのは,あなたがご質問に掲示したシート1のSonyだの1月だとと書き入れたセルの事なので,ちゃんと実際のシートに合わせた数式を記入してください。
- KURUMITO
- ベストアンサー率42% (1835/4283)
シート2などの表が示されていないので具体的な考え方について例を用いて説明しましょう。 シート2ではA1セルに「メーカー別の販売台数」などの文字があり、2行目では、A2セルに年月日、B2セルにはメーカー、C2セルには販売台数の項目名が有るとします。 D列は作業列としてD3セルには次の式を入力して下方にオートフィルドラッグします。 =IF(A3="","",B3&DATE(YEAR(A3),MONTH(A3),1)) これによってメーカーと販売の年月日が変わってもその年の該当月の初日とを結合したデータがD列に表示されます。 そこでシート1ですが例えば1月のメーカーごとに販売台数を表示させるのでしたらA1セルには2011年1月と入力します。これによって数式バー上には2011/1/1と表示されることでしょう。 A2セルにはメーカー、B2セルには販売台数、C2セルには前年度比などの項目名が有るとします。 A3セルから下方にはメーカーを入力します。 B3セルには次の式を入力して下方にオートフィルドラッグします。 =IF(OR(A3="",COUNTIF(Sheet2!D:D,A3&A$1)=0),"",SUMIF(Sheet2!D:D,A3&A$1,Sheet2!C:C)) この式ではA1セルで指定した年月における、シート2で同じメーカーで同じ月の販売台数が複数行にわたって入力されている場合でもその合計の販売台数が表示されるようになっています。 前年度比はシート3から同じような式で表示させることができるでしょう。 要は各シートにメイカーと該当年月を結合させた作業列を作って対応することが式を分かり易く、計算にも負担を掛けない方法としてベターと考えます。地域に関するデータの処理ではシート3にメーカーと地域さらに該当年月を結合させた作業列を作って対応すればよいでしょう。
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
Sheet2~Sheet4がどのように書かれているかわからないので答えようがない。 参考になるかわからないが、添付図参照。 B3セル =INDEX(E$1:E$12,$A$1)
補足
すみません。 補足します。 Sheet2 2011年 1月 2月 3月・・・・・・・・・ Sony 100000 339944 454535 Toshiba 800000 234242 2423424 Hitachi 200000 464646 3453453 2010年 1月 2月 3月・・・・・・・・・ Sony 124230 339944 954535 Toshiba 42000 232442 4423424 Hitachi 420000 564646 1453453 Sheet3 2011年 1月 2月 3月・・・・・・・・・ アメリカ 30000 34542 353425 日本 20000 3525245 5425454 2010年 1月 2月 3月・・・・・・・・・ アメリカ 352520 234542 5353425 日本 32525 7525245 9425454 というようなかんじです。 Sheet1で、2011年の1月と入力した際に、このSheet2など他のシートの1月の部分が、Sheet1のそれぞれの所定の欄に出てくるようにしたいのです。 同様に、2月と入力したのは、Sheet1にある数字が2月のものに出来たらと思っています。 宜しくお願いします。
お礼
何度もありがとうございました。 Excelには色々な方法があるようですね。 KURUMITOさんから教えていただいたものも、ためさせていただきます。 その後、ベストアンサーを決めさせていただきます。 ありがとうございました