• 締切済み

【EXCEL】同じ文字の列にある文字を参照する方法

HLOOKUP関数がうまく扱えなかったため質問させていただきます。 現在楽譜の曲目、およびその曲の情報をまとめているのですが、 量が膨大なため、同じ曲名を入力した際に、同列のセルの情報も 合わせて参照できないかと考えています。 ex.) 曲名   作曲    編曲・・・ 花   瀧廉太郎  山田耕筰・・・ ・・・と入力したのち、曲名の行に再び『花』と入力した際、 前者の列の情報(作曲、編曲)も併せて参照できる方法を探しています。 各LOOKUP関数を用いようとしましたが、範囲, 列番号の入力すべき値が理解できず、 結果として失敗に終わりました。 ご助言お願いいたします。

みんなの回答

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

ご利用のエクセルのバージョンがご相談に書かれていませんので、エクセル2010(以降)を使ってお話ししてみます。 以前のエクセルを使っていた場合はスルーしてください。 手順1:「重複」のチェック A列に曲名を記入しているとする A列を列選択する ホームタブの条件付き書式▼から「セルの強調表示ルール」を右に開いて「重複する値」を選択 書式をテキトーに設定してOKする →「花」が2回目以降現れた場合、条件付き書式でセルの色などが変わって知らせてくれる →必要に応じてオートフィルタや検索などで既出の「花」の行を抽出、必要なセルを(あるいは行ごと)コピーして複写する 手順2:関数の利用 ご質問の直接の回答 A列に曲名を記入しているとする B2に =IF(COUNTIF($A:$A,$A2)>1,VLOOKUP($A2,$A:$Z,COLUMN(),FALSE),"") と記入、下に右にコピー貼り付けて埋めておく 各データは、いま埋めた数式を「書き潰して」生データを記入していく。

回答No.3

NOつけたほうがわかりやすいと思いますよ。NOの列を増やすとか。 ↓基本をおさえてからやってみてください。 うまくいきますよ http://www.excel-list.com/lookup.html

  • eden3616
  • ベストアンサー率65% (267/405)
回答No.2

No1のものです。 画像加工の際に列を削除したので表示されている数式と異なっていますね 申し訳ありません。 ■VLOOKUP関数を使用する場合は以下の数式 E3 =VLOOKUP($E$1,$A$2:$C$10,2) E5 =VLOOKUP($E$1,$A$2:$C$10,3) ■INDIRECT、MATCH関数を使用する場合は以下の数式 E8 =INDIRECT("B"&MATCH($E$1,A:A,0)) E10 =INDIRECT("C"&MATCH($E$1,A:A,0)) (追加で) ■INDEX、MATCH関数を使用する場合は以下の数式 E13 =INDEX($A$2:$C$10,MATCH($E$1,$A$2:$A$10,0),2) E15 =INDEX($A$2:$C$10,MATCH($E$1,$A$2:$A$10,0),3) となります。 捕捉で・・・ 上記数式の列番号を指定している「2」や「3」は A列を「1」としたときのB「2」やC「3」ではなく、 セル範囲「$A$2:$C$10」を指定したときの 一番左の列を「1」としたときの「2」や「3」列目 ということになります。

  • eden3616
  • ベストアンサー率65% (267/405)
回答No.1

添付のような表でデータがあるとします。 セルE1 (緑色のセル) に入力した場合、 セルE3・セルE5 (紫色のセル) に以下の数式を入れると入力値によって 該当の項目を得ることが出来ます。 E3=VLOOKUP($F$1,$A$2:$C$10,2) E5=VLOOKUP($F$1,$A$2:$C$10,3) 別方法としてセルE8・E10のように Match関数でA列の行数を検索し、Indirect関数でセルを参照する方法もあります。

関連するQ&A

  • エクセルのFIND関数の複数セル参照について

    C4=LOOKUP(0,0/FIND(B4,テーブル1[アドレス]),テーブル1[名称])  「テーブル1」の「アドレス」列を部分一致で検索し、「B4」セルの文字列に該当する項目があったら、「テーブル1」の「名称」列のデータを「C4」セルに表示するよう、インターネット上の情報を参照しながら数式を組んでいます。  ところが、「B4」セルの文字列に該当する項目があるときはいいのですが、該当項目がない場合は「#N/A」と表示されるため、「IF」関数を追加し、以下のようにしたところ、うまく動きませんでした。 C4=IF(COUNT(FIND(B4,テーブル1[アドレス])),LOOKUP(0,0/FIND(B4,テーブル1[アドレス]),テーブル1[名称]),"未使用")  「数式の検証」で調べたところ、「LOOKUP」関数内の「FIND」関数は「テーブル1」の「アドレス」列の各セルをそれぞれ参照しているのに対して、「COUNT」関数内の「FIND」関数は同じ行(C4の場合は4)の「テーブル1」の「アドレス」列しか参照していませんでした。 「LOOKUP」関数内の「FIND」関数のテーブル1[アドレス]: {"アドレス1";"アドレス2";"アドレス3"} 「COUNT」関数内の「FIND」関数のテーブル1[アドレス]: "アドレス4"  参照内容が異なるのはなぜでしょうか。  この場合、どのようにすればよろしいのでしょうか。  また、「LOOKUP」関数は「旧バージョンとの互換性を維持するためのもの」となっており、代わりに「VLOOKUP」や「HLOOKUP」、「MATCH」関数などで代用はできないのでしょうか。  何卒ご教示よろしくお願いいたします。

  • エクセル ある文字列を入れるとある文字列を返す

    エクセルでの関数、ど素人です。一応自分で調べたのですが、無理なので質問させていただきます。よろしくお願いいたします。 エクセルで、時刻ですが文字列として1745~2345までを手入力します(1745,とか2000とか2330とか。。。。。) 入れた文字列によって、すぐ横のセルに1745、1800、1815であれば8.00、1830からは0.25刻みで8.25、1845であれば8.50、1900であれば8.75。。。。2330であれば13.25、2345であれば13.50と言ったように、入力した文字列に対しある特定の文字列を自動的に入れたいのですが、どのような関数を使えばよろしいのでしょうか。 私が行おうとしたのは、別シートに文字列一覧を作り、if(特定のセル(手入力するセル)=別シートの1745~2345まで、横のセル=別シートの8.00、8.00、8.00~13.50まで)や、sumif、lookupを使ってみましたが撃沈です。 どなたか教えていただきたく、お願いいたします。

  • 文字列検索の参照文字列の指定について

    Excelでセルに任意の文字列をペーストします。そのセルは別のブックにリンクしているのでペーストする度にリンク先のセルでは文字列が更新されます。リンク先のブックにはワークシートが10あっていづれかのシートのA列にその文字列がある事になっています。更新された文字列を検索する作業を繰り返すのでマクロで組み込もうと思ったのですがFIND関数にしても、VBでCell.Find(What:=....と書くにも参照する文字列を直接指定してやらないと動きません。参照する文字列が相対的に変化するので「特定のセルの中に入力された文字列」を参照してブック内を検索したいということなのですが、実現するにはどうしたらようでしょうか?

  • Excel2003で、文字列を参照しての集計表

    Excel2003で、文字列を参照しての集計表を作成中です。 |  A  |  B  |  C  |  D  |  E  |  F  |  【氏名】  【結果】  【1回目】 【2回目】 【3回目】 【4回目】 ・・・・・  鈴木一郎   承認     検討    承認                佐藤健二   拒否     検討    不在    拒否          山田花子   検討     不在    不在    不在    検討   上記のように、B列の【結果】のセルに、1回目から10回目までに入力した応対の集計結果を 自動的に表示するようにしたいのです。 表示のルールとしては、 1.全てが「不在」の場合は「不在」 2.「不在」と「検討」のみの場合は「検討」 3.「拒否」がある場合は「拒否」 4.「承認」がある場合は「承認」 となっています。 ちなみに、「承認」と「拒否」は同一人物の行内での併記はありません。 IF関数でなんとかできないかと、考えたのですが、 参照条件をどのように指定していいのかが分りません。(+_+) 他の関数でうまくいくものはありますでしょうか?

  • Excel;取得した列データーの使用法

    エクセルマクロで ある列のデーターの最終行を求め、 となりの列の最終行からその行までLOOKUP関数を オートフィルで貼り付け、更にその関数で参照した データーを文字列にして再読込じの負荷を軽減する マクロを考えています。 最終行をもとめるのマクロはよく見ますが、 その使用方法がわかりません。 どうやって代入すればよいのか・・・ マクロの勉強を始めたばかりで、出来れば明日くらいに このマクロを作りたいのですが・・・ お願いします。

  • 文字列から他の文字列を参照して削除し、結果を残すことはできますか?

    文字列から他の文字列を参照して削除し、結果を残すことはできますか? Excel2003です。 A列、B列に文字が入っており、 原則的にAは長く、AはBに書かれている文字を含んでいます。 他の列に関数で     A           B     C 1  石川武          石川   武 2  記者ハンドブック     ハンド  記者ブック 3  長文ドキュメント     メント  長文ドキュ 4  エコポイントが半減します 半減   エコポイントがします 5  過去にやった問題集    去に   過やった問題集 6  手作業で入力する     で    手作業入力する といったように Cのような結果を抽出することはできますか? (C列でなくてももちろんかまいません) A列はもっと長いものが多く B列は2~4文字です。 あまり難しいことはわからないので、とんでもなく無理な話をしているかもしれませんが もしできるのであればありがたいです。よろしくお願いします。

  • セルを参照し、複数の列の文字を返す方法

    Sheet1のA1に「あいうえお」と入力します。 その文字をSheet2のA1から参照して、Sheet1のB1のセルに、Sheet2のB1~D1の列の文字を返したいです。 vlokkupでは、1つの列しか返しませんが、私は、複数の列の文字を返したいので、 Sheet1に「Sheet1のA1とSheet2のA1が同じならば、Sheet2のB1~D1までのデータを返す(列数が少ないので、CONCATENATEではなく&にしました)」 =if(a1=sheet2!a1,sheet2!b2&sheet2!C2&sheet2!D2,"") これを、ネストして、B1=sheet2!B1~としました。 しかし、ネストに限界があるのをウッカリ忘れてしまい・・・・ 他の関数で代用はできませんでしょうか? VLOOKUPは、1つの列しか返せず、困っております。

  • EXCEL2000にて1列内の範囲にてシート間ソート?(LOOKUP?)

    EXCELの関数ではまっています。 1列内の範囲(B2:B7)間に入力された数値(未ソート(3,6,2,8,1,4)を、別のセルで対象数値(2)が有ったら、その数値(2)を表示したいのですが、Lookup系を使ってどうもうまくいきません。  ABCDEF… ABACAD… ――――――――――――――――― 1  2 3 HB    1 2H  3 6 4H    2 4B ←ここの関数を 4 2 4B    3 HB  =LOOKUP(2,B2:B10,B2:B10)  5 8 2B    4 3B   とすると返り値が『1』になってしまいます。 6 1 2H         (他にH,VLOOKUPも試したのですがどうも・・・)  7 4 3B    6 4H 8                  8 2B         希望としては上記のような形にしたいのですがうまくいきません 正確なLOOKUPの使用方法または別の適切な関数が有ったら教えてください。          

  • Excel関数を解説して教えて下さい。

    どなたか教えて下さい。 Excelで特定の列の中で一定の範囲が指定されているセルの任意のセルに値を入力し、その範囲の中に入力された最終行 (最下段) の値を取り出すために下記のようにExcelのLookup関数を使用して必要とする値を取り出しています。 =Lookup (10~10,特定の列の最上段のセル:特定の列の最下段のセル) これで間違いなく特定の列で定められた範囲に記載された値の最下段の値を取り出せますが、 10~10と設定する意味と、どうして最下段の値が取り出せるのか、この関数を解説して教えて下さい。 また、この場合の最上段の値を取り出す際の関数も教えて下さるようお願いいたします。

  • EXCELで文字列を結合して数式を処理したい

    LOOKUP関数を以下のように複数セルにわけて文字列として配置します。 A1:LOOKUP(AL17,'C:\Documents and Settings\My Documents\ファイルA.xls] A2:シート1 A3:'!$A$3:$A$200,'C:\Documents andSettings\My Documents\.xls] A2:シート1 A4:'!$B$3:$B$200) A1からA4までを文字列結合してA5に表示します。 A5:=A1&A2&A3&A2&A4 その上で、A5の数式をA6にて処理したいのですが、うまくいきません。 A6:indirect(A5) のように書いてもエラーとなります。 どなたか打開策を教えてください! #今回はlookup関数の参照するシート名を動的に表現したかったため、   わけて記述し、文字列結合するという形式にしています。   (ここでいうA2がシート名)

専門家に質問してみよう