- ベストアンサー
エクセルで個人表からの抜き出し
いつもありがとうございます。 同じような質問があったはずですが、見つけられず質問しました。 シート1に個人表があります。 Aに個人No.、Bに氏名 C~月(1月~12月) C1・D1はセル結合で”1月”、E1・F1もセル結合で”2月”、続いてG1・H1は”3月”・・・と12月までつづきます。 2行目以降より明細が入り、C2は1月の金額、D2は1月のマイナスの金額が入っています。 マイナスの金額は入っているときと、入っていないときがあります。 A B C D E F G H I 1 NO. 氏名 1月 2月 3月 2 1 ああ 300 -10 400 -10 400 500 ・・・・・ 3 2 いい 200 -15 600 200 -10 300 ・・・・・ 4 3 うう 500 -10 900 -18 100 -5 700 ・・・・・ シート2にNO.と月を入力すえれば、氏名と数字がでてくるようにしたいのですが、できますでしょうか 例)A1に”1” の B1に”2”(2月のこと) A2に氏名、A3に2月の金額、A4に2月のマイナスの金額(無いときは空白) A B 1 1 2 2 ああ 3 400 4 -10
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
範囲の左端列から行を検索して来るにはVLOOKUP関数を使います。 氏名だけならA~B列のみでいいので、 =VLOOKUP(A1,Sheet1!A1:B4,2) で済むわけです。(範囲は自分で修正して下さい) 金額は、例えば =VLOOKUP(A1,範囲,B1*2+1) (プラス) =VLOOKUP(A1,範囲,B1*2+2) (マイナス) もし、HLOOKUPのように列番号も月(個人表も数値で入っているとした場合)から検索して来たいなら、INDEX(他にOFFSET)とMATCHを組み合わせる方法があります。 =INDEX(Sheet1!A1:Z4,MATCH(A1,Sheet1!A1:A4,0),MATCH(B1,Sheet1!A1:Z1,0)) (範囲は自分で修正して下さい) 無い時は空白というのは、 =IF(●="","",●) の式の●に上記の式を代入してあげればできます。が、「ゼロ値のセルにゼロを表示する」設定をオフにした方がスマートかもしれません。
その他の回答 (2)
- zap35
- ベストアンサー率44% (1383/3079)
できますよ ちょっと面倒なのはシート1の月が全角で表記されていて、シート2は半角で入力されている点でしょうか。 エクセルでは半角文字と、全角文字は別の意味になりますから、質問も実際のシートの通りに表記しないと回答を誤ることがあります。 (シート1の数値が全角文字で表記されているのは誤りと解釈しました) シート2の各セルに以下の式を入力してください A2セル =INDEX(Sheet1!B:B,MATCH($A$1,Sheet1!A:A,0)) A3セル =OFFSET(Sheet1!$A$1,MATCH($A$1,Sheet1!A:A,0)-1,MATCH(JIS($B$1)&"月",Sheet1!$1:$1,0)-1) A4セル =OFFSET(Sheet1!$A$1,MATCH($A$1,Sheet1!A:A,0)-1,MATCH(JIS($B$1)&"月",Sheet1!$1:$1,0))
お礼
いつもありがとうございます。 私のミスで数字は全て半角でした。 また上記の問題がでてくれば、上記の関数をつかわせていただきます。
- ookami1969
- ベストアンサー率14% (137/953)
多分 あなた 説明不足ですよね? 何が難しいのでしょうか? 普通に「VLOOKUP」とか「IF」を組み合わせればOKだと思いますが それで 出来ないとなると説明不足だと思います。 シート2の「月」は予め入力されているのであれば そこに必要な「VLOOKUP」を入れれば良いだけですので。
お礼
説明不足で大変失礼しました。 シート2の月とNo.は常に変化します。 以後、気をつけたいと思います。 ありがとうございました。
お礼
ありがとうございます。 =INDEX(Sheet1!A1:Z4,MATCH(A1,Sheet1!A1:A4,0),MATCH(B1,Sheet1!A1:Z1,0))の方法で解決いたしました!! 本当にありがとうございました。