• ベストアンサー

エクセルデータ抽出について

月ごと実績データから指定月のみデータを抽出する方法を教えてください。 サンプルを添付しますのでよろしくお願いします。

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

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

 まず、B10セルに次の様な関数を入力して下さい。 =IF(B$9="","",IF(ISERROR(1/(HLOOKUP(B$9,$3:4,ROWS($9:10),FALSE)<>"")),"",HLOOKUP(B$9,$3:4,ROWS($9:10),FALSE))) そしてB10セルをコピーして、B11~B13のセル範囲に貼り付けて下さい。  以上です。

noname#248032
質問者

お礼

ありがとうございました。 いろんな表で試してみたいと思います。

その他の回答 (3)

  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.4

此方は如何でしょうか? セルB10に書き込み、 縦横にフィルしてください =IFERROR(offset($A$3,match(true(),index($A10=$A$ 4:$A$7,,),0),match(true(),index(B$9=$b$3:$e$3,,),0 ),1,1),"") データの扱い量が違うので index文よりoffset文の方が 僅かに早い かも,知れません 今回は エクセル2007以降を 対象に書きました お使いのものが 2003以前の ものだった場合 其の旨 お知らせ頂ける と、助かります 解説 & 豆知識 エクセルでは実はfail<TRUE なのです また、 定数配列内の文字列データの場合 演算を重ねていく内 同じか否かの評価に 文字列の先頭しか 評価対象にしない そんな ものがあります 配列数式の文字列演算結果を あてにし比較すると 危険ですね 加えて match文では降順または昇順 此に並んでいる必要がある の、ですが 同時に 検索がヒットした時点で 検索を終了する と、いう仕様も あります 通常 trueとfailが混在している ブール値の羅列は 降順から昇順、昇順から降順、 こう切り替わる場所か混在し 同時に trueで始まる場合とfailで始まる場合が ある訳ですが 一度trueが見つかれば その後にfailがあっても trueを見つけた時点で 検索が終了するため 検索時に 昇順から降順へ 切り替わる場所にまで 差し掛からず 昇順と降順の混在に エクセルは気づきません なので 一見ダメそうな此の式が 正しく動作する と、言う訳です 但し match文、small文、large文、MAX文、MIN文、 等は、 配列数式演算結果を 取り扱いデータ対象として 扱えません ので、 擬似的でも定数配列に 置き換える必要が 出てきます 其の任を果たしているのが index文です 不必要に見えて 外してしまうと動かなくなる 何故? と、 なりがち なのですが こういう働きが ある訳です

noname#248032
質問者

お礼

ありがとうございました。 いろいろ試してみたいと思います。

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.3

基本的にはVLOOKUP関数で抽出します。 目的の列(月)を変数化すればB7の値を変更するとデータ列が追従できるようにMATCH関数で列番号を指定します。 B8=IFERROR(VLOOKUP(A8,$A$1:$E$5,MATCH(B$7,A$1:E$1),FALSE),"") IFERROR関数はExcel 2007以降から組み込まれていますので、Excel 2003以前のときはエラー時の処理に別の関数で対応する必要があります。 B8をB11までコピーした結果が貼付画像です。

noname#248032
質問者

お礼

ありがとうございました。 助かりました。

  • msMike
  • ベストアンサー率20% (364/1804)
回答No.2

B10: =INDEX(B$4:E$7,MATCH(A10,A$4:A$7,0),MATCH(B$9,B$3:E$3,0))

noname#248032
質問者

お礼

ありがとうございました。 助かりました。

関連するQ&A