- 締切済み
Excelの関数について教えてください。
前にも同じような質問をしたのですが、よく理解できなかったので、もう一度質問させていただきます。 まず、A列に1~10まで入力します。次にB列に11~20まで入力します。同様にC列に21~30まで入力します。そして、セルE3に2、セルE5に12に入力します。 それから、セルE3の値をA列から検索し、セルE5の値をB列から検索し、その重なったB行のC列の値を求めたいのです。ここでは22になります。 自分なりに考えてみましたが、 =IF(MATCH(F3,A:A)=MATCH(F5,B:B),INDEX(A2:C10,MATCH(F3,A:A)=MATCH(F5,B:B),C:C,"")) ではエラーがでてしまいます。 いくら考えてもわかりません。 どなたか教えてください。よろしくお願いします。
- みんなの回答 (7)
- 専門家の回答
みんなの回答
- taka_tetsu
- ベストアンサー率65% (1020/1553)
>(同じ列に重複する数字はありますが、A列とB列の組み合わせで同じ数はありません)、 どこに重複する数字があるのでしょうか? A行もB行もC行もすべてばらばらの値が入っているようにしか見えないのですが。 >E3のセルに3、E5のセルに13がはいってたとすると、その重なった3行のC列の値23を求めたいんです。 ですから、「重なった」の意味がわからないのですが・・・ 具体的に質問します。 E3のセルに2、E5のセルに7が入っていたら、C列から期待する取得したい値は何ですか? >あと、1次元と2次元の意味がよくわかりません。すいません。 1次元・・・何番目とかというように1箇所の指定で位置を特定可能 2次元・・・何列目の何行目とかいうように2箇所の指定で位置を特定可能 lovekouheiさんは、A列の値とB列の2つの値を用いて、C列の中にある値を得ようとしてますよね。 C列の値というのは、すでに「C列」という指定があるので、何行目という1つの情報だけで値を特定可能なはずなのですが。
- taisuke555
- ベストアンサー率55% (132/236)
ちょっと失礼します。 #2さんのお礼の所に >同じ列に重複する数字はありますが と書いてありますが、重複する値がある場合、 この式は使えないのではないでしょうか? >A列とB列の組み合わせで同じ数はありません という事なので、 =SUMPRODUCT((A1:A10=E2)*(B1:B10=E4),C1:C10) のような式はどうでしょうか? この式は、A列がE2でB列がE4になる行のC列の値を合計します。 ですから、質問の内容とは、若干異なりますが、 組み合わせで重複する物が無ければ、1つの値を持ってきます。 ・A:Aのように、A列全体を指定することはできないと思います。 ・A列、B列は文字列でも構いませんが、C列は数値のみです。 間違っていたらすみません。
- handomari
- ベストアンサー率47% (83/174)
こんにちは Excel2002で確認しました。 常にC列の値を求めるのであれば、以下の式でいいと思います。 =IF(MATCH(E3,A:A)=MATCH(E5,B:B),INDEX(A:C,MATCH(E3,A:A),3),"") どうでしょうか?
- hinebot
- ベストアンサー率37% (1123/2963)
#1です。 >エラー値は「#REF!」と出てしまいました。 「#REF!」のエラーが出るということは、数式で参照しているセル(番地)がおかしいことを意味します。(ありえないセルを参照しているとか) なので、数式に入れているセルやセル範囲が正しいか確認してください。 >あと、INDEXの行指定で等式【MATCH(F3,A:A)=MATCH(F5,B:B)】を入れてしまっているのでうまく行かないと思います。 ここをちゃんと直していないとか。 それくらいしか思いつかないですね。
- hinebot
- ベストアンサー率37% (1123/2963)
#1です。 だめですか? 一応試してから回答したんですけどね・・ >やってみたのですが、エラー値がでてしまいました;; そのエラー値を教えて貰えますか? (#N/Aとか、#REF!とか)
- taka_tetsu
- ベストアンサー率65% (1020/1553)
まず、MATCHで検索してるのがF3とかF5になってるのは気のせい? E3とかE5ではなくて? >その重なったB行のC列の値 重なるとは?なぜいきなりBが行になってしまうのですか? A,B,C ------ 1,11,21 2,12,22 3,13,23 4,14,24 5,15,25 6,16,26 7,17,27 8,18,28 9,19,29 10,20,30 セルの内容はこういうことですよね? E3の値が2なので、A行の求める値は2、 E5の値が12なのでB行の求める値は12 まではいいんですけど、C列の値を求める方法が理解できないのですが。 どうやったら22になるのですか? 求める値の集合が、行と列を持つ2次元の表になっているのであればわからないこともないのですが・・・ どう見ても、Cって1次元ですよね?
お礼
ご回答ありがとうございます。 説明が間違っていたみたいですいません。 考えた式は =IF(MATCH(E3,A:A)=MATCH(E5,B:B),INDEX(A:C,MATCH(E3,A:A)=MATCH(E5,B:B),C:C,"") の間違いです。 A,B,C ------ 1行 1,11,21 2行 2,12,22 3行 3,13,23 4行 4,14,24 5行 5,15,25 6行 6,16,26 7行 7,17,27 8行 8,18,28 9行 9,19,29 10行 10,20,30 になっていたとすると(同じ列に重複する数字はありますが、A列とB列の組み合わせで同じ数はありません)、 E3のセルに3、E5のセルに13がはいってたとすると、その重なった3行のC列の値23を求めたいんです。 あと、1次元と2次元の意味がよくわかりません。すいません。
- hinebot
- ベストアンサー率37% (1123/2963)
まず、E3あるいはE5の値を検索するのに、F3(F5)になってます。 あと、INDEXの行指定で等式【MATCH(F3,A:A)=MATCH(F5,B:B)】を入れてしまっているのでうまく行かないと思います。 また、最後の閉じカッコの位置もおかしいです。 最後にINDEXの最初の引数が配列になってますので、INDEX関数が返す結果も配列になってしまいます。C列の値だけ求めればいいので、ここもC列だけ指定すればいいと思われます。 ということで =IF(MATCH($E3,A:A)=MATCH($E5,B:B),INDEX(C$1:C$10,MATCH($E3,A:A),C:C),"") で良いのではないでしょうか。 ($はコピペ-ストしたときに変化しないようにするためのおまじないです。)
お礼
ご回答ありがとうございます。 やってみたのですが、エラー値がでてしまいました;; いろいろ変えてやってみたのですが、やはりだめでした。 何か方法はないでしょうか・・・
お礼
ご回答ありがとうございます。 エラー値は「#REF!」と出てしまいました。 式を貼り付ける場所は特定の場所じゃないといけないのでしょうか・・・?