重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

初めて質問します。
よろしくお願いします。

Excelの関数について教えて下さい。

たとえばですが、時々体重を計り、前回の体重との体重差を求めたいと思います。
基本的に毎日体重を計ろうと思っているのですが、仕事の関係で毎日はできません。
一応、1日1回書き込める表を作り、その日の体重を書き込むのですが、体重差は必ずしも前日ではなく、あくまで「前回計測値の差」にしたいのですが、「できるでしょうか?/できないでしょうか?」
もし、できるようであれば、そのやり方を教えて下さい。

説明のわかりづらい点があれば、補足します。
よろしくお願いします。

※特に緊急ではありませんが、"できれば早く"回答を頂ければ幸いです。

A 回答 (5件)

「一番下」を計算する定石で求めます。



C2に
=IF(OR(COUNT($B$1:B2)<2,B2=""),"",B2-LOOKUP(999,$B$1:B1))
と記入、下向けにコピー。
「Excelの関数について」の回答画像3
    • good
    • 0
この回答へのお礼

ありがとうございました。
そのまま、数式を貼り付けてそしてコピー、うまくいきました。
イマイチ、LOOKUP関数のヘルプを見ると「必ず昇順で」とか書いてありますし、求められる値は近似値なのでしょうが、なぜ下の方から引っ張ってきてくれるのか、など「半分だけわかった」ような気分です。

何はともあれ、これで目的の事が実行できそうです。
本当に感謝しています。

お礼日時:2012/12/10 22:29

次のようにしてもよいでしょう。


A1セルに日付、B1セルに体重、C1セルに前回との体重差と項目名が有るとしてC2セルには次の式を入力して下方にドラッグコピーします。

=IF(OR(ROW()=2,B2=""),"",B2-LOOKUP(10^10,B$1:B1))
    • good
    • 0
この回答へのお礼

どうも、ありがとうございます。
たぶん、考え方はNo.3の方と同じではないでしょうか。

ところで、この場をお借りして回答を頂いた方にお礼が遅れてしまったお詫びをしたいと思います。
「すぐに回答を!」にしたのは、決して嘘ではありませんでした。
しかし、あくまで自分のプライベートに関した事での使用であり、仕事が不規則な私の場合はどうしても仕事を優先させなければならず、なかなかゆっくりと試して考える時間が持てませんでした。
また、私自身の理解力不足もあることは否定しません。

私としても、早くこの問題をクリアし、私のやりたかった事を早く進めたかったのですが、仕事を優先したためにこのように遅れてしまいました。

何はともあれ、皆様のおかげで無事問題解決し、私のやりたかったことが実現できるようになったことは、感謝に堪えません。

また、わからない事がありましたらば、ぜひまたお力をお貸しください。

お礼日時:2012/12/10 22:45

=if(b3="","-",b3-offset(B$2,max(index((B$2:b2<>"")*row(B$2:b2),))-row(B$2),0))



とも。特に、これが優れているわけでも何でもありませんが。ベストアンサーは辞退します。

ところで、測定しない日は間を空けたいとのことなのですが、ご参考まで。例えばグラフにしようとして、表に途中を空けないで記入していった場合でも、表の特別な加工などしなくても、途中の日付を飛ばしてプロットするように設定できます。添付図のとおりです。横軸に対して右クリックで「軸の書式設定>軸のオプション>日付軸」をチェックするだけです。
「Excelの関数について」の回答画像4
    • good
    • 0
この回答へのお礼

どうも、ありがとうございます。
一応、数式に関しては一番シンプルなNo.3の方のものを採用させて頂きました。

それからグラフですが、なるほどそのような手もあるのですね。
質問の冒頭に「たとえば」とあるように、実は体重差を求めたいのではありませんでした。
本当の目的を書くと説明が面倒になってしまうために、あえて体重差としただけでした。
しかし(今はやっていませんが)以前、体重を記録していた時にもチョット疑問に思った事なので、あながち嘘を言っていたわけではありません。

もし、また私が体重を記録するようなことがあれば、教えて頂いたようにグラフにしたいと思います。
どうも、ありがとうございました。

お礼日時:2012/12/10 22:36

こんばんは!


>1日1回書き込める表を作り・・・
とありますので、測れない日は空白になる!というコトですね?

表のレイアウトが判らないので勝手に↓のような配置でやってみました。
とりあえずやり方だけです。

画像ではC3セルに
=IF(AND(COUNT(B$2:B3)>1,B3<>""),B3-INDEX(B$2:B2,MAX(IF(B$2:B2<>"",ROW(A$1:A1)))),"")

これは配列数式になってしまいますので、Shift+Ctrl+Enterで確定!
この画面からコピー&ペーストする場合はC3セルに貼り付け後、数式バー内で一度クリック!
編集可能になりますので、Shift+Ctrlキーを押しながらEnterキーで確定します。
数式の前後に{ }マークが入り配列数式になります。

C3セルをオートフィルで下へコピーすると
画像のような感じになります。m(_ _)m
「Excelの関数について」の回答画像2

この回答への補足

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

たぶん、私が求めていた回答なのだと思いますが、自分自身でも、理解したいと思いますので、もうしばらく"お礼"はお待ち下さい。

何はともあれ、どうもありがとうございます。

補足日時:2012/12/04 21:59
    • good
    • 0
この回答へのお礼

お礼が遅れてしまって、大変申し訳ありません。
わざわざ、画像を張って説明して頂きありがとうございました。
私も同じように試してみたのですが、どうもエラーとなりうまくいきませんでした。
正直、なぜなのか私にはそこまで解析する力はありません。

たぶん、tom04さんはこの数式でうまくいっていたのでしょうから、どこかで何かが違っていたのか、私の操作ミスだったのか、よくわかりません。
(Shift+Ctrl+Enterはやりました)

でも、とても丁寧に画像まで貼り付けて下さったことには感謝しています。
私も、これからは説明が難しい場合は画像などを用いて説明しようと思います。

お礼日時:2012/12/10 22:23

ようはコレ?


だったら、難しく考えずに作るといいよ。
「Excelの関数について」の回答画像1
    • good
    • 0
この回答へのお礼

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

No.2の方が書かれていますが、「測れない日は空白になる」と言う事です。

どうも、ありがとうございました。

お礼日時:2012/12/04 21:56

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