- 締切済み
MATCH関数 INDEX関数について教えてくださ
シート1には1日ごとの売上が入ってる年間の集計表が縦に数年分あります 2011年 1月 2月 … りんご みかん りんご みかん 1日 100 110 1日 200 210 2日 100 110 2日 200 210 3日 100 110 3日 200 210 月計 3000 3300 6000 6300 2012年 1月 2月 … りんご みかん りんご みかん 1日 300 310 1日 400 410 2日 300 310 2日 400 410 3日 300 310 3日 400 410 月計 9000 9300 12000 12300 シート2には年単位での集計が縦にあります。 2011年 りんご みかん 1月 3000 3300 2月 6000 6300 3月 2012年 りんご みかん 1月 9000 9300 2月 12000 12300 3月 シート1の月の合計をシート2の月単位に集計に反映させたくINDEX Match関数を試みたのですが上手く行きません… Excel初心者です。どなたか力添えになっていただけると助かります。 説明文がわかりにくかもしれませんが、どうぞよろしくお願いいたします。
- Rega1606
- お礼率50% (2/4)
- オフィス系ソフト
- 回答数4
- ありがとう数2
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- KURUMITO
- ベストアンサー率42% (1835/4283)
非常に複雑な関数式となってしまいますので作業行を作って対応します。 シート1ではA1セルに2011年などの文字が、A2セルに1月の文字が、A4セルから下方には1日から31日までの文字がA34セルまでに入力されており、A36セルに月計の文字が入力されているとします。 B3セルにはりんご、C3セルにはみかん、などの文字列が横に入力され、その後に例えばG2セルに2月の文字列、H3セルから横にはりんごなどの文字列が入力されているとします。G4セルから下方には1日から日付が入力されているとします。 他の月についても上記と同様にします。 36行目に作業用の行を1行挿入します。月計はA37セルに移動します。 A36セルには次の式を入力して右横方向にドラッグコピーします。 =IF(COLUMN(A1)=1,OFFSET(A36,-35,0)&OFFSET(A36,-34,0),IF(OFFSET(A36,-33,0)<>"",LEFT(OFFSET(A36,0,-1),FIND("月",OFFSET(A36,0,-1)))&OFFSET(A36,-33,0),IF(OFFSET(A36,-34,0)<>"",OFFSET($A36,-35,0)&OFFSET(A36,-34,0),""))) 2012年のデータについても2011年と同じ行数を使ってデータが入力されているとします。例えばA41セルから下方に2012年のデータが入力されているとします。 月計の前に1行挿入して、その行のA列のセル(例えばA80)にはA36の式をコピーして貼り付けます。そのまま例えばA80セルが選択されている状態で「ホーム」タブの「検索と選択」から「置換」をクリックします。 検索する文字列にA36と入力して置換後の文字列にはA80と入力して「置換」をクリックします。 この操作で式が変わりますので、その式を右横方向にドラッグコピーします。 上のような作業行の挿入と式のコピー、式の変換の操作などを他の年度についても行います。 お望みの表ですがシート2に作成するとして例えばA1セルには2011年、B2セルにはみかんなど横方向の列に果物名を入力します。 A3セルから下方には1月からA14セルの12月までを入力します。 B3セルには次の式を入力して右横方向にドラッグコピーしたのちに下方にもドラッグコピーします。 =IF(OFFSET(B3,-ROW(A1),0)="","",IFERROR(INDEX(Sheet1!$A:$XX,MATCH(OFFSET(B3,-ROW(A2),-COLUMN(A1))&"1月",Sheet1!$A:$A,0)+1,MATCH(OFFSET(B3,-ROW(A2),-COLUMN(A1))&OFFSET(B3,0,-COLUMN(A1))&OFFSET(B3,-ROW(A1),0),INDEX(Sheet1!$A:$XX,MATCH(OFFSET(B3,-ROW(A2),-COLUMN(A1))&"1月",Sheet1!$A:$A,0),1):INDEX(Sheet1!$A:$XX,MATCH(OFFSET(B3,-ROW(A2),-COLUMN(A1))&"1月",Sheet1!$A:$A,0),250),0)),"")) なお、エクセル2007より古いバージョンのエクセルでは次の式を入力します。 =IF(OFFSET(B3,-ROW(A1),0)="","",IF(ISERROR(INDEX(Sheet1!$A:$XX,MATCH(OFFSET(B3,-ROW(A2),-COLUMN(A1))&"1月",Sheet1!$A:$A,0)+1,MATCH(OFFSET(B3,-ROW(A2),-COLUMN(A1))&OFFSET(B3,0,-COLUMN(A1))&OFFSET(B3,-ROW(A1),0),INDEX(Sheet1!$A:$XX,MATCH(OFFSET(B3,-ROW(A2),-COLUMN(A1))&"1月",Sheet1!$A:$A,0),1):INDEX(Sheet1!$A:$XX,MATCH(OFFSET(B3,-ROW(A2),-COLUMN(A1))&"1月",Sheet1!$A:$A,0),250),0))),"",INDEX(Sheet1!$A:$XX,MATCH(OFFSET(B3,-ROW(A2),-COLUMN(A1))&"1月",Sheet1!$A:$A,0)+1,MATCH(OFFSET(B3,-ROW(A2),-COLUMN(A1))&OFFSET(B3,0,-COLUMN(A1))&OFFSET(B3,-ROW(A1),0),INDEX(Sheet1!$A:$XX,MATCH(OFFSET(B3,-ROW(A2),-COLUMN(A1))&"1月",Sheet1!$A:$A,0),1):INDEX(Sheet1!$A:$XX,MATCH(OFFSET(B3,-ROW(A2),-COLUMN(A1))&"1月",Sheet1!$A:$A,0),250),0)))) 2012年についても表を作るのでしたら例えばA16セルに2012年と入力して2011年の場合と同様に果物名や1月から12月までを配置します。その後にB3セルをコピーして例えばB18セルに貼り付け、その式の中のB3を置換操作によってB18に変え、右横方向にドラッグコピーしたのちに下方にもドラッグコピーします。
- K Kazz(@JazzCorp)
- ベストアンサー率31% (549/1751)
項目の見出し等、シートの構成の条件: Sheet1: 1年度はブランク含めて35行(最初の合計値は行34の位置) 年(A列)と月(B列~)は同じ行1(以下年度でサイクリック)にする 品名は次の行に Sheet2: 1年度はブランク含めて15行(合計値はシート内でSUM) 年(行1)と月は同じA列にする 品名は行1(年と同じ)に Sheet2の数式: B2: =INDEX(OFFSET(Sheet1!$B$1:$AJ$1,INT((ROW()-1)/15)*35+33,0),MATCH($A2,Sheet1!$B$1:$AJ$1,0)) C2: =INDEX(OFFSET(Sheet1!$B$1:$AJ$1,INT((ROW()-1)/15)*35+33,0),MATCH($A2,Sheet1!$B$1:$AJ$1,0)+1) B2,C2まとめて下にコピー 次の年分についてもコピーできる
お礼
JazzCorp様 ありがとうございます。 教えて頂いた関数を入れてやってみます。
- shintaro-2
- ベストアンサー率36% (2266/6244)
参考にしてください
- prius770c
- ベストアンサー率35% (91/258)
どのような運用なのかわかりませんが、単純にシート2の表はシート1の該当するセルを参照させるだけでよいような気がしますが・・・。 【参考となるページ】 http://www.excel-jiten.net/formula/ref_other_sheets.html これで、別シートにある値を参照させる事は出来ます。 参照セルが移動してしまうなどの条件で保守上の問題がない限り無理にmatchやindex関数を 用いなくてもよいのではないでしょうか?
補足
prius770cさん 早速の回答ありがとうございます。説明文が不足していたと思いますので付け加えさせてもらいます。シート1の商品名ですが30品目程あります。 参照ですがシート1の商品の数があり一年分となるとちょと大変かなと… シート2の1月分にシート1の1月 月計を参照させた後にコピーを下にすると参照先の一つ下のセルを参照してしまいます。
関連するQ&A
- エクセルの関数について
エクセルの関数について 【Sheet1】 B列・・・J列 売上日 商品名 9/12 りんご 9/12 みかん 9/12 りんご 9/14 りんご という売上表があったとして、Sheet2にJ列の項目ごとに売上日を表示できる数式を教えていただきたいです。こんな↓イメージです。 【Sheet2】 A列・・B列・・・C列・・・・ 商品名 売上日1 売上日2・・・売上日31 りんご 9/12 9/14 【Sheet1】の売上表は、売上が立つごとに入力していく表なので、 一日に同じ商品名(J列)が何度もでてきますが、同一売上日は、1回だけの表示にしたいです。 売上表は月でしめるので、毎日売れたとして、売上日は最大31日です。 【Sheet1】の売上表は、パソコンの苦手なパートの方が作成しているので、いじりたくありません。 当方あまりパソコンが得意ではないため、説明が分かりにくくて申し訳ないのですが、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- ExcelでIndexとMatch関数が使いこなせない
すみません、カテゴリを間違えてまして、再度投稿いたします。 有給管理表をExcelで作成しています。 シート1に社員のデータ表を入力してあり、 シート2には有給が発生する社員へ有給の残日数や 付与日に関するお知らせの案内状をB5サイズで作っています。 シート1のデータを拾って、シート2の案内状へ反映させる際、 付与日や残日数などはVlookupで参照できるのですが、 社員番号は退職した社員がいるため番号が飛んでいて うまくできません。 IndexやMatch関数を使えばなんとかなりそうだと思い やってみましたが、VALUE!が表示されてしまいます。 どなたかうまくいく関数を教えて頂けますでしょうか? シート1のデータ例 A列 B列 C列 D列 E列 社員番号 氏名 入社日 付与日 付与日数 100001 くま 2007/4/1 2007/10/1 10 100003 たぬき 2007/5/1 2007/11/1 10 100005 うさぎ 2007/5/10 2007/5/10 10 100010 きつね 2007/6/1 2007/12/1 10 シート2(例)ページ1 B列 C列 B1 社員番号 100001←ここに式を入れたい B2 社員氏名 くま さん(vlookupでC1を拾ってくる) B4 あなたの有給付与日は 2007/10/1 です。付与日数は 10 日です・・・・・・。 シート2 ページ2 B30 社員番号 100003 (←ページ1の次の該当者を拾いたい) B31 社員氏名 たぬき さん B33 あなたの有給付与日は 2007/11/1 です。 付与日数は 10 日です・・・・・・。 このような感じです。社員番号が飛んでいても下の行を拾っていくような関数はありますでしょうか?(Index、Match関数以外でも結構です)
- ベストアンサー
- オフィス系ソフト
- Excelindex関数
よろししくお願いします。sしheet1に 店名 月 品名 単価 A-1 1月 柿 100 A-1 1月 りんご 200 A-1 1月 みかん 300 A-1 2月 りんご 400 A-1 3月 バナナ 500 A-2 1月 みかん 600 A-2 2月 りんご 700 A-2 3月 バナナ 800 A-3 1月 りんご 900 A-3 2月 りんご 1000 A-3 3月 りんご 1100 というsheetがあり、sheet2には りんご 1月 2月 3 A-1 A-2 A-3 というsheetがあります。 そこで、単を引っ張ってきたいのですが、色々と勉強して index関数とmatch関数を使いたいのです が、サイト見る限り式が書いてありますが、関数を入力するボックスの入力が少しわかりにくいので、お手数ですが教えて頂く時、これから私が試したこと書きますので訂正お願いします。 (1)sheet2のB2にIFA2=¨¨、¨¨ (2)IF関数の偽の場合の所にIFError関数 の値にinx関数を入力して、調べたい場所のD行を絶対参照で (3)indexの行番号にmatch関数を入力して (4)検査値をsheet2の$A2&B$1&$A1$と入力して (5)検査範囲はsheet1の$A:$A&$B:$B&$C:$Cと入力して (6)照合の所は0と入力して (7)IFErrorのエラーの場合の値も0にしてやってオートフィルしたのですが全て0になります。 index関数とIF関数とIFError関数を開くと計算結果200と書いてあるのに、表示されません。今困ってるので詳しい方お願いします
- ベストアンサー
- Excel(エクセル)
- HLOOKUP関数で連続したセルの検索について
エクセル2000を使ってます。 HLOOKUPについて教えて下さい。 例えば、SHEET.1に リンゴ みかん 1月1日 1 1 1月1日 2 3 1月2日 3 1 1月3日 4 2 ・ ・ ・ 12月31日 1 2 とした場合で、 SHEET.2のB1のセルに「みかん」と入力した場合、SHEET.1のみかんの列を全部複写するようにしたいのです。 とりあえずSHEET.2のB2のセルに =HLOOKUP(B1,'Sheet1'$2:$5000,2,0)と入力し、 B3のセルに =HLOOKUP(B1,'Sheet1'$2:$5000,3,0)と返す行を一つずつ増やしてたのですが、行があまりにも多くて時間が掛かるので簡単に出来る方法があれば教えて下さい。 また、他にもっと簡単な関数とかがあれば教えて下さい。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 条件を満たす場合のみ計算、満たさない場合はそのまま
Excel2010です。 Sheet2にデータを貼り付けSheet1で集計を行うファイルを作成しています。 Sheet1の集計表は 項目|6/1|6/2|6/3|6/4|6/5|・・・ 林檎|001|000|000|000|003|・・・ 蜜柑|000|001|000|001|000|・・・ 巨峰|000|001|000|000|000|・・・ Sheet2のデータは 2011/06/01|林檎| 2011/06/02|蜜柑| 2011/06/02|巨峰| 2011/06/04|蜜柑| 2011/06/05|林檎| 2011/06/05|林檎| 2011/06/05|林檎| 上記のような状態になっています。 集計自体は関数を入れれば簡単にできるのですが、 今回やりたいのは、 Sheet2にある日付だけ再計算し、 Sheet2に無い日付に関しては値をそのままにしておく。 という関数またはVBAです。 理由はいくつかあるのですが、 ■全データを貼り付けると重いのでできるだけ1日(当日)分にしたい ■当日分にしてしまうと集計し忘れた日の処理が大変 の2点が主な理由です。 これができれば集計が必要な日のデータだけ吐き出してSheet2に貼り付ければ 必要な集計が行える形になります。 何か良い方法はありますでしょうか。よろしくお願いいたします。
- 締切済み
- その他MS Office製品
- Excelで困ってます。
会社で売上表を作って集計をしていますが、どうもうまくいきません。 どなたかお教えいただけないでしょうか? 売上表はこんな感じです。 A列に売上げ商品の一覧があります。 (例えば、りんご・みかん・メロン・りんご・桃・・・みたいな感じで100個ぐらい) もちろん同じ商品の重複もございます。 別シートに特定の商品リストがあります。 (例えば、りんご・みかんみたいな) 集計としましては、その日の売上商品の中で、別シートのリスト(上記の場合はりんごとみかん)と同じ商品だけを抽出し、その商品の隣の列(たとえばこの場合はB列)に「○」と表示させたいのです。 特に合計数を集計したいわけではありません。ただ○をつけたいだけです。 B1に試した関数は =IF(A1=シート2!$A$1:$A$2,"○","") です。 (この場合、シート2のA1からA2に特定商品のリストがあるとします) この関数だとエラーが出てしまいます。 マクロなどを使わずに、関数で解決できないでしょうか? よろしくお願いいたします。
- ベストアンサー
- 財務・会計・経理
- エクセルの関数を教えてください。
エクセルの関数について教えてください。 条件を満たした数を合計させる関数を教えてください。 たとえば果物屋さんで下記のような売上個数の表があったとします。 A B C D 01行 4月01日 青森産 りんご 1個 02行 4月01日 秋田産 りんご 5個 03行 4月01日 新潟産 りんご 4個 04行 4月01日 青森産 みかん 3個 05行 4月01日 秋田産 レモン 4個 06行 4月01日 青森産 レモン 2個 07行 4月02日 青森産 レモン 1個 08行 4月02日 青森産 みかん 8個 09行 4月02日 秋田産 みかん 7個 10行 4月02日 秋田産 りんご 3個 ・ ・ ・ ・ 31行 4月31日 秋田産 りんご 2個 といった一ヶ月の売り上げ個数リストがあったとして 教えてほしい関数は、上記の中から ”青森産” の ”りんご” が 1日~31日 の間に 売れた数の合計を求める関数が知りたいのですがそんな関数はありますか? =SUMIF(C1:C31,"りんご",D1:D31)として『りんご』のみの合計の出し方はわかるのですが 『りんご』に『青森産』などといった複数の条件をつけた際の合計の方法がわかりません。 また、フィルター機能で青森産、りんごと絞り込んだ後での合計ではなく あくまで、関数で求める方法を教えていただけませんでしょうか?
- ベストアンサー
- オフィス系ソフト
- エクセル関数についての質問です
エクセル初心者です。 会社に送られてくる注文書を社内用に表に書き直したいのですが、どのよおううにすればいいのでしょうか。 たとえば、注文書に 1月1日 りんご 3個 1月2日 みかん 2個 1月3日 バナナ 5本 と書いてあるのを 1月1日 1月2日 1月3日 りんご 3 みかん 2 バナナ 5 というような表にしたいのですが、 できますでしょうか。
- 締切済み
- Excel(エクセル)
- エクセルの関数について
エクセルの関数について困っております。 関数については、詳しくありません。お力をおかし下さい。 添付にある図の、sheet1 のリンゴ ミカン ブドウ を sheet2 の別のセルに、リンゴ.ミカン.ブドウと入力した際、その下に記入してある11111111111111 の数字を、同じように反映する為には、sheet2 のリンゴ等の文字の下には、どの様な関数を入れればよいですか? 関数でそこまで出来るのでしょうか? よろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- エクセルの集計について質問です。
いつもお世話になっております。 集計を使用しないで関数やマクロを使用して計算することは可能でしょうか? こういったリストを 名称 1日 2日 3日… りんご 1 0 3 りんご 0 0 1 みかん 1 1 4 なし 0 0 2 みかん 1 0 0 こんな感じに集計したいのです。 名称 1日 2日 3日… りんご 1 0 4 みかん 2 1 4 なし 0 0 2 順番とかは特に拘っておりません。 宜しくお願い致します。
- ベストアンサー
- Windows系OS
お礼
KURUMITO様 非常にお手間な回答ありがとうございますm(_ _)m 数式を入れてやってみます。
補足
KURUMITO様 Excelは2003を使用しています。 新たにブックを作って教えて頂いた関数を入れてみました。 B3には商品名[りんご]C3には[みかん]を入れ B4からB34までに1の数字を入れてC4からC34には2を入れてA36には上記のシート1の関数を入れて右横にコピーしました。 A36には2011年1月と参照されB36 C36には#WALUE!のエラーが出てしまします 何度も関数は確認したので入れ間違いはないと思うのですが何か間違って入力しているのでしょうか シート2の関数をコピーして貼り付けしたのですがうまくいきません。 合わせてご教授お願いいたします