【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集

http://okwave.jp/kotaeru.php3?q=2417271
で質問しましたが、ちょっと仕様が変更になったので再質問させていただきます。

成績表から点数を取り出す
成績表(A1:E7)
名前,学年,国語,数学,英語
Yamada,1,60,80,70
Yamada,2,50,75,70
Yamada,3,70,95,80
Suzuki,1,38,62,41
Suzuki,2,45,68,54
Suzuki,3,51,65,73

取り出し先
名前,Yamada,Suzuki
学年,2,1
国語,50,38
数学,75,62
英語,70,41
(名前と学年を入れると点数部分が自動的に取り出される)
取り出し先が縦方向に書く必要が出てきました。
他の作業用セルに取り出したものを移せば出来るのはわかりますが、作業用セルを使わない方法でこのように取り出せないでしょうか。

或いは「成績表」の「名前」フィールドをシート名にすることも出来ますが……

よろしくお願いします

A 回答 (2件)

例えば、成績表をシート1、抽出表をシート2とし、点数抽出セルに設定し、右、下方向にコピーして下さい。


=IF(B$1<>"",HLOOKUP($A3,Sheet1!$A$1:$E$7,SUMPRODUCT((Sheet1!$A$2:$A$7=B$1)*(Sheet1!$B$2:$B$7=B$2)*(ROW(Sheet1!$A$2:$A$7))),FALSE),"")
    • good
    • 0
この回答へのお礼

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

SUMPRODUCT……ROW……
言葉の意味は分からないがとにかくすごい自信だ……じゃなくて、
HLOOKUPを使っているのですね。
行位置の指定がなにやら複雑……

お礼日時:2006/09/21 13:07

こんにちは~♪



データベース関数ではありませんが~。。。

>成績表(A1:E7)
が、1行目は項目行でデータ範囲がA2~E7の場合です。
このシート名は、
sheet1

★別シートへ抽出します。
   A    B     C
1  名前  Yamada  Suzuki
2  学年   2     1
3  国語   50    38
4  数学   75    62
5  英語   70    41

B3:=IF(ISNA(MATCH(B$1&B$2,INDEX(Sheet1!$A$2:$A$7&Sheet1!$B$2:$B$7,),0)),"",INDEX(Sheet1!$C:$E,MATCH(B$1&B$2,INDEX(Sheet1!$A$2:$A$7&Sheet1!$B$2:$B$7,),0)+1,ROW(A1)))

右下へコピーしてください。
ご参考にどうぞ~。。。。Rinでした~♪♪
    • good
    • 0
この回答へのお礼

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

おぉ、ちゃんと抽出されます!
しかし知らない関数がたくさん……
ちょいと調べてみますね。

お礼日時:2006/09/21 11:54

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


おすすめ情報