• ベストアンサー

エクセル 行列の条件からデータを検索する

いつもお世話になります。 Sheet1に、下記の表があります。 (空白),北海道,青森,岩手 売上金額,1000,500,200, 売上数量,10,5,3, という上記の表から、Sheet1のセルA1に岩手県の売上数量のみを表示させたいのですが、どのような関数もしくはマクロを使えば良いのでしょうか?

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

  • ベストアンサー
回答No.3

県別の売上金額と売上数量がSheet1のA1~D3の表で Sheet2のA1に入力規制、A2に取り出すとします。 A1の金額、数量の取出し(行検索)     =(MATCH(A1,Sheet1!A1:A3,0) B1の県取出し(列検索)    =MATCH(B1,Sheet1!A1:D1,0)      となります。 求める値は=INDEX(範囲、行、列)ですので   =INDEX(Sheet1!A1:D3,MATCH(A1,Sheet1!A1:A3,0), MATCH(B1,Sheet1!A1:D1,0)) となります。 これも的外れの回答でしたら、ごめんなさい。

7-samurai
質問者

お礼

> これも的外れの回答でしたら、 とんでもないです。ご迷惑をおかけしました。 いただきましたご回答で、簡単に問題解決できました。 ありがとうございました。

その他の回答 (3)

  • sakeman
  • ベストアンサー率43% (67/153)
回答No.4

元のデータの表がC1:F3にあるとします。(セルC2は「売上金額」、C3は「売上数量」、D1は「北海道」、D2は「青森」、D3は「岩手」) 1.セルA1にリストを設定する。  セルA1選択→[データ]→[入力規則]→[設定]→[入力値の種類]→[リスト]選択→[元の値]→C2:C3をドラッグ(「=$C$2:$C$3」と入力される)→[OK] 2.セルB1にリストを設定する。  1.と同様にする。[元の値]にD1:F1をドラッグ 3.セルA2に「=INDEX(D2:F3,MATCH(A1,C2:C3,0),MATCH(B1,D1:F1,0))」と入力する。 これで、セルA2にA1,B1に表示された条件で抽出されます。

7-samurai
質問者

お礼

ご迷惑をおかけします。ありがとうございました。 いただきましたお答えで、簡単に問題解決できました。

  • sakeman
  • ベストアンサー率43% (67/153)
回答No.2

求めるセルをA1、「岩手」をD1、「売上数量」をA3とします。 セルA1に「=INDEX(B2:D3,MATCH(A3,A2:A3,0),MATCH(D1,B1:D1,0))」と入力してください。 MATCH関数で「売上数量」の行番号、「岩手」の列番号を求め、INDEX関数で行番号、列番号の交差するセルの値を参照しています。 質問の趣旨を違えていたら、悪しからず。

7-samurai
質問者

補足

申し訳ないです・・・。 かなり未完成で誤解を招く質問でした。 本当にしたかったことは、 例えば、Sheet1のセルA1には入力規則で売上金額,売上数量 をリストで選択できるようにし、B1には北海道,青森,岩手を選択できるようにします。 そして、セルA2に、表のそれぞれの条件に合ったデータを抜き出したいというのが、本当の質問の主旨でございます。 中途半端な質問をしてしまい。大変申し訳ございません。

回答No.1

こんにちは   A     B      C    D 1      北海道   青森   岩手 2 売上金額  1000    500    200 3 売上数量  10    5    3 4 5 という表とします 1  ご質問の意味は、この表の中の岩手県の売上数量 3 をA1に表示させるだけですか?  その場合でしたら、A1セルに =D3で宜しいと思いま  す。  2 岩手県のデータの中から売上数量を行から検索し、  取り出すのであれば   行=MATCH("売上数量",A2:A5,0)となりますので   =INDEX(A2:D5,MATCH(売上数量",A2:A5,0),4)   で如何ですか?   私の勘違いで、求めてる回答と違ってたら無視してください。

7-samurai
質問者

補足

申し訳ないです・・・。 かなり未完成で誤解を招く質問でした。 本当にしたかったことは、 例えば、Sheet1のセルA1には入力規則で売上金額,売上数量 をリストで選択できるようにし、B1には北海道,青森,岩手を選択できるようにします。 そして、セルA2に、表のそれぞれの条件に合ったデータを抜き出したいというのが、本当の質問の主旨でございます。 中途半端な質問をしてしまい。大変申し訳ございません。

関連するQ&A

  • Excelで値を抽出する方法

    現在以下のようなExcelシートがあります。      1958年 1959年… 北海道1月 ○○(データ)○○ 北海道2月 ○○    ○○  ・  ・ 北海道12月○○   ○○ 青森県1月○○   ○○ 青森県2月○○   ○○   ・  ・ 青森県12月 岩手県1月  ・  ・ これを以下のような並びにしたいのですが、LOOKUP関数などを使ってできないでしょうか?よろしくお願いします。 1月  1958年 1959年… 北海道○○  ○○ 青森県○○  ○○ 岩手県○○  ○○  ・  ・ ※ちなみにパソコンのOSはWindows XPで、使っているのはExcel2007です。また一番最初に書いた表は、「北海道」で1つのセル、「1月」で1つのセルにしています。

  • エクセル 列と行のタイトルを条件にしてデータを取り出したい

    いつもお世話になります。 エクセルに下記の表があります。      A店 B店 C店 売上金額 100 50 10 粗利金額 20 10 2 別シートに、A店の売上金額を抜き出したいと 思うのですが、関数で行えますでしょうか。 以上宜しくお願い致します。

  • EXCELの文字検索

      A 1 青森県 2 青森県 3 青森県 4 青森県 5 福井県 6 福井県 7 香川県 と、縦列に住所がある表において、 『青森県は何カ所ありますか?』ってのをセルに表記したいのですが、 使用する関数が検討つきません。ご教授願います。

  • エクセル 2つのシートの抽出

    シート1 コード|地域|住所 0001|青森A|青森県青森市○丁目○-○ 0002|青森D|青森県青森市×丁目×-× 0003|岩手B|岩手県岩手市○丁目○-○ 0004|岩手D|岩手県岩手市×丁目×-×         シート2   コード|(住所を抽出したい) 0003| 0001|  シート1は一覧表で、シート2は今回の対象だとします。 シート2のコードとシート1のコードが一致したら、 シート2のB列にシート1の住所を抽出したいのですが、どのような方法があるのでしょうか?教えて下さい。

  • エクセル2003で表引き

    こんにちは いつもお世話になっています。 エクセル2003で表引き Sheet1のB列に都道府県名があります。 青森 秋田 岩手 愛媛 鹿児島 Sheet2のK1セルにSheet1のB1データを引いてくるために =Sheet1!B1 という関数を入れました。 Sheet2のL1セルにSheet1のB2を引いてきたいのですがフィルハンドルでのコピーに失敗します。 どのような関数を使えば横にコピーできるようになるでしょうか。Sheet2のM1,N1に同様にコピーしていきたいのです。 縦のデータを横にしたいのではなく、関数で引っ張りたいのです。 よろしくお願いします。

  • Excel 関数を使う? 抽出データ

     以下について教えてください。 ============================== 【基になる表--「A」の表と呼ぶことにします。】  列方向のリストには左から「月」「日」「地域」「数」が並んでいる。  「月」には1月から12月までのデータが、 「日」には1日から30もしくは31日のデータが、 「地域」には北海道、青森、新潟、東京、大阪の5つの地域が、 「数」には売上数が並んでいるとする。 【基になる表から抽出して作られた表--これから便宜上「B」の表と呼ぶことにします。】  列には「地域」の中から北海道と青森を、 行には「月」から9月を、「日」から15日を、 列と行が交差するセルには「数」を置き、「9月15日の北海道と青森の売上数」の合計を抽出したい。  さらに、Bの表において、 「地域名」の北海道を削除して新潟にしたり、9月15日ではなく9月18日に置き換えても、 列と行が交差するセルに自動的に集計結果が表されるようにしたいのです。  ちなみに、Aの表もBの表も同じブックに作り、シートは別にします。 ===================================  DSumやIfSum関数だと私が作りたいBの表のような形式になりません。列方向にしかラベルを置けません。  ピボットテーブルを使った集計ならば、求めているデータ以外のデータも表示されてしまいます。  どうすれば求めていることができるでしょうか?どうか皆さんの知恵をお貸しください。

  • エクセルのfind関数で、複数の条件

    エクセルで、住所に"北海道"が含まれていると、"北海道"と表示し、 "青森県"や"岩手県"などが含まれていると、"東北"と表示したいです。 以下の関数を作ったのですが、北海道のときは想定どおり"北海道"と表示されますが、 それ以外のときは#VALUE!になってしまいます。 どこが悪いでしょうか? =if(find("北海道",A1)>0,"北海道",if(find("青森県",A1)>0,"東北",if(find("岩手県",A1)>0,"東北",if(find("宮城県",A1)>0,"東北",if(find("秋田県",A1)>0,"東北",if(find("山形県",A1)>0,"東北",if(find("福島県",A1)>0,"東北","該当なし")))))))

  • エクセルで行列要素の検索

    エクセルのシート上に10×10の枠を作り、それぞれのセルに任意のアルファベットを入れて、表を作ります。 その表の中に、縦にA、B、Cと並んだセルがあった場合、そのAとBとCのセルを赤く色を塗るようなマクロを作りたいのですが、どういう仕組みにしたらいいか考えつきません。 いい仕組みがあれば助言お願いします。

  • エクセルにて複数の条件でセルをカウントしたいのですが方法が分かりません

    こんにちは。 他の方の質問と回答を見てやってみたのですが、 上手くいかなかったので質問させて頂きます。 <表>    A列    B列 1 条件1   条件2 2 チームA  りんご傷あり(青森) 3 チームA  みかん(愛媛) 4 チームA  りんご(岩手) 5 チームA  マンゴー(沖縄) 6 チームA  りんご(青森) 7 チームB  りんご(岩手) 8 チームB  みかん(愛媛) 9 チームB  マンゴー(沖縄) 上記の表から、 (1)りんごのセル個数     (この場合「4」) (2)Aチームのりんごセル個数 (この場合「3」) を求めたいと思っています。 (1)りんごのセル個数は =COUNTIF($B$2:$B$9,"りんご*") という計算式で「4」という答えが出ました。 (2)Aチームのりんごセル個数「3」を出そうとして =SUMPRODUCT((A2:A9="チームA")*(B2:B9="りんご*")) と入力したのですが、「*」が入っているためか、 3という数値が出てきません。 どなたか、関数を教えていただけませんか? 実際の表では、 (1)150行まで入力されています。 (2)条件1は「チームA」か「チームB」のみです。 (3)入力されている文字列は、「りんご」「みかん」という「左から3文字」という法則性はありません。 マクロは技術的に使えませんので、関数で対応したいと思っています。 また、別シートに集計表を一覧で作りたいので、フィルタ機能ではなく、関数で対応したいと思います。 以上、長々と申し訳ございません。 お分かりの方、是非回答をお願い致します。

  • Excelで変動する雛形は作れますか?

      A    B    C 1 数量  単価  金額 2   50    300   15000 3 (空白)  (空白) (空白) 4   5    1000   5000 5 「小計」      20000 ・ ・ ・ ・ 20 「合計」       ******* 判りづらいかもしれませんが、このようなデータがあったとします。 この中で「小計」「合計」の位置がこの表で言えばB5セル、A20セルで固定できれば別段問題はないのですが、「小計」が場合によってはB3セルに来たり、B15セルに来たり、「合計」がA30になったり、といったような雛形を作ることは出来ないでしょうか? もし、出来るとしたらマクロが必要なのでしょうか? ちなみにマクロの知識は全くありません。 よろしくお願いいたします。  

専門家に質問してみよう