• ベストアンサー

エクセル関数の自動表示について

自動表示についてご質問いたします。 シート1 (3月入力時)       A列  B列  C列  D列  E列  F列  G列  H列 1行目  1月   2  10  11  12  30  31  33 2行目  2月   1   2   5   8   9  10  48 3行目  3月   3   5  10  11  30  31  32 4行目  4月   こういうシート1の表があったとします。 シート1で3月入力した時点で、シート2では以下の表があったとします。        A列  B列  C列  D列  E列  F列  G列   1行目    3   5  10  11  30  31  32 と、自動で表示され。 4月(シート1)に数値を入力すれば、シート2の数値が最新数値に自動で入れ替わる・・・と、いう関数を作りたいのですが、いい関数ありますでしょうか? この場合、シート1ではB列~H列の数字の個数は固定(今回は7個)であり、毎回ランダムで数字が入力されていきます。 これをシート2の1行目、A列~G列に最新数値を毎回反映させて、表示したいのです。 どなたか、ご存知の方よろしくお願いします^^;

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

  • ベストアンサー
noname#52504
noname#52504
回答No.5

ご質問の趣旨を取り違えていましたらすみません。 こういったことをなさりたいのかなぁと思ったのですが…。 シート2!A1セルを  =INDEX(シート1!B1:B99,COUNT(シート1!B1:B99)) として右方にフィル。 まず、COUNT関数で、シート1の何行目まで入力されているかを数えます。 例えば、4月まで入力されていれば、COUNT(シート1!B1:B99)が返す値は4です。 次にINDEX関数で、対応する列の対応する位置の値を表示します。 4行目まで入力されていれば、対応する列の4行目の値を表示します。

mazdaFD3
質問者

お礼

ご返答ありがとうございます。 私のスキルではもう無理だと思っていたところ 完璧なお答えがいただけました。 そのままシートの部分を変更するだけでいけました^^

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

Sheet1のB2:F30を対象にした場合 Sheet2のB2に =IF(INDEX(Sheet1!$B$2:$F$30,ROW()-1,COLUMN()-1)="","",INDEX(Sheet1!$B$2:$F$30,ROW()-1,COLUMN()-1)) を入れて、F列まで式を複写する。 またB2:F2を第30行まで式を複写する。 ーー Sheet2のB2に、単純に =IF(Sheet1!B2="","",Sheet1!B2) で良い荷かもしれない。 あとF2,B2:F2をB30:F30まで式を複写する。 ーー Sheet2のセルは式で埋まるが、「関数式を利用」では、式が無いと、絶対、値はとってこれないから。値をSheet1から投げるイメージのものは、VBAで無いとできない。

mazdaFD3
質問者

お礼

ご回答ありがとうございます。 そして、ご返答遅れまして申し訳ございません。 教えていただきました、式で試してみましたが 私の意図した結果は得られないようです。。。 調整して、なんとか使えないかといじってはみたのですが 私のレベルでは難しかったようです^^; せっかく教えていただいたわけですが、活用できず申し訳ないです^^; もう少し、関数の勉強をし、自分自身のレベルを上げることを心がけたいと思います。

  • root16
  • ベストアンサー率31% (43/138)
回答No.3

No.2です。間違いあったんで修正します。 =INDIRECT(CONCATENATE("Sheet1!",ADDRESS(12-COUNTIF(Sheet1!A1:A12,""),1,4)))

  • root16
  • ベストアンサー率31% (43/138)
回答No.2

ADDRESS関数でいまいちシート名の指定ができなかったので、 無理やりSheet1!とつなげてINDIRECT関数で 値を見る。 でどうでしょうか。 1-12月と仮定し、参照範囲を行1~12までとしています。 空白セルをカウントしているので、参照範囲がもっと多いときは 調節してください。 =INDIRECT(CONCATENATE("Sheet1!",ADDRESS(12-COUNTIF(Sheet1!A1:A12,""),2,4)))

mazdaFD3
質問者

お礼

ご回答ありがとうございます。 そして、ご返答が遅れまして申し訳ございません。 ご指示いただきました式で何度かトライし、わからないながらも いろいろ調整しながらやってみたのですが、やはり難しかったようです^^; 根本的に関数の基本から学んで、レベルを上げるように頑張ってみます。 ありがとうございました。

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.1

A列に入力された一番下のセルを参照して、その行のデータをシート2へ反映させる関数式を使いましょう。 INDIRECT関数やOFFSET関数を主として、IF関数、ROW関数、などを使用したり HLOOKUP関数で参照するなどしてみてはいかがでしょう。 初めから関数式を示しても良いのですが、「作成依頼」は利用趣旨に反するようですので、 使ってみて分からないところを補足で質問するようにすると良いと思います。 がんばってください。

mazdaFD3
質問者

お礼

ご回答ありがとうございます。 また、ご返答遅くなりもうしわけありません。 教えていただいた関数ですが、今まで使ったことのない関数ですので じっくり試しながら、使えるようにしてみたいと思います。

関連するQ&A