質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.47%

  • Excel

    1595questions

    Excelは、マイクロソフト社が開発しているデータ集計や分析を行う表計算ソフトの一つです。文書作成や表計算、資料作成などの多彩な機能を備えており、統合パッケージであるMicrosoft Officeに含まれています。

Excelで前期比較を簡単に行うには?

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 656

manman

score 258

A1に今期計数、
B1に前期計数が埋まっており、
C1で今期計数-前期計数、
D1で比率
(百分率で求め、小数点第3位以下切り捨てし、符号はC1と一致させる。
 また、エラーのときは-と表記させる。)
を求めるのに、
C1に=A1-B1、
D1に=IF(ISERROR(ROUNDDOWN(C1/B1*SIGN(B1)*100,2)),"-",ROUNDDOWN(C1/B1*SIGN(B1)*100,2))
という数式をいれたのですが、
もう少しD1の数式をシンプルにするにはどうすればよろしいのでしょうか?

具体例)
200    300    -100    -33.33
200    -300    500    166.66
200        0     200       -
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+2

その式って、式を考えたくないとき、眠かったり、思考停止の時には、書きがちですよねぇ。
作業列に、エラーが出てしまって良い場合は、その考え方を作業列に適用すればよいのですけど。
⇒検証しやすいのは、作業列を使って(別シートで下処理を行っても良いのですし)、
 エラーが出る物は出す。その上で、判っているから、処置をして~~~。

現在の形を優先(&作業列で、エラー表示しない)
⇒少数位の切捨てをしようがしまいが、エラーは出る。
 SIGNと、定数演算は、エラー発生の主原因ではないので。
 =IF(ISERROR(C1/B1),"-",ROUNDDOWN(C1/B1*SIGN(B1)*100,2))
位で如何?
’ 
この式で、エラーの発生する、主原因は、division by zero なので、
前程条件に、EXCELで扱える数値の範囲 とすると、分母が0以外であれば計算できるので。
⇒=IF(ISERROR(1/B1),"-",ROUNDDOWN(C1/B1*SIGN(B1)*100,2))
  =IF(SUM(B1),ROUNDDOWN(C1/B1*SIGN(B1)*100,2),"-")
 =IF(N(B1),ROUNDDOWN(C1/B1*SIGN(B1)*100,2),"-")
 =IF(B1,ROUNDDOWN(C1/B1*SIGN(B1)*100,2),"-")

B1,C1 などに文字、数値に見える文字が入る可能性がある場合は、別途考慮で、考えてみてください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/02/18 07:14

    回答ありがとうございます。
    エラー発生の主原因が何かを考えれば短くできるということですね。

    さて、今(A1,B1) として、(-,-),(200,-)または(-,200)の場合も考えたいので、
    C1に=IF(ISERROR(A1-B1),"-",A1-B1)
    D1に=IF(ISERROR(C1/B1),"-",ROUNDDOWN(C1/B1*SIGN(B1)*100,2))
    という数式をいれることにします。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.47%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Excel

    1595questions

    Excelは、マイクロソフト社が開発しているデータ集計や分析を行う表計算ソフトの一つです。文書作成や表計算、資料作成などの多彩な機能を備えており、統合パッケージであるMicrosoft Officeに含まれています。