• ベストアンサー

エクセルの検索機能について

 エクセルの詳しい方に質問です。  まず下記のようなデータがあります。  A列  B列  安部  10  佐藤  20  佐藤  30  佐藤  25  田中  10  このデータをもとに下記のような表をつくりたく思っています。  A列  B列  C列  D列  安部  10  佐藤  20   30   25  田中  10 なお、A列はこちらで入力し、B列~D列に式を入力しておき自動計算するようにしたいのです。 わかる方のお力添えをよろしくお願いします。  

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

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

 今仮に、上の表がSheet1、下の表がSheet2にあるものとします。  まず、Sheet2のB1セルに次の数式を入力して下さい。 =IF(COLUMNS($B:B)>COUNTIF(Sheet1!$A:$A,$A1),"",INDEX(Sheet1!$B:$B,SUMPRODUCT(ROW(OFFSET($A$1,,,MATCH("゛",Sheet1!$A:$A,-1)))*(COUNTIF(OFFSET(Sheet1!$A$1,,,ROW(OFFSET($A$1,,,MATCH("゛",Sheet1!$A:$A,-1)))),$A1)=COLUMNS($B:B))*(OFFSET(Sheet1!$A$1,,,MATCH("゛",Sheet1!$A:$A,-1))=$A1))))  次に、Sheet2のB1セルをコピーして、Sheet2のB1セルの右方向と下方向に存在するセル範囲に貼り付けて下さい。  以上です。  尚、Sheet2の1行目が他の用途に使用中で、実際にデータを表示するのが2行目からの場合には、B2セルに入力する数式は、次の様になります。 =IF(COLUMNS($B:B)>COUNTIF(Sheet1!$A:$A,$A2),"",INDEX(Sheet1!$B:$B,SUMPRODUCT(ROW(OFFSET($A$1,,,MATCH("゛",Sheet1!$A:$A,-1)))*(COUNTIF(OFFSET(Sheet1!$A$1,,,ROW(OFFSET($A$1,,,MATCH("゛",Sheet1!$A:$A,-1)))),$A2)=COLUMNS($B:B))*(OFFSET(Sheet1!$A$1,,,MATCH("゛",Sheet1!$A:$A,-1))=$A2))))

yy10
質問者

お礼

うまくできました。ありがとうございます。ただ式の意味はまだ複雑すぎて理解できていません。これからじっくりと解析したいと思います。

その他の回答 (3)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

No.3です! 画像が上手くアップできなかったようなので、もう一度トライしてみます。 今回もダメだった場合、アップした画像の説明だけしておきます。 Sheet1のA2セルから氏名があり、B2セル以降にデータがあるとしています。 そして、Sheet2のA2セル以降に氏名を入力するようにしていました。 ということで数式はB2セルに入れることになります。 ちゃんとアップできれば良いのですが・・・m(__)m

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! カテゴリーはMS Office か Office系ソフト の方が良いと思いますが・・・ せっかく覗かせてもらったので色々方法はあるかと思いますが、一例です。 ↓の画像で左側がSheet1でSheet2に表示するようにしてみました。 Sheet2のB2セルに =IF(OR($A2="",COUNTIF(Sheet1!$A:$A,$A2)<COLUMN(A1)),"",INDEX(Sheet1!$B$1:$B$1000,SMALL(IF(Sheet1!$A$1:$A$1000=$A2,ROW($A$1:$A$1000)),COLUMN(A1)))) これは配列数式になってしまいますので、この画面からコピー&ペーストしただけではエラーになるか、ちゃんと表示されないと思います。 B2セルに貼り付け後、F2キーを押す、または貼り付けセルでダブルクリック、または数式バー内で一度クリックします。 編集可能になりますので、Shift+Ctrlキーを押しながらEnterキーで確定! 数式の前後に{ }マークが入り配列数式になります。 これをオートフィルで列方向と行方向にコピーすると画像のような感じになります。 以上、参考になれば良いのですが 他に良い方法があればごめんなさいね。m(__)m

yy10
質問者

お礼

早速の回答ありがとうございます。これから式の分析をしたいと思います。

noname#140925
noname#140925
回答No.1

VBAとかで組めば可能だと思いますが。