[[20151118133714]] 『複数の表から一つの表を検索して表示する方法』(ノノ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『複数の表から一つの表を検索して表示する方法』(ノノ)

初めての質問です。

複数の表から検索をかけて一つの表を表示する方法が知りたいです。

例)実際は罫線ですがここではカンマにしてます。

book2にこのような表を作成してます。
a会社
りんご,みかん,もも,

 100円,  50円,50円,

b会社
りんご,みかん,もも,

 120円,  60円,40円,

c会社
りんご,みかん,もも,

 110円,  40円,80円,

このようなbook1でa会社と検索をかけたときにこの表を表示したいです。

また可能であればドロップダウンリストで選択して表示できるようにしたいです。

うまく説明できてないかもしれませんが回答お願いします。

< 使用 Excel:Excel2013、使用 OS:Windows7 >


 ちょっと分からない説明個所があります。

 >book2にこのような表を作成してます

 1.シート名は何ですか?

 2.a会社 と b会社は、同じシートにあるのですか、それとも別のシートですか?

 3.会社名はシート上にあるデータなのですか?
   データだとすると、何処のセルに入っているんですか?

 4.一つの会社は、果物と値段がそれぞれ一行だけある表なのですか?
   それで、そのデータは何行目に入力されているのですか?

(半平太) 2015/11/18(水) 18:53


<補足>
1.シート名は初期のSheet1とSheet2です。
2.a会社b会社c会社共に同じSheet2上にあります。
3.セルはこのようになってます。
  A , B , C ,
1 a会社 , 26年 , 27年 ,  
2 りんご,100円 ,○○○,
3 みかん, 50円 ,○○○,
4 もも , 50円 ,○○○,
5
6 b会社
7 りんご,120円 ,○○○,
8 みかん, 60円 ,○○○,
9 もも , 40円 ,○○○,
26年27年28年と続いていく予定で、
a,b会社と同じようにf会社まであります。
このような説明でよろしいでしょうか?

説明不足ですみません
(ノノ) 2015/11/19(木) 09:12


 >このようなbook1でa会社と検索をかけたときにこの表を表示したいです。 
    :           :
 ><補足> 
 >1.シート名は初期のSheet1とSheet2です。 
 >2.a会社b会社c会社共に同じSheet2上にあります。

 Boolに表示ではなく、Sheet1に表示なのでしょうかね?

 以下、同一ブックのSheet1に表示でいい場合

 >ドロップダウンリストで選択して表示できるようにしたいです。 
 1.6社しかないので、データの入力規則の設定で
   入力の種類   →「リスト」
   元の値ボックス →「a会社,b会社,c会社,d会社,e会社,f会社」

 2.「年」とか「円」の単位のようなものを付けると、
  データが数値じゃなくなって、あとあと面倒になるので、単位のようなものは
   セル書式(表示形式)を以下に設定して、外見上そう見えるように塩梅する。

  (1)年は、ユーザー設定で → 0"年"
  (2)円は、ユーザー設定で →  #,###"円";-#,###"円";;

 3.入力する数式
  (1) B1セル =Sheet2!B1
    右方向にコピー

  (2) A2セル =INDEX(Sheet2!A:A,MATCH($A$1,Sheet2!$A:$A,0)+ROW(A1))&""
  (3) B2セル =INDEX(Sheet2!B:B,MATCH($A$1,Sheet2!$A:$A,0)+ROW(B1))
       右方向にコピー
    最後に、2行目の数式全体を下方向にコピー

 <Sheet1 結果図>
  行  ___A___  ___B___  ___C___  __D__  __E__
   1  b会社    26年     27年     28年   29年 
   2  りんご   1,101円  1,102円              
   3  みかん   2,202円  2,203円              
   4  もも     4,404円  4,405円              
   5                                         

 <Sheet2 サンプルデータ>
  行  ___A___  ___B___  ___C___  __D__  __E__
   1  a会社    26年     27年     28年   29年 
   2  りんご   101円    102円                
   3  みかん   202円    203円                
   4  もも     404円    405円                
   5                                         
   6  b会社                                  
   7  りんご   1,101円  1,102円              
   8  みかん   2,202円  2,203円              
   9  もも     4,404円  4,405円              
  10                                         
  11  c会社                                  
     :    :     :

(半平太) 2015/11/19(木) 11:42


(半平太)さん返事ありがとうございます。
早速入力してみたのですが、
A2セル =INDEX(Sheet2!A:A,MATCH($A$1,Sheet2!$A:$A,0)+ROW(A1))&""
B2セル =INDEX(Sheet2!B:B,MATCH($A$1,Sheet2!$A:$A,0)+ROW(B1))
↑の式を入力すると#N/Aとなってしまいます。

(ノノ) 2015/11/19(木) 12:41


連投すみません。
エラー表示はなくなったのですが
Sheet1のA2に式を入力しても何にも表示されません
どういった修正をすればいいですか?
(ノノ) 2015/11/19(木) 13:05

 こちらの環境では、上記レスの結果図になっております。
 こちらの環境と何処が違うのか、そちらでチェックしていただけませんか?

 こちらの環境は、以下の手順とプログラムでそちらで再構築できます。

 <手順>
 1.新しいブックを挿入して、シートを最低2枚挿入してください。
 2.Sheet1の「シートモジュール(※)」に、後記マクロコードを貼り付け、
   F5キーを押してください(Mainが実行されます)

    するとこちらの環境がそちらで再現されます。
   実行は1回だけですので、終わったらマクロコードは削除して下さい

 ※「シートモジュール」の表示方法が分からない場合
   Sheet1「シート見出し」を右クリックして、「コードの表示」を選ぶと
   画面中央に白いエリアが表れますので、そこに下のマクロコードをコピぺしてください

 ’<プログラム> 貼り付けるマクロコード
Sub Main()
     With Sheets("Sheet2")
      Rem 生データのセルをまとめて処理
      .Range("A1").Value = "a会社"
      .Range("B1").Value = 26
      .Range("C1").Value = 27
      .Range("D1").Value = 28
      .Range("A2,A7").Value = "りんご"
      .Range("B2").Value = 101
      .Range("C2").Value = 102
      .Range("A3,A8").Value = "みかん"
      .Range("B3").Value = 202
      .Range("C3").Value = 203
      .Range("A4,A9").Value = "もも"
      .Range("B4").Value = 404
      .Range("C4").Value = 405
      .Range("A6").Value = "b会社"
      .Range("B7").Value = 1101
      .Range("C7").Value = 1102
      .Range("B8").Value = 2202
      .Range("C8").Value = 2203
      .Range("B9").Value = 4404
      .Range("C9").Value = 4405
      .Range("A11").Value = "c会社"

      Rem 標準外書式セルをまとめて処理
      .Range("B1:D1").NumberFormatLocal = "0""年"""
      .Range("B2:D9").NumberFormatLocal = "#,###""円"";-#,###""円"";;"
     End With

      Rem 生データのセルをまとめて処理
      Range("A1").Value = "b会社"

      Rem 数式セルをまとめて処理
      Range("B1:D1").FormulaR1C1Local = "=Sheet2!RC"
      Range("A2:A5").FormulaR1C1Local = "=INDEX(Sheet2!C,MATCH(R1C1,Sheet2!C1,0)+ROW(R[-1]C))&"""""
      Range("B2:D5").FormulaR1C1Local = "=INDEX(Sheet2!C,MATCH(R1C1,Sheet2!C1,0)+ROW(R[-1]C))"

      Rem 標準外書式セルをまとめて処理
      Range("B1:D1").NumberFormatLocal = "0""年"""
      Range("B2:D5").NumberFormatLocal = "#,###""円"";-#,###""円"";;"

End Sub

(半平太) 2015/11/19(木) 16:53


できました!ありがとうございます!

ちなみに会社名をドロップダウンでなく検索欄を作って検索することは可能ですか?
(ノノ) 2015/11/20(金) 09:12


 >ちなみに会社名をドロップダウンでなく検索欄を作って検索することは可能ですか?

 ちょっと、趣旨が分からないのですが、

 6社程度なら、ドロップダウンが簡単だと思うのですが、
 それを止めて、検索欄を作るとは、どこに作るのですか?(何シートのどこのセル?)

 また、その検索欄に会社名を入れる時、こんどは
 ドロップダウンじゃなく、手入力にすると云うことなんですか?

 それとも、単に会社名は別のセルに入れても、同じように表を出したいと云う趣旨なんですか?
 その場合、サンプルにあるA1セルはどういうことになるんですか?

(半平太) 2015/11/20(金) 10:33


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.