はじめての親子ハイキングに挑戦!! >>

こんばんは。
いろいろとWEBで調べたのですが、よい方法が見当たりませんでしたのでとぴにより質問をさせて頂きます。

{シート1}
ABCD
生徒ID算数国語社会
A001
A002
A003
...


{シート2}
ABCD
生徒ID教科点数
A001算数10
A001国語15
A001社会20
A002算数12
A002国語18
A002社会22
...

やりたいこと。
{シート1}の生徒A001の算数のセルに{シート2}の2つの条件(A001,算数)にあう点数を返したい。

できれば関数または関数の組合せで行いたい。

難しい場合、達成できる方法をお教え頂きたく存じます。

どうぞ宜しくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

質問例と少し違うが、3日たって、締め切られそうなので、とりあえず上げます。


中間列等は使っていません。
私の配列数式の回答の中でも新機軸の物です。
3条件にも増やせそうです。
山田ー算数等のデータが複数出現しないこと。
例データ
Sheet1のA1:C13
大田理科11
坂上算数13
山田算数23
音羽算数26
山田国語35
江田算数36
今田算数44
木島算数17
坂上国語67
音羽国語45
江田国語89
今田国語90
木島国語36
Sheet2の
A列と第1行に
氏名 算数国語
山田
坂上
江田
音羽
木島
今田

Sheet2のB2に
=INDEX(Sheet1!$A$1:$C$13,MAX(IF((Sheet1!A$1:A$13=$A2)*(Sheet1!B$1:B$13=$B$1),ROW(Sheet1!A$1:A$13),0)),3)
と入れて、SHIFT+CTRL+ENTERを同時に押す(配列数式)
B2の右下に+ハンドルを出しB7まで引っ張る。
C2に
=INDEX(Sheet1!$A$1:$C$13,MAX(IF((Sheet1!A$1:A$13=$A2)*(Sheet1!B$1:B$13=$C$1),ROW(Sheet1!A$1:A$13),0)),3)
と入れて、SHIFT+CTRL+ENTERを同時に押す(配列数式)
C2の右下に+ハンドルを出しC7まで引っ張る。
結果 Sheet2のA1:C7に
氏名算数国語
山田2335
坂上1367
江田3689
音羽2645
木島1736
今田4490
B2の式を複写してC2の式が出せそうですが、とりあえず急いで上げます。
    • good
    • 0

◆Sheet1のB2の式



B2=SUMPRODUCT((Sheet2!$A$2:$A$10=$A2)*(Sheet2!$B$2:$B$10=B$1)*Sheet2!$C$2:$C$10)

★右と下にコピー
    • good
    • 0
この回答へのお礼

コメントありがとうございます。
早速数式を入れて見ましたらできました。
とても役に立ちました。
ありがとうございました。

お礼日時:2007/01/17 10:30

他にもっと良い方法があるかもしれませんが、


とりあえずこんな方法ではいかがでしょう。

シート2でD2セルに
=A2&B2
と入れてD3以降にコピー。
(これでD2には「A001算数」、D3は「A001国語」・・・と表示されるはず。)
見た目が良くないのでD列は非表示、または文字色を白にするなどしておいて下さい。

シート1の生徒A001の算数のセルには
=OFFSET(シート2!$C$1,MATCH($A2&B$1,シート2!$D:$D,0)-1,0)
他の教科、他の生徒のセルにもこの式をコピー。
「シート2」の部分はシート名に合わせて変えてくださいね。

これでいけるのではないかと思います。
※シート1とシート2で、IDや教科の文字列がちょっとでも違っていると#N/Aエラーになります。
  例えば「A001」ではなく「A001 」(最後にスペースが入っている)など、
  一見同じに見えてもそこはエラーになってしまいますのでご注意下さい。
    • good
    • 0
この回答へのお礼

ありがとうございました。
頂戴しましたアドバイスはとても参考になりました。
今後ともどうぞ宜しくお願い致します。

お礼日時:2007/01/17 10:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング