• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCEL 図書の検索(2))

EXCEL図書の検索方法

このQ&Aのポイント
  • 昨日質問しまして再び質問させてもらいます。著者名を入れると該当する本を表示する方法を教えてください。
  • SHEET1のC4に著者名を入力し、SHEET2のB2〜E15001を検索して該当する本を表示します。
  • 具体的には、該当する本の番号、名前、著者、分類番号がSHEET1のB7〜E7に表示されます。同じ著者の本をすべて表示する方法です。前回の回答を試しましたがうまくいかず困っています。

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

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

あれっ,前のご相談はいつのまにか解決していたようですが,ちょっと誤記てましたね。 訂正: シート2のA2に =IF(OR(D2="",Sheet1!$C$4<>D2),"",ROW(A1)) と記入、リスト下端までオートフィルドラッグでコピー シート1に戻り A7に =IF($C$4="","",IF(ROW(A1)>COUNT(Sheet2!A:A),"",SMALL(Sheet2!A:A,ROW(A1)))) B7に =IF($A7="","",VLOOKUP($A7,Sheet2!$A$2:$E$15001,COLUMN(B7))) と記入、B7をE7まで右にオートフィルドラッグしてコピー貼り付け A7:E7を下向けに適当数オートフィルドラッグしてコピー。 失礼しました。

pi-man39
質問者

お礼

2度にわたり大変丁寧な説明ありがとうございました。 早速やってみましたら 思い通りのものができました。 心より感謝申し上げます。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • EXCEL 図書の検索

    宜しくお願いします。 書籍名を入れると「ある」か「ない」かを表示する。 著者名を入れると「ある」場合はその著者の本がすべて表示            「ない」場合は「ありません」と表示するようにしたい。 SHEET1 C2に書籍名を入れてクリックすると SHEET2のB2~E10000を検索して SHEET1のD2に「あります」OR「ありません」と表示する。 次に SHEET1の C4に著者名を入れてクリックすると、 SHEET2のB2~E10000を検索して SHEET1の B7~番号,C7~本の名前,D7~その本の著者,E7~分類番号が その著者の本がすべて表示される。 著者名の本がない時はSHEET1のD4に「ありません」と表示する。 SHEET2 B1に番号,C1に本の名前,D1にその本の著者,E1に分類番号が 入っています。 実際に本名や本の著者が入っているのは B2~E10000までの中に入っています。 初心者です。宜しくお願いいたします。

  • 図書室の本の検索で分類番号も出したい。

    EXCEL初心者です。 宜しくお願いします。 以前 図書室の本の検索でお聞きしました。 さらに追加してお聞きします。 シート1 C1に書籍名を入力すると D1に「図書室にはあります」「図書室にはありません」を表示する。 方法を教えてもらいました。 使わせてもらっています。 今度はさらに E1に「図書室に本がある場合」は分類番号を表示したい。 「図書室に本がない場合」はE1に「***」を表示したい。 シート2 B2~B15000には番号 C2~C15000には書籍名 D2~D15000には著者名 E2~E15000には分類番号 が、入っています。 宜しくお願いたします。

  • エクセルでお聞きします。

    こちらのサイトの回答を参考に、セルに下記のような式が入れました。 他のシートや他のセルにも同様の式が入っているのですが割愛致しました。 通常Sheet1のB列は空白なんですが、もし何か文字が入っていたら その行に関してはこの式を反映させない方法を教えて下さい。 (Sheet2) B列 =IF(ROW(E1)>COUNT('Sheet1'!$E$4:$E$505),"",INDEX('Sheet1'!E$1:E$505, SMALL(INDEX(SUBSTITUTE(('Sheet1'!$E$4:$E$505<>"")*1,0,10^5)*ROW('Sheet1' !$E$4:$E$505),),ROW(E1)))) D列 =IF(ROW(C1)>COUNT('Sheet1'!$E$4:$E$506),"",INDEX('Sheet1'!C$1:C$505, SMALL(INDEX(SUBSTITUTE(('Sheet1'!$E$4:$E$505<>"")*1,0,10^5)*ROW('Sheet1' !$E$4:$E$505),),ROW(C1))))

  • エクセル2010 検索と抽出

    エクセル2010を 使っています。 以前教えていただいた、数式を改変して応用したいのですが、うまくいきません。 やりたいのは画像の処理で、 B83の値を E列から探しその関連セルであるF列、G列の値を、C列D列に抜き出すという作業です。 改変した数式は以下の様なもので、C83に入力後、オートフィルで使おうと思っていました。 詳しい方、教えていただけませんか? =IFERROR(INDEX(F83:F162,SMALL(IF(E83:E162=B83,ROW(E83:E162)),ROW(A1))),"") (配列数式) 3キー打鍵 よろしくお願い致します。

  • エクセルの関数の直し方

    現在、画像のような表を作成しておりますが、 1行目の前の行に5行挿入したいと考えております。 下の表からデータを製番・区分ごとに合計して上の表に表示されるようになっています。 5行挿入してタイトル等入れたいと思い、挿入してみると、 今まで下の表からの合計が上の表に表示されなくなってしまいます。 セル番号等確認はしてみたのですが、 どこがいけなくてうまく表示されないのかがわからなくて困っています。 どのように直したらいいかをご教示お願いいたします。 現在入っている関数は以下の通りです。 A2=IF(COUNT(Sheet1!$L$14:$L$38)<ROW(A1),"",INDEX(Sheet1!$B$14:$I$38,MATCH(SMALL(Sheet1!$L$14:$L$38,ROW(A1)),Sheet1!$L$14:$L$38,0),MATCH(A$1,Sheet1!$B$13:$I$13,0))) B2=IF(COUNT(Sheet1!$L$14:$L$38)<ROW(B1),"",INDEX(Sheet1!$B$14:$I$38,MATCH(SMALL(Sheet1!$L$14:$L$38,ROW(B1)),Sheet1!$L$14:$L$38,0),MATCH(B$1,Sheet1!$B$13:$I$13,0))) C2=IF(COUNT(Sheet1!$L$14:$L$38)<ROW(C1),"",INDEX(Sheet1!$B$14:$I$38,MATCH(SMALL(Sheet1!$L$14:$L$38,ROW(C1)),Sheet1!$L$14:$L$38,0),MATCH(C$1,Sheet1!$B$13:$I$13,0))) D2=IF(A2="","",SUMIFS(Sheet1!$G$14:$G$38,Sheet1!$B$14:$B$38,A2,Sheet1!$H$14:$H$38,B2)) E2=IF(C2="","",IF(ISERROR(VLOOKUP(C2,list!$S$3:$T$6,2,0)),"",VLOOKUP(C2,list!$S$3:$T$6,2,0))) H14=IF($E14="","",IF(ISERROR(VLOOKUP($E14,INDIRECT($J14),3,FALSE)),"",VLOOKUP($E14,INDIRECT($J14),3,FALSE))) I14=IF($E14="","",IF(ISERROR(VLOOKUP($E14,INDIRECT($J14),4,FALSE)),"",VLOOKUP($E14,INDIRECT($J14),4,FALSE))) J14=IF(ISBLANK(B14),"",IF(B14<="J121100144","旧","新")) K14=IF(AND(B14<>"",H14<>"-"),B14&"_"&H14,"") L14=IF(AND(K14<>"",COUNTIF(K$14:K14,K14)=1),COUNTIF($K$14:$K$38,"<"&K14)+1,"")

  • エクセルの関数について。

    エクセルの関数。 Sheet1の作業列1のA2セルに =IF(COUNTA(Sheet2!2:2)=0,"",IF(Sheet2!A2="",A1,Sheet2!A2)) →数式1とする 作業列2のB2セルに =IF(A2=$D$2,ROW(),"") →数式2とする という数式を入れA2・B2セルを範囲指定 → B2セルのフィルハンドルで下へコピーしておきます。 (Sheet2の行数以上コピーしておく) そしてE2セルに =IF(COUNT($B:$B)<ROW(A1),"",INDEX(Sheet2!B:B,SMALL($B:$B,ROW(A1)))&"") →数式3とする という数式を入れオートフィルで列方向・行方向にコピーする。 教えて頂きたいことは、数式1、数式2、数式3が何を意味しているのか。 と、この数式を使って、表を作成したのですが、ある特定の数字(コード、D2セルに入力)を入力しても反応してくれない。 (E2~H2まで、空白セルの状態になります。) (sheet2は約1200行あります。) 教えて頂けないでしょうか?

  • エクセルで時間を起点として集計

    A列に開始時間、B列は~という文字 C列は終了時間、D列は種類名、E列は値(経過時間)が記載されています 1行目はタイトルで、2行目から始まっています。 A B C D E 07:00 ~ 07:12 バナナ 12 07:20 ~ 07:40 りんご 20 09:00 ~ 09:12 りんご 12 09:20 ~ 09:22 ぶどう 2 09:30 ~ 09:42 メロン 12 13:00 ~ 14:12 すいか 72 このDセルの種類名のカウントと、Dセルに対してEセル経過時間の値の合計値を計算する関数というと物を以前教えて頂きました。 下記の物を使わせて頂いております。 >Sheet1のデータをSheet2に表示するようにしてみました。 >↓の画像で左がSheet1・右側がSheet2とします。 >Sheet1に作業用の列を1列設けます(今回はF列にしています) >F2セルに >=IF(COUNTIF(D$2:D2,D2)=1,ROW(),"") >という数式を入れ、これ以上データはない!というくらいまでしっかり下へオートフィルでコピーしておきます。 >Sheet2のA2セルに >=IF(COUNT(Sheet1!F:F)<ROW(A1),"",INDEX(Sheet1!D:D,SMALL(Sheet1!F:F,ROW(A1)))) >B2セルに >=IF(A2="","",COUNTIF(Sheet1!D:D,A2)) >C2セルに >=IF(A2="","",SUMIF(Sheet1!D:D,A2,Sheet1!E:E)) >という数式を入れA2~C2セルを範囲指定 → C2セルのフィルハンドルで下へオートフィルでコピー! 回答者様のお知恵を借り、とても楽に計算する事ができ、感謝しております。 贅沢な者で、もう少し楽をしたいと欲を出してしまいまして・・・。 この集計で朝の7時~19時までと夜19時~7時までで分けて集計する事は可能でしょうか? 基本的には19時で一度〆るので、19時前と19時後を跨ぐ事はないのですが(18:50 ~ 19:10)←こんな感じには基本ならないのです。 たまに作業が停止する時は(14:00 ~ 6:59)という形で、跨いでしまう事があります。 この場合は19時を跨いだ時点で一度朝の時点での経過時間の計算をし、再度19:00~夜の経過時間を再計上という形をしたいのですが可能でしょうか? 長々となりましたが、お知恵をお貸し下さい。

  • エクセルで

    シート1     A       B       C     1 No  プロジェクト(親番)   プロジェクト名称   2 1   08010000         Aプロジェクト シート2     A      B       C        D        E      F  1         No  プロジェクト名称  プロジェクト親番  子番  プロジェクト番号  2  1      1  Aプロジェクト      08010000   001  08010000-001  3  1      1  Aプロジェクト      08010000   002  08010000-002  4  1      1  Aプロジェクト      08010000   003  08010000-003 上記のようにシート1の内容をシート2のC2を IF(A2="","",VLOOKUP(A2,'シート1'!$A$2:$D$30,2))  と入力し、プロジェクト名がでるようにしています。 D2にも同様の式を入れています。 E2には、手打ちで子番を入力しています。 各プロジェクトごとに子番があるため、同じプロジェクトを何度もルックアップを使い表示するのですが、 同じプロジェクト名が何度もあったら見づらいので、 Noとプロジェクト名称だけ1度でてきたら次から表示しないようにしたいのです。 プロジェクトは今後どんどん増えていくので、見やすいようにセルを結合してオートフィルを使えないようにするのは困ります。 何か良い方法はありませんか?   

  • EXCEL、ランダム表示の発展系?

    EXCELのSheet1には A列にサイトタイトル、B列にURL、C列にカテゴリのデータがあるとします。 そして、D列には「=IF(B2="","",RAND())」このようなランダムの関数があります。 また、Sheet2のA列には =IF(ROW(A1)>COUNT(Sheet1!$D:$D),"",INDEX(Sheet1!$A:$B,MATCH(LARGE(Sheet1!$D$2:INDIRECT("Sheet1!D"&COUNT(Sheet1!$D:$D)+1),ROW(A1)),Sheet1!$D:$D,0),COLUMN(A1))) B列には =IF(ROW(B1)>COUNT(Sheet1!$D:$D),"",INDEX(Sheet1!$A:$B,MATCH(LARGE(Sheet1!$D$2:INDIRECT("Sheet1!D"&COUNT(Sheet1!$D:$D)+1),ROW(B1)),Sheet1!$D:$D,0),COLUMN(B1))) がA2,B2~A6,B6の5行に書かれています。 すると、Sheet2のA2,B2~A6,B6にはランダムに表示されます。 (以前教えてもらった方法です) そこで今回の質問ですが2つあります。 1つ目は、C列のカテゴリを指定して、その中からランダムに表示させたい。 2つ目は、同じドメインは表示しないようにしたい。 ちょっと、分かり難いかもしれませんが、このようにするにはどうすればいいでしょうか? 恐れ入りますが、教えていただけないでしょうか? よろしくお願いします。

  • Excelでの抽出(検索?)

    エクセルを使い、シートAにID(100件)を、シートBに不要なID(10件)が入っています。 このとき、シートCにA-Bの90件のIDを表示させたいのですが、どのような方法があるでしょうか。 シートCは、シートAで不要なIDの入っていた行が空白になって100行目まで表示されても、詰まって90行まで(空白がなく必要なIDのみ)が表示されてもどちらもでかまいません。 例えばこんな感じです。 シートA シートB シートC A12    B34    A12 B34    D78    C56 C56          E90 D78 E90 よろしくお願いいたします。

専門家に質問してみよう