• ベストアンサー

エクセル 検索と表示

エクセル2010を使っています 画像の様なデータがあり、C1~L1に文字が入力された時に、A列から同じ文字を検索し、B列の文字を【上から順に】表示させたいと思います。 出来れば簡単な関数でお願いします。 詳しいかたよろしくお願いいたします。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.3

エクセル2010ではもっと簡単な数式で、 C2: =IFERROR(INDEX($B:$B,SMALL(IF($A:$A=C$1,ROW(C:C)),ROW(C1))),"") と記入し、必ずコントロールキーとシフトキーを押しながらEnterで入力 下にコピー、右にコピー のようにできます。

gekikaraou
質問者

お礼

回答ありがとうございます。 関数を極めればこんなに簡単なんですね。 助かりました。

その他の回答 (2)

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.2

>画像の様なデータがあり、C1~L1に文字が入力された時に、A列から同じ文字を検索し、B列の文字を【上から順に】表示させたいと思います。 画像ではD1~M1に名前が入力されているように見えますので画像に沿って回答します。 >出来れば簡単な関数でお願いします。 簡単な関数と言う訳にはいかないようですので解説を付けさせて頂きます。 A列の名前と1行目の名前が一致する論理式を使い一致する行番号を配列で取り出します。 =($A$2:$A$1000=D$1)*ROW(A$2:A$1000) この配列から小さい値の順に該当の行番号を取り出します。 =SMALL(($A$2:$A$1000=D$1)*ROW(A$2:A$1000),COUNTIF($A$2:$A$1000,"<>"&D$1)+ROW(A1)) 此処で1行目の名前とA列が一致しない行は0になりますのでその分の数を追加した順番にしなければなりません。 数式の中で配列値を扱うときは数式の確定時にCtrl+Shift+Enterの打鍵が必要です。 しかし、SUMPRODUCT関数を使うと通常通りのEnterキーによる確定でも正常に動作します。 よって、今回の数式はSUMPURODUCT関数を使うこととします。 D2=IF(D$1="","",IFERROR(INDEX($B:$B,SUMPRODUCT(SMALL(($A$2:$A$1000=D$1)*ROW(A$2:A$1000),COUNTIF($A$2:$A$1000,"<>"&D$1)+ROW(A1))),1),"")) 上記数式でIFERROR関数はExcel 2007以降のバージョンに組み込まれたもので、2003以前のバージョンでは利用できません。 D2セルを右と下へ必要数コピーすれば目的達成です。 尚、元データの最大行番号を1000としていますので実際のデータに合わせて修正してください。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

データ数が少なければ補助列を使わない関数も考えられますが、すべてのデータを組み替えて表示することをしたいようなので、以下のような補助列を使った関数が簡単かもしれません。 提示されたデータなら、A列を選択して右クリック「挿入」でA列を挿入し、A2セルに以下の式を入力し下方向にオートフィルコピーします。 =COUNTIF($B$2:B2,B2)&B2 E1セルから右方向に名前が入力されているなら、E2セルに以下の式を入力し、右方向および下方向にオートフィルコピーします。 =IFERROR(VLOOKUP(ROW(1:1)&E$1,$A:$C,3,0),"") 必要に応じてA列を非表示にすれば、元のデータと同じレイアウトになります。 ちなみに、このデータ範囲を「テーブルとして書式設定」しておけば、データの追加に対応してA列の数式が自動的に入力されます。

関連するQ&A

  • excelで文字列を検索する関数を教えてください。

    いつもお世話になります。 エクセルの関数で、シートAのセルA1に入っている文字列をシートBのC列から探し出し、同じ文字列があればTrueをなければFalseを返す関数を教えてください。 わからないながらも色々調べてみたのですが、検索にはVLOOKUPがよく使われているようですが、シートBのC列は、データの並べ替えができないので、VLOOKUPは、使えないのです。 よろしくお願いします。

  • Excelでのデータ検索関数について

    Excelでのデータ検索について悩んでいます。 例えば、A列では「あ~お」、B列では「A~H」でC列ではデータが入っている場合でA列の「い」、B列の「C」のデータを検索したいときはどのように関数を組み合わせれば良いでしょうか?色々試したのですがなかなかうまくいきません。vlookup、index関数で組み合わせてできるのでしょうか?やはりVBAでしか無理なのでしょうか? どなたかご存知の方、ご教示ください。

  • エクセルで文字の検索

    例えば以下のような数値データの中から「A」または「B」または「C」を検索して、その文字数を取り出したいのですが、FIND関数の検索文字列にOR関数を使ってA、B、Cを指定すれば、エラーになります。 この場合使える関数があれば教えていただきたいです。 よろしくお願いします。 123A456 123B456 123C456

  • エクセルの検索

    お世話になります。 エクセルの検索でやり方が分からないので質問させて頂きます。 A列:商品名 B列:金額 を下に入力していきます。それに対して C1セルに検索する商品名を入力する事で D1~D20に検索した商品の金額を表示していきます。 ただしB列の下から順に検索し、D1~D20に上から順に表示したいです。 例: A列  B列 りんご 100円 みかん 150円 キウイ 160円 りんご 130円 キウイ 500円 りんご 300円 これに対しC1に「りんご」と入力する事で、 D1:300円 D2:130円 D3:100円 と表示したいです。 ネットで調べて D1=LOOKUP(2,1/(入力!$A:$A=$C$1),入力!B:B) と入れて下へコピペしたのですが、 全て同じ数値が表示されてしまいます。 分かる方がいましたら、回答お願いします。

  • 同じ文字であれば ● を表示したい Excel

    エクセルで A1=あ B列 あ い う え と入力されていて A1の文字がB列にあれば ● とC1に表示したいです。 なければ空欄! 関数ですよね? おわかりの方教えてくださーい!

  • エクセル 検索と抜き出し

    エクセル2010を使っています。 関数に詳しくないので、教えて頂けませんか? 画像の様なデータシートがあります。 2行目から40行目まで、画像の様に数字が入っていて、D1に入力された数字【画像では1】をA列から全て検索し、その右のB列の数値をD2から以下に抜き出したいと思います。 黄色で塗りつぶした部分です、(例として数値を表示させています) また同じ形で、E~H列、I~L列と言う風にAF列まであります。 詳しい方、教えて頂けませんか? よろしくお願い致します。

  • エクセルの並べ替え・・・

    エクセルで並べ替えをしたいんですが、思うようにいきません。教えてください。 A列:日にち B列:ナンバー C列:名前   が入っています。 C列には、関数が入っています。 B列にナンバーを入力すると、名前が自然に入るようになっています。 関数は、 =IF(B2="","",VLOOKUP(B2,' 名 簿 '!$A:$B,2,FALSE)) です。 A~C列を選択して、 C列(名前順)に並び替えをすると、(データ→並び替え) 空欄のセルが上の方に来て、日にち、NOが入力されているセルは、下の方で並び替えされている状態です。 入力されているセルを上にするには、どのようにすればいいのか、教えてください

  • エクセルの文字列の検索に関して

    また、エクセルに関しての質問です。 例えば  A B C D 1あ 1 2い 2 3う 3 4え 4 5お 5 6か 6 7き 7 8く 8 このような漢字で文字列が縦に入力されていて、  A B C D E 1あ 1   お 5 2い 2   う 3 3う 3 4え 4 5お 5 6か 6 7き 7 8く 8 このようにD列にある文字に対してA列にある文字で該当する文字を発見し横のBセルにある番号を取ってくるということがしたいです。 この場合だとD1は「お」なので、A列の上から見ていくとA5に「お」があるので、B5の数字「5」をEに入力といったような具合です。簡単なように見えますが、複数の文字列を横断的に検索することができません。 誰か詳しいお方お教え願います。

  • VLOOKUPの検索範囲について

    エクセルの関数で質問です。 Sheet1で  A B C      1  1 1       2  1 5      3  2 1      4  2 3 というデータがありSheet2に        A B       1  1 1       2  1 2      3  2 1      4  2 2      5  3 1 というデータがあります。 Sheet1のA1、B1やA2、B2と同様の並びをした行がSheet2にあるかどうか調べたいのですが、関数がわかりません。ちなみにSheet1のCの列に関数を入力したいと思ってます。 VLOOKUPで列Aの条件を満たし、列Bの条件を満たすものと言う検索条件してもうまくいきません。 教えてください。よろしくお願いします。

  • エクセルで検索窓のようなものを作る

    エクセルのシートにテキストボックスとコマンドボタンを配置してシート上のデータを検索することは可能でしょうか?今現在はB列に、複数の文字データが入力してあるので、オートフィルタのオプションから「を含む」で検索してます。 イメージとしては、オートフィルタのオプションから「を含む」を選んでから検索しなくても予めシートに用意してあるテキストボックスに検索したい文字を入れてボタンを押すと、オートフィルタで検索したときと同じような結果が得られるようにしたいと思ってます。 例)    A    B    C     -------------- 1     血液型      2      A 3      B 4      O 5      AB 上のような表があったとして、テキストボックスにAと入力してボタンを押すとB2とB5が表示されるようにしたと思ってます。いい方法があればご教示願います。

専門家に質問してみよう