• ベストアンサー

【Excel】関数を教えて下さい

添付画像のセルC3~C5に左表E列の「記号」を出したい場合、どのような関数を使用すればよろしいのでしょうか? VLOOKUPのような関数とは思うのですが・・・

  • KO1014
  • お礼率97% (536/551)

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

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

ゼロを探す必要があるので,そこだけ一工夫が必要ですね。 C3: =IF(COUNTIF($F$3:$H$7,B3&"")=1,INDEX(E:E,SUMPRODUCT(($F$3:$H$7&""=B3&"")*ROW($F$3:$H$7))),"") 以下コピー #ただし対照表は生データで記入している場合。

KO1014
質問者

お礼

ご回答ありがとうございました。 できました!! しかし・・・まさか4つの関数を使用しなければならないとは思ってもみませんでした。「COUNTIF」「INDEX」「SUMPRODUCT」「ROW」どれも使用したことのない関数なので、どのような役割をするのはまったく理解できません。 ここまで複雑な関数をパッと思い浮かべることができるまでの知識を身に付ける事は不可能ですが、もっと数多くの関数を使える努力はしようと思います。

その他の回答 (5)

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

 回答番号:ANo.5です。  申し訳御座いません、先程の回答の数式中に一部、入力の際の打ち間違いが御座いました。 【誤】 =IF(OR($B3="",COUNTIF($F$3:$H$7)=0),"",INDEX($E:$E,SUMPRODUCT(ROW($E$3:$E$7)*(COUNTIF(OFFSET($E$2,ROW($E$3:$E$7)-ROW($E$2),1,1,COLUMNS($F:$2)),$B3)=1)))) 【正】 =IF(OR($B3="",COUNTIF($F$3:$H$7)=0),"",INDEX($E:$E,SUMPRODUCT(ROW($E$3:$E$7)*(COUNTIF(OFFSET($E$2,ROW($E$3:$E$7)-ROW($E$2),1,1,COLUMNS($F:$H)),$B3)=1))))

KO1014
質問者

お礼

再度のご回答ありがとうございました。 No.1・No.2の方と同じような数式ですが、新たな関数が2つ出てきましたね。 ですが、直していただいた数式も「足りない引数が入力されています」というエラーが出て貼り付けることができませんでした。 本当はご回答いただいた方全員をベストアンサーに選びたいのですが、ベストアンサーは回答の早かったNo.1の方にさせていただきます。申し訳ありません。

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

 まず、C3セルに次の数式を入力して下さい。 =IF(OR($B3="",COUNTIF($F$3:$H$7)=0),"",INDEX($E:$E,SUMPRODUCT(ROW($E$3:$E$7)*(COUNTIF(OFFSET($E$2,ROW($E$3:$E$7)-ROW($E$2),1,1,COLUMNS($F:$2)),$B3)=1))))  次に、C3セルをコピーして、C4~C5に貼り付けて下さい。  以上です。

KO1014
質問者

お礼

ご回答ありがとうございました。

  • root_16
  • ベストアンサー率32% (674/2096)
回答No.4

0 E 1 A 2 B 3 A 4 B 5 A 6 C 7 C 8 D 9 D 検索用にはこういう表を用意するのが 物事を簡単にして楽する方法です。 VLOOKUPでできます。

KO1014
質問者

お礼

ご回答ありがとうございました。 当初はご回答のようなやり方で運用していたのですが、思った以上に記号・数字が増えてしまいかなりの行数になってしまいました。このファイルは共有で使用しているためAccessに変更することもできません。 記号・数字も画像のような簡単なものではなく、実際はもっと複雑で桁数が多いのです。

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.3

数字が最大で何列になるのか解りませんので、3列ぐらいでしたら、 H列,I列にVLOOKUP用のデータ表をコピー&ペーストで作って、C3セル=VLOOKUP(B3,I:J,2,FALSE)にして、 C3セル=VLOOKUP(B3,I:J,2,FALSE)にしてはいかがでしょう。 A B C D E F G H I 数字 記号 記号 数字1 数字2 数字3 数字 記号 1 A A 1 3 5 1 A 7 C B 2 4 2 B 0 E C 6 7 6 C D 8 8 8 D E 0 0 E 3 A 4 B 7 C 9 D 5 A

KO1014
質問者

お礼

ご回答ありがとうございました。 う~ん・・・理解できなくて申し訳ありません。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

一例です。 =IF(B3<>"",INDEX($E$3:$E$7,SUMPRODUCT(($F$3:$H$7<>"")*($F$3:$H$7=B3)*ROW($F$3:$F$7))-2),"")を入力、下方向にコピー

KO1014
質問者

お礼

ご回答ありがとうございました。 できました!! No.1の方と同じような数式ですね。 本当はご回答いただいた方全員をベストアンサーに選びたいのですが、ベストアンサーは回答の早かったNo.1の方にさせていただきます。申し訳ありません。

関連するQ&A

  • EXCEL関数についての質問です。

    EXCEL(2003)についての質問です。 関数にて、もし上行(※(1))のセルが空白の場合は空白、 そうでない場合は、2列隣(別シート)(※(2))のセルを返す。 ※(1)セル結合にて行を結合しています。 ※(2)同じ式(関数)ではじめのセル(結合されている)は、 A1次のセルはC1、E1、G1等1列飛ばしで参照。 としたいのですが、可能でしょうか? ちなみに添付画像のように結合行は可変します。 教えていただけると大変助かります。 例)    A            A    B    C    D    E    F    G 1 青森          青森       大阪       熊本 2 大阪 3 熊本   シート1                       シート2 宜しくお願い致します。

  • ExcelでのVLOOKUP関数について

    キー1を1000倍したうえで完全一致のVLOOKUP関数を使うと#N/Aエラーが発生します。 表示上は同じように見えますが内部的に異なる値となっているのでしょうか? 試しにエラー行に対して、キーとターゲットとなる当該セルを「=」でつないで確認しても「TRUE」となります。 添付画像は、 検索先としてA列に基準キーを130.168~130.192(step 0.001)で各行へ入力し、B列はA列を1000倍、C列はB列をROUND関数で整数値に丸めたものをキーとしました。 D列にVLOOKUPで参照する値を入力し、E列以降で以下の異なるパターンで値を参照しています。 (1)【E・F列】 ・E列に整数値をキーとして130168~130192(step 1)で入力。 ・E列をキーとしてB~D列のVLOOKUP関数としています。   『=VLOOKUP(E3,B:D,3,FALSE)』 (2)【G・H列】 ・G列にE列/100をキーとして計算。 ・G列をキーとしてA~D列のVLOOKUP関数としています。   『=VLOOKUP(G3,A:D,4,FALSE)』 (3)【I列】 ・E列をキーとしてC~D列のVLOOKUP関数としています。   『=VLOOKUP(E3,C:D,2,FALSE)』 シートを複製し、キーの入力範囲を0.001~0.025(E列は1~25)にした場合はエラーがでませんでした。 その他の確認としてはTEXT、JIS、ASCなどを組み合わせて文字列としたキー同士のVLOOKUPではエラーにならず値を参照できています。

  • Excel関数について(lookupなど)

    A列とB列にそれぞれ商品コード(A列)、数値(B列)が入っているリストがあります。(コードと数値はそれぞれ関係があり、このコードにはこの数値、というルールがある) 1)セルD4にそのコードが入ったら、セルE10に該当する数値が入るようにしたいんです。 2)但し、セルD4に入るコードは、リストにはないコードも存在する。その場合、セルE10には何も表示させたくない(エラーも非表示にしたい) という場合、どういう関数を使えばいいのでしょうか。 1)まではLOOKUPかVLOOKUPでできるようなのですが、2)の場合の表示がうまくいきません。 説明が下手で申し訳ないのですが、どなたかお分かりになるかた教えてください。

  • VLOOKUP関数の範囲をセルで指定したいと思っています。

    VLOOKUP関数の範囲をセルで指定したいと思っています。 B1:参照シート名(VLOOKUP関数で使用する範囲があるシート) C2:範囲の開始位置 E2:範囲の終了位置 B3:G3:列番号(B3の値は、B6:B8の範囲で使用する列番号、 D3の値は、D6:D8の範囲で使用する列番号) これらのセルに入力された情報をもとにB6:G8の範囲にVLOOKUP関数を 反映させたいと思っています。 例えば、 B1に参照シート名「2ケタ」 C2にVLOOKUP関数の範囲の開始位置「A5」 E2にVLOOKUP関数の範囲の終了位置「G7」 B3に範囲の列番号「2」がある場合 B6に「=VLOOKUP(A6,'2ケタ'!A5:G7,2,0)の関数を入力。 B2に参照シート名「3ケタ」 C5にVLOOKUP関数の範囲の開始位置「B5」 E2にVLOOKUP関数の範囲の終了位置「H7」 C3に範囲の列番号「3」がある場合 C6に「=VLOOKUP(A6,'3ケタ'!B5:H7,3,0)の関数を入力。 といった感じです。 現在、B6に「=VLOOKUP($A6,INDIRECT($B$1&"!a5:g7"),INDIRECT("$b$3"),0)」と 関数を入力して、VLOOKUP関数の「範囲の参照シート名」と「列番号」の情報は セルから持ってくることができました。 しかし、「a5:g7」という範囲だけは、INDIRECT関数をうまく入れることができません。 どのように関数を入力したら、上手くいくのか、教えていただけないでしょうか。

  • 【Excel】この場合どの関数を使えばよいですか?

    Excelについて質問です。 添付画像の表のE列の対応可否に関数を入れたいです。 E列に入る値は3つです。 以下の条件の場合に3つの値のいずれかが自動的に入る関数を教えてください。 ・「-」…C列のステータスの値が完了の場合 ・「対応可能(色は緑)」…C列のステータスが対応中かつそのレコードより上にD列のIDと同じ値が無い場合 ・「対応不可(色は赤)」…C列のステータスが対応中かつそのレコードより上にD列のIDと同じ値がある場合 どうぞよろしくお願いいたします。

  • EXCEL2007での関数について

    すみません、関数について教えてください。 図のように、セルC(=B*0.9)からセルE(=D*0.9)の値を引いてセルFに数字を出したいのですが、 セルCが空白の場合は、セルBの数字を参照してセルFに数字を出すとゆう関数ってありますか? IF関数の勉強不足により、それが可能かどうかがわかりません。 補足:『通常は、セルC-セルE=セルF、でも、セルCが空白の場合は、セルB-セルE=セルF』といった感じの関数があれば教えてくださいm(_ _)m

  • Excel関数

    Excel2010を使用しています。 A~E列 及び H~K列の1,000行目くらいまで、1ケタから5ケタの数字を入力しています。 重複した数字がないか確認したいのですが、適した関数はありますか? (重複していた場合、指定したセルに「重複」と出るような関数など) セルは空欄の場合もあります。 ご教示いただければ幸いです。よろしくお願いします。

  • Excel関数について教えてください

    会社でほかの人が添付ファイルのような、Excel作成したのですが、赤文字にしているA列とE、F列を関数で表示するようにしたいです。 A列はVlookup用に名前を検索して名前を連続させたいです。ここでは地名を例で記入してます。 E、F列は右の線表から日付を抽出したいのですが、どなたかご教授願えませんでしょうか。

  • EXCEL関数について

    EXCEL関数について Sheet1、A1~A1000セルに「1~10」までの値がランダムに入力されております。 数字は「グループ1」、「グループ2」・・・という意味です。 B列、B1~B1000セルには「1~4」までの値がランダム入力されております。 B列については、空白のセルもあります。 Sheet2、A1~A10セルに、「1~10」までの値、「グループ1」~「グループ10」までが順に入力されております。 ここで、Sheet2、B列~E列、それぞれの1~10セルを使用し、、 それぞれの「グループ」がSheet1にて「1~4」の値をいくつずつ選んでいるか算出したいのです。 「グループ1」について、「1」のカウントはB1セル、「2」のカウントはC1のセルに返します。 同じように「グループ2」はB2~E2のセルに、「グループ3」はB3~E3のセルに値を返したいのです。 「COUNTIF」等の関数でいろいろと試してみたのですがうまく反映されません。 拙文乱文、大変恐縮ですが、ご教示頂きたく何卒宜しくお願い致します。

  • Excel関数について

    Excelの関数について困っています。 Sheet1のA列に数種類の記号が入っています。(今回はAとします。) 同シートG列に日付が入っています。(空白もあります。) A列の記号毎の合計は、COUNTIFで求められます。 お聞きしたいのは、A列で出した記号の合計が、G列の日付に何個あるか?をSheet2の「J10」セルに算出したいです。 複数の関数を組み合わせれば出来そうな気がするのですが、皆様のお知恵をお貸し下さい。

専門家に質問してみよう