• ベストアンサー

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

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

  • yy10
  • お礼率48% (48/99)

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

  • ベストアンサー
  • 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とかで組めば可能だと思いますが。

関連するQ&A

  • エクセルで検索、抽出を教えてください。

    いろいろ考えたのですが、わかりません。ご指導よろしくお願いします。 下記の表があります。A1:C1でタイトル、A2:C7でデータが入っています。Dの列にLOOKUPやMATCHなどを用いてそれぞれの氏名の人のQ3の回答を出したいのです。(D2,D3,D4にはうううを入れたい。D5,D6,D7にはかかかを計算で入れたいのです。)よろしくお願いします。   A, B, C, D 1 氏名,Q,こたえ 2 佐藤,Q1,あああ 3 佐藤,Q2,いいい 4 佐藤,Q3,ううう 5 鈴木,Q1,えええ 6 鈴木,Q2,おおお 7 鈴木,Q3,かかか

  • エクセルシート間の照合について

    エクセルシート間で照合をしたいと思っています。 照合する項目は2つ。2つともあえばそのA列のデータを表示するというものです。 データは シート1(前年) A  B  C  D 1  田中 123 東京都・・ 5  佐藤 124 千葉県・・ 3  山本 128 埼玉県・・ シート2(今年) A  B  C  D   山本 128 埼玉県・・   佐藤 124 北海道・・   田中 123 東京都・・ C列とD列を照合し2つともあえばシート2のA列にシート1のA列のデータを入力する。なければ「なし」と入力できるようにしたいのです。 上の場合は山本のA列に「3」佐藤には「なし」田中には「1」と入るのうになればと思います。 入力されている列は同じですが順番はばらばらです。データ数は1万件を超えています。 どなたかアドバイスいただければと思います。よろしくお願いします。     

  • エクセルで、次のような自動入力をしたい

      A    B    C    D   E  ・・ AA 1 田中 鈴木 佐藤          山田 2 鈴木 山田              海岡 3 田中 佐藤              佐藤 というような表があり、AAの列に名前を入力したとき、 D1に「山田」、C2「海岡」と、その行に関してAA列に新規の名前が入力されたときにD1,C2に自動入力することは、VBAで簡単にできますか? 3列目には「佐藤」さんがすでいるので入力不要です。 よろしくお願いします。(マクロ初心者です)

  • エクセルのデータ並べ替え(抽出)の方法

    エクセルのデータ並べ替え(抽出)の方法 を教えてください。 下記のようなデータがあるとします。   A    B    C   D 1 田中  東京  千葉  福岡 2 山田  京都  滋賀 3 佐藤  奈良  青森  USA 4 鈴木  カナダ 愛媛 A列は名前、B列以降は文字列です。B列以降はC列までの行、D列までの行とさまざまです。重複セルはありません。 これを下記のように並べ替えたいです。   A    B    C   D 1東京  田中 2千葉  田中 3福岡  田中 4京都  山田 5滋賀  山田 6奈良  佐藤 7青森  佐藤 8USA   佐藤 9カナダ 鈴木 10愛媛  鈴木 こういうことは可能でしょうか??? 教えてください。 よろしくお願いします。

  • エクセル関数 検索機能

      A  B 1 山田 25歳 2 田中 27歳 3 佐藤 32歳 4 落合 34歳 5 田中 41歳 6 田中 23歳 という一覧を作成し、D2セルに名字を入力すると E2セルに名字、F2セルに年齢が表示される 検索機能をつけたいです。たとえば落合さんを探したい時は E2は =VLOOKUP(D2,A1:B6,1,TRUE) F2は =VLOOKUP(D2,A1:B6,2,TRUE) で検索できましたが、田中さんの様に複数の場合 D2に名字を入力するだけで E2 F2 E3 F3 E4 F4 に3人分を表示させる関数はありますか?

  • エクセルのセル、このような合体はできるか?

    よろしくお願いします。 エクセルで下記のような合体はできるのでしょうか? A列          B列    佐藤         田中             池田 このデータのA列とB列を合体させて A列 (1)佐藤 (2)田中 (3)池田 という一つの行にしたいのですが、なにか 式を使ってできないでしょうか? 何十行も、テキストをコピーして貼り付け、ということをやっていると あまりにも時間がかかってしまい、うまくできないかと思いました。 知恵を貸してください。 よろしくお願いします。

  • ExcelのSUMIF関数について質問です

    A列 │B列 │C列│ ----十---十----十 田中│ 男│177 │ 鈴木│ 男│169 │ 吉田│ 女│162 │ 田中│ 女│161 │ 佐藤│ 女│164 │ 田中│ 男│174 │ 鈴木│ 女│166 │ 上記のようなデータがsheet1にあって、このうち A列が”田中”で、かつB列が”男”に該当する C列のデータの合計をsheet2で計算したいのですが これはどのようにすればいいのでしょうか。 下記のように記述するところまではやったのですが、 これに「なおかつsheet1のB列がsheet2のB3(男)に一致する場合」 という検索条件を付け加える方法が分かりません。 (↓Sheet2のC3セル) =SUMIF(Sheet1!A:A,Sheet2!A3,Sheet1!C:C) (sheet2のA3には”田中”、B3には”男”と入力してあり、 計算結果をC3に出力したいと思っています。) OSはWindows2000、エクセルはEXCEL2000を使用しています。 よろしくお願いします。

  • エクセルでの計算式を教えて下さい。

        A     B     C   D   E  1 担当   金額    2 三木   30    3 田中   21    担当  件数 金額  4 三木   15    三木   3  57  5 佐藤   43    田中   2  45  6 田中   24    佐藤   1  43  7 三木   12   上の集計表で、三木さんの合計金額をE4のセルに求める計算式は、 =SUMIF(A2:A7,C4,B2:B7)でいいと思いますが、 同様に三木さんの件数をD4のセルに求める場合の計算式を知りたいのですが どなたかご教授いただけませんでしょうか。

  • エクセルの関数について質問です

    例えば以下の表があります。     A   B    C    D 1  田中  上級  5.000- 2.500- 2  佐藤  下級  1.000-   300- かりに A列は融資者 B列は貢献度 C列は貢献額 D列は返礼額となります。 運営側が利益を上げた場合に返礼としてB列の貢献度によって返礼の額を定め D列に返礼額を計算式として算出できるようにしたいのですが。 その場合の計算式はどうすればよいでしょうか。 教えて下さい。

  • エクセルの関数検索で

    以下のような表データを元に、 エラーチェック    グループ NO =           1001 =           1003 無           1005 下記のようなデータが合っているか確認したいのです。 A列  B列 1003 = 1005 無 1006 = 1001 = 1005 無 1003 = 同じ番号が複数出てきたり、連番ではないので どういった関数を組み合わせればいいのかわかりません。 説明がわかりずらかったら申し訳ありませんが、 何卒お力添え頂けますようお願い致します。