プロが教えるわが家の防犯対策術!

いつもお世話になっております

エクセルで、経済指標のデータを入力しています

それをグラフにしているのですが
毎月更新されるため、最新の12件(直近一年)だけを抽出し
グラフにしたいと考えています



   A    B   C    
列1 2007/07 2007/08 2007/09・・・・・2008/05 2008/06
列2 数字   数字   数字 ・・・・ 数字  数字

2008年6月時点では、この数字でグラフが作成されるが
2008年7月の数値を入力すると

   A    B   C   
列1 2007/08 2007/09 2007/10・・・・・2008/06 2008/07
列2 数字   数字   数字 ・・・・ 数字  数字

のデータを基にしたグラフが作成される


http://oshiete1.goo.ne.jp/qa645288.html
のページを参考にしようとしたのですが
12件分なのでうまくいきませんでした。




よろしくお願いします
わかりにくかったらすみません・・・

A 回答 (9件)

その下のO3に


=HLOOKUP(O2,経済指標!1:1,経済指標!2:2,0)

=HLOOKUP(O2,経済指標!1:2,2,FALSE)
では
検索値 O2
範囲 1行目と2行目で1行目を検索(常に一番上の行を検索します)
列番号 2 指定した範囲で2行目を表示します。
    • good
    • 1
この回答へのお礼

できましたーーー( ゜∀゜)
すごく嬉しいです
何度も回答本当にありがとうございました

お礼日時:2008/07/29 15:36

>=HLOOKUP(A3,1:2,2)のほうが・・・


>エラーが出るので
>ヘルプを見ながらやってみたのですが、ダメでした
例えば 1行目のA列に 日付 とか項目があったりするとエラーに
なると思います。
=HLOOKUP(A3,1:2,2,FALSE)
ではどうでしょうか。
引数 FALSE で昇順に並んでいなくても一致した列を検索します。
   TUUE(或いは省いた時)は昇順に並んでいて検索値がなければ
   未満の値で戻ってきます.
    • good
    • 0
この回答へのお礼

なんども回答ありがとうございます

そのまま入れるとエラーがでるので少しかえました

まず、始めの式を
=LARGE(経済指標!1:1,14-COLUMN(B1))
でセルO2から右フィルしています

その下のO3に
=HLOOKUP(O2,経済指標!1:1,経済指標!2:2,0)
を入れました

結果は#VALUE

O2のデータと同じものを経済指標の行番号1からさがして
経済指標の行番号2のデータと同じものを返す
のつもりで、式を入力したのですが、間違っておりますでしょうか?



素直に、教えていただいたとおり、表を作れば早いのですが
今後追加でに入力する人間が、私ではないため
データを追加入力しやすいことが、優先されます・・・
そのため、非常にややこしくて大変申し訳ございません
よろしくお願いします

お礼日時:2008/07/29 10:44

No2~6です


2007/07 が文字で入力されていれば使えません。
文字の場合はどれが大きいか判断できませんので。

2007/07 が日付で 
2007/7/1とか入っていて
書式が yyyy/mm で表示 が前提です。
    • good
    • 0
この回答へのお礼

ありがとうございます

書式をユーザー定義にしていたのを、日付にしたら
こちらの式は入りました。

お礼日時:2008/07/28 10:58

失礼しました。

訂正
>LARGE(経済指標!1:1,13-COLUMN(B1))
>は 経済指標のシートの1行目の大きいほうから9番目
>日付が9つもなければ #NUM!がでますが

=LARGE(経済指標!1:1,13-COLUMN(B1))
は 経済指標のシートの1行目の大きいほうから11番目
日付が11もなければ #NUM!がでますが
でした。
    • good
    • 0

ん~なぜでしょう。


COLUMN(B1)は B1の列番号ですので 2を返します。
COLUMN(A1)は 1
COLUMN(C1)は 3

13-COLUMN(B1)は 13-2 で 11です。
=LARGE(経済指標!1:1,13-COLUMN(B1))
は 経済指標のシートの1行目の大きいほうから9番目
日付が9つもなければ #NUM!がでますが

=LARGE(経済指標!1:1,1) とか
=LARGE(経済指標!1:1,2) とかも#NUM! ですか?
    • good
    • 0
この回答へのお礼

御礼が遅くなって申し訳ありません

こちらの関数はうまく入りました

=HLOOKUP(A3,1:2,2)のほうが・・・
エラーが出るので
ヘルプを見ながらやってみたのですが、ダメでした

A3は経済指標シートのA3(データ行先頭)で入れてみましたが・・・間違っているのでしょうか

お礼日時:2008/07/28 10:56

>右フィルって何でしょうか・・・


式を右方向へコピイしてください の事です。
セルの右下にマウスを持っていくと 表示が + になりますので
そのままマウスを押しながら右へ移動します。

=LARGE(1:1,13-COLUMN(A1))関数は
=LARGE(シート1!1:1,12) 1行目の数値で大きいほうから12番目
=LARGE(シート1!1:1,11) 1行目の数値で大きいほうから11番目
・・・
とすると希望の年月が出ると思ったのですが?
もちろん1行目が シリアル値で 入れてあるとしてです。
文字列ではダメですが。
もし結果が 3万なんととか数値ででたら セルの書式を日付にしてください。

この回答への補足

なんとなく、説明が悪かった気がするので
補足させていただきます



   A    B   C    DEFGHIJ     K      L
列1 2007/07 2007/08 2007/09・・・・・・・2008/05 2008/06
列2 数字   数字   数字 ・・・・   数字  数字

2008年6月時点では、この数字でグラフが作成されるが
2008年7月の数値を入力すると

   B    C   D    EFGHIJK     L    M
列1 2007/08 2007/09 2007/10・・・・・・・2008/06 2008/07
列2 数字   数字   数字 ・・・・   数字  数字

のデータを基にしたグラフが作成される


この説明のほうが正確です
わかりにくくて申し訳ありません

補足日時:2008/07/25 17:29
    • good
    • 0
この回答へのお礼

再度の回答ありがとうございます

やってみたところ、#NUM!とでてしまいます。

シートA1には、項目名が入っているのでB1に変えてみましたが
それでも同じ結果でした。
=LARGE(経済指標!1:1,13-COLUMN(B1))

なにが悪いのでしょうか・・・・

お礼日時:2008/07/25 17:19

#1です。


すみません。#1のはグラフの項目に直接セットする場合でした。
12ヶ月分抽出するなら
Sheet2
A1=INDEX(Sheet1!$1:$2,ROW(),MAX(COUNTA(Sheet1!$2:$2),12)-12+COLUMN())
でこの式をL2までコピーしてください。
※コピー後に1行目は日付、2行目は数値に表示形式を変更
    • good
    • 0
この回答へのお礼

再度の回答ありがとうございます

ROW(),COLUMN())のところでエラーが発生してしまいますが

ここにはどの数字を入れればいいのでしょうか・・・

お礼日時:2008/07/25 17:23

  A    B   C    


列1 2007/07 2007/08 2007/09・・・・・2008/05 2008/06
列2 数字   数字   数字 ・・・・ 数字  数字
列3 =LARGE(1:1,13-COLUMN(A1)) 右フィル
列4 =HLOOKUP(A3,1:2,2) 右フィル
で3~4列目に希望が出ませんか?
    • good
    • 0
この回答へのお礼

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

すみません
右フィルって何でしょうか・・・
そのまま入れると、文字として認識されてしまうのですが・・・


また、データはシート1。グラフと抽出データはシート2にしたいのですが
どの部分がデータ範囲なのでしょうか

初歩的なことですが、あわせて教えていただければ嬉しいです

お礼日時:2008/07/25 13:55

数字にブランク(未入力)がないなら


=INDIRECT(INDEX(2:2,1,MAX(COUNTA(2:2),12)-11):INDEX(2:2,1,COUNTA(2:2)))
    • good
    • 0
この回答へのお礼

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

シートを替えて作ったせいかエラーになってしまいました

データはシート1。グラフと抽出データはシート2にしたいのですが
どの部分がデータ範囲なのでしょうか

初歩的な質問で申し訳ないのですが、教えていただければうれしいです

お礼日時:2008/07/25 13:59

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