添付ファイルより
年間の達成率「O9」の現在「68%」になっている部分なのですが、
契約済欄が入力されているところまでを反映させる形で、数値を表示させたいのです。

添付ファイルで言うと
現在3月まで契約済欄が入力されています。
つまり「O9」には (C7:I7)/(C8:I8) を反映させたい

契約済欄が6月まで入力されれば
「O9」には (C7:L7)/(C8:L8) を反映させたい

そんな計算式があれば教えてください!

「エクセルの計算式がわからない。。」の質問画像

このQ&Aに関連する最新のQ&A

A 回答 (5件)

C9セルに


=IF(ISBLANK(C$8),"",SUM($C$8:C$8)/SUM($C$7:C$7))
と入力する。

D9セルに
=IF(ISBLANK(D$8),C$9,SUM($C$8:D$8)/SUM($C$7:D$7))
と入力する。

入力してから、D9セルを「セルのコピー」で「E9~N9」までにコピーする。

すると、E9~O9に
=IF(ISBLANK(E$8),C$9,SUM($C$8:E$8)/SUM($C$7:E$7))
=IF(ISBLANK(F$8),D$9,SUM($C$8:F$8)/SUM($C$7:F$7))
=IF(ISBLANK(G$8),E$9,SUM($C$8:G$8)/SUM($C$7:G$7))
=IF(ISBLANK(H$8),F$9,SUM($C$8:H$8)/SUM($C$7:H$7))
=IF(ISBLANK(I$8),G$9,SUM($C$8:I$8)/SUM($C$7:I$7))
=IF(ISBLANK(J$8),H$9,SUM($C$8:J$8)/SUM($C$7:J$7))
(以下略)
と言う式がコピーされる。

O9セルに
=N9
と入力する。

あとは、一緒にコピーされて変わってしまった、セルの罫線を引き直しする。

8行目の契約済数の部分が「空白セル」になっている月以降の達成率は、空白じゃない最後の月の達成率がスライドしてきて表示される。

年間の達成率を「常に最終月の達成率と同じ」にしておけば、自動的に「空白じゃない最後の月の達成率」になる筈。

新しい期の表を作る時は、表ファイルをコピー後、C8~N8の契約済数をブランクにしてしまえばOK。
    • good
    • 0

質問のデータ実例で、画像貼り付けは、やめてほしい。


字が小さかったり、画像がぼやけてたりして読めない場合が多い。質問者自信でも質問を挙げた後に見てみるぐらいのことはすること。
==
質問文章の中でシートデータを工夫して、記述のこと。
    • good
    • 0

一例です。


年間の達成率のO9は、年間用として今のままでよいと思う。
C9~N9に達成率の行があるのだからその月度までの達成率を表示するとしては如何がでしょうか。
一例です。
=IF(C$8<>"",SUM($C$8:C8)/SUM($C$7:C7),"")
    • good
    • 0

図で見るところ7行目が目標値で8行目が契約済みの値であるように見えますね。

したがって達成率は8行目の合計を7行目の合計で割った値ではないでしょうか?
こちらの仮定のとおりだとすればO9セルに入力する式は次のようにします。

=SUM(C8:INDEX(C8:N8,COUNT(C8:N8)+2))/SUM(C7:INDEX(C7:N7,COUNT(C8:N8)+2))

これで8行目に入力されたデータまでの達成率が表示されます。

なお、O9セルの表示形式は%表示にすればよいでしょう。
    • good
    • 0

添付図は小さくなってしまって詳細が判読できませんが,O8にはデータが記入されている範囲での合計が計算できていますね。


今まだ数字が入っていない4月以降の「空白セル」が,
 ・これから手打ちで数字を入れていくので今は全くの空っぽセルである
 ・実は数式が記入してあって""が計算されて出ている
などの具体的な姿によっても,適切な数式が変わってきます。

あと,あなたは
達成率 =(C7:I7)/(C8:I8)
などとてきとー書いていますが,達成率というと
=8行の合計÷7行の合計
じゃありませんか?


そういうのをひっくるめて,たとえば
O9:
=SUM(C8:N8)/SUMIF(C8:N8,">=0",C7:N7)
などで。


#参考
COUNT関数とOFFSET関数やINDIRECT関数を組み合わせる手などもありますが,ブックを開いて何もせずに閉じるだけでも「保存しますか」とイチイチ聞いてくる原因になります。
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセル プルダウンの作り方

お世話になります。
エクセルでプルダウンの作り方を教えていただけませんでしょうか?
住所を▼のボタンでクリックしたら【北海道,青森,秋田,岩手・・・】などの選択ができるようにしたいのです。
宜しくお願いします。

Aベストアンサー

メニューから「データ」、「入力規則」、「設定」で「入力値の種類」を「リスト」を選択します。
そうすると「元の値」という表示がでますので、そこで前もって作っておいたリストの範囲を指定します。
多くないのでしたら、そのままそこにカンマで区切って入力しても出来ます。

Qエクセルで達成率を求めたいのですが

エクセルで達成率を求めたいのですが

合計の数値があって 150問の 難問できたかを%で出したいです

=SUM(150*S3%) としてもうまくいきません


s3は合計の数値 本当はどんな数式が入ればいいの?

Aベストアンサー

こんにちは。maruru01です。

基本的には、下の方々の回答にあるように、
達成率=達成数÷総数
なので、S2:総数(150)、S3:達成数とすると、

=S3/S2*100
(No.1の方の回答)
です。
また、「*100」を除いて、

=S3/S2

としておいて、このセルの表示形式を[パーセント]にすれば、「%」記号付きのパーセントの値が表示されます。
なお、

=S3/S2%

とすると、100倍された値(パーセント値、ただし「%」は表示されない)になります。

なお、No.1の方の指摘にもあるように、SUM関数は引数(かっこ内)の範囲を合計した結果を返す関数です。
今回のように割合を求める場合には、まったく使用する意味も必要もありません。

Qエクセルの0の表示、非表示に関する質問です。

エクセルで0の表示又は非表示にする設定は昔のエクセルだとセルの書式設定で簡単に出来たと思うのですが、最新のエクセルでは出来ません。やり方を教えて下さい。

Aベストアンサー

こんにちは!

いくつかのやり方がありますが、昔から変わっていないと思います。
Excel2010以降のバージョンをお使いの場合
(Excel2007も似たような感じですが、表示が少し異なります)

① メニュー → ファイル → オプション → 詳細設定 → 「次にシートで作業するときの表示設定 → ゼロ値のセルにゼロを表示する のチェックを外してOK

② 「0」を表示させたくないセルを範囲指定 → 右クリック → セルの書式設定 → 「表示形式」タブの「ユーザー定義」で
0;;
としてOK

※ ①の場合はSheet全体が対象となります。m(_ _)m

Q目標値の達成を計算する関数

エクセル2010を使用しています。
以下までは自分の力でも、エクセルでできました。

A=35個=70%
B=10個=20%
C=5個=10%

やりたいことは、
「1:Aがあと何個増えたら目標値に達するか」
「2:Aがあと何個減ったら目標値を下回るか」
「3:Cがあと何個増えたら目標値を超えてしまうか」
「4:Cがあと何個減ったら目標値以下に抑えられるか」
を自動計算することです。すなわち、Aは増やしたい数値、Cは減らしたい数値です。

目標値は80%とか70%とか、任意のパーセンテージを設定できるものとします。
上記1~4を表示するセルは、同じセルでも別なセルでも構いません。
どのような関数を組んだら、上記の計算ができるでしょうか。

何とぞ知恵をお貸しください。よろしくお願いいたします。

Aベストアンサー

単に逆算するだけですが、たとえば「既に目標値を上回ってるのに、あと何個で達するか」とか「いま下回ってる時に、何個減ったら」とか計算する意味はありませんよね。


添付図:
B列 数字を記入する

C2:
=B2/SUM(B:B)
パーセント書式

D列 パーセントを記入する

E2:
=IF(C2<D2,"-",(SUM(B:B)-B2)*D2/(1-D2)-B2)
以下コピー
F2:
=IF(C2>D2,"-",(SUM(B:B)-B2)*D2/(1-D2)-B2)
以下コピー

添付図では、Aは現在目標を下回っているのでこれ以上は減らせず、あと25個で目標に達する事が計算されています。またBについては実際には2.9個減らすと目標値なので、2個まで減らせることが分かります。



#E列とF列は、見ての通り実際の計算式は実は同じです。なのであと何個「増やせる」「減らせる」と分けずに結果を表示するのでも、構わないかもしれませんね。また計算式を読めば、増減差分じゃなく目標個数ずばりも計算していますので分析して、ご自分の見せたい方法で工夫してみて下さい。

単に逆算するだけですが、たとえば「既に目標値を上回ってるのに、あと何個で達するか」とか「いま下回ってる時に、何個減ったら」とか計算する意味はありませんよね。


添付図:
B列 数字を記入する

C2:
=B2/SUM(B:B)
パーセント書式

D列 パーセントを記入する

E2:
=IF(C2<D2,"-",(SUM(B:B)-B2)*D2/(1-D2)-B2)
以下コピー
F2:
=IF(C2>D2,"-",(SUM(B:B)-B2)*D2/(1-D2)-B2)
以下コピー

添付図では、Aは現在目標を下回っているのでこれ以上は減らせず、あと25個で目標に達する事が計算されてい...続きを読む

Q(Excel)エクセルのバージョンごとの使用可能関数リストがあるサイト

(Excel)エクセルのバージョンごとの使用可能関数リストがあるサイト

Excel2007でIFERROR関数などを使っていました
しかし、以前のExcelバージョンだと使えないようです。
そこで、どの関数がどのExcelバージョンから使用可能か?
というリストのようなものを掲載しているサイトはありますか?

Aベストアンサー

下記ページで2007で追加された関数が解ります。

Excel(エクセル)基本講座:Excel(エクセル)関数一覧表
http://www.eurus.dti.ne.jp/~yoneyama/Excel/kansu/itiran.html

Q達成率を出したい。

添付の表のような場合、達成率をどのように算出したらよいでしょうか?
すべてに適応できるような数式はありますか?
ご教授願います。

①計画が0、実績あり。→達成率は100%?
②計画が-260、実績が-220もしくは10(どちらもプラスになった場合)
③計画が365、実績が0→達成率はマイナス?
④計画、実績ともに0の場合。

Aベストアンサー

一般的には
実績÷計画×100%で計算します。
計画が0の場合は、その時は別途考える必要がありますが、
そもそも、計画が0とかマイナスになるということは、
その数値の意味及び単位は何なのでしょうか。(例 売り上げ目標 単位:1万円等)
それにより、計画が0とかマイナスの場合の考え方が変わってくると思います。
参考までに下記URLに達成率の計算方法が記載されています。
http://ameblo.jp/jk-kana/entry-10719165343.html

Qエクセルで、3Dのドーナツグラフの作成方法を教えてください

 ある雑誌の中で、ドーナツ(真中に丸い空白)の3Dグラフを見ました。
 同じように、エクセル2002でドーナツの3Dグラフの作成をする事は可能でしょうか? もし可能であれば、作成方法を教えてください。
 どうぞ宜しくお願い致します。 

Aベストアンサー

ドーナツグラフの書式で「影つき」を選ぶと微妙に…(^^;

3D円グラフのように斜め上から見たような図だったのでしょうか?

Qエクセル計算です。添付の計算をする数式を教えてください

A~Fまでそれぞれに数値を定めています。
記号の数値の1ヵ月合計値を出したいのですが
計算できる数式を教えてください。

Aベストアンサー

オーソドックスな方法では
記号の下に、 Vlookup関数で、対応する数値を表示させて
最後に Sum関数で合計します。
例えば
仮に A1~B6が記号と数値の対応表で
9行目のA列から右に記号はあるとして
=Vlookup(A9,A$1:B$6,2,FALSE) 右へコピーみたいな。

配列関数を使えば、一発で出す方法もありますが・・・
=SUM((A1:A6=A9:AF9)*B1:B6)
と入れて Ctrl+Shift+Enterで決定して
配列関数(式が {}でくくられる)にしてみてください。

Qエクセル「VLOOKUP」の使い方

エクセル2000です

「名簿&住所録」シートを検索して、その人の電話番号を表示しようとしています。

例.
=VLOOKUP("山田 太郎",'名簿&住所録'!F:M,7,FALSE)


この"山田 太郎"の部分を、可変(セル「A1」や「A2」)に指定できないでしょうか?

例.
=VLOOKUP(A1,'名簿&住所録'!F:M,7,FALSE)

ヘルプを見ましたが分からなくて、、、

Aベストアンサー

A列に名前(山田 太郎)を入力
B列に =VLOOKUP(A1,名簿&住所録!$F:$M,7,FALSE) を設定してコピー

QエクセルVBAで、C言語のscanf("%dxxx%dto%d"&a,

エクセルVBAで、C言語のscanf("%dxxx%dto%d"&a,&b,&c);をする方法

現在、エクセルVBAに挑戦しています。
C言語は少しだけ経験がありますが、他の言語は経験ありません。

エクセルVBAで、C言語のscanf("%dxxx%dto%d"&a,&b,&c);にあたる読み取りを、指定したセルに対して行いたいのですが、どのようにすればよいでしょうか?

ちなみにすべての%dは桁数が変わるため、右から何文字とかでは対応できません。


それと、蛇足質問を2つさせてください。こちらは回答いただかなくてもかまいません。、

セルを参照するときに、Range("A1:B2")で、データを取得しますが、A1:B2の部分を変数にすることはできないのでしょうか?

これはchr(64)+iで解決できたので、良いと言えば良いのですが、もっと標準的と感じられるしっくりくる方法があればいいのですが・・・

それからもうひとつ。VBAで参照するセルを指定した後に、シート上で行や列の挿入・削除を行うと、参照先のセルが変わってしまいますが、通常のシート上でのSUM(A1:A3)がA列に列を挿入するとSUM(B1:B3)になるように、VBAでも連動はできないのでしょうか?

エクセルは使いやすくて便利ですが、自由度が高いだけに難しいですね。
めんどくさく感じたCの型縛りが実は使いやすく感じる今日この頃です。

お忙しい中とは思いますが、よろしくお願いします。

エクセルVBAで、C言語のscanf("%dxxx%dto%d"&a,&b,&c);をする方法

現在、エクセルVBAに挑戦しています。
C言語は少しだけ経験がありますが、他の言語は経験ありません。

エクセルVBAで、C言語のscanf("%dxxx%dto%d"&a,&b,&c);にあたる読み取りを、指定したセルに対して行いたいのですが、どのようにすればよいでしょうか?

ちなみにすべての%dは桁数が変わるため、右から何文字とかでは対応できません。


それと、蛇足質問を2つさせてください。こちらは回答いただかなくてもかまいません。、

セルを参照...続きを読む

Aベストアンサー

scanfはCの最初に出てくる関数ですが、実際はポインタ
を理解していないとその中身は初級
でも理解しにくい関数です。そのポインタについて、
エクセルVBA、あるいは他のVBAやVBも含めて、
メモリ上のポインタを取得して云々という概念は
ほぼ無い(厳密にはないとは言えませんが)、
あるいは直接扱うことはない、
ということです。もちろんポインタやアドレス関して
アドレスの取得関数などは存在しますが、
http://support.microsoft.com/kb/199824/ja
(表示されている関数はNETではなくなりますが、
Excel、Accessなどではまだ使えるようです)
これらは質問者さんの考えているものには
使えない、と考えてください。したがって、VBAやVB
ではコンソールプログラミングの概念を
一度はずして取り掛かるのがいいのでは
と思います。もちろん、フロー制御や
いろいろなアルゴリズムは概念として
は同じだと考えていいのではないでしょうか。
もちろん、Cはウィンドウを作ろうと思えば
作れるのでCがコンソールだけだとは言いませんが。
質問のニュアンスでは一応このようにしておきます。
VBAではポインタを意識することはまずありません。
しかし、ポインタの考えはどの言語においても
重要です。

したがって、scanfのようにポインタが指す
オブジェクトに、標準入力から読み込んだ値を入れる
関数は存在しない、と考えてください。
セル、あるいはフォームのテキストボックスなどの
オブジェクトに値(数値、文字、文字など)を入力し
受け取り、加工または指定変数に入れ加工と考えてください。

型の厳密さについては本来は同じだと思ってください。
参照渡し、値渡し、変数の型宣言なども明示的に
行なうのが原則で、はずれればエラーが出ますし、
結果が違ってきます。プログラムで型の間違い
、あるいは変数宣言しないでエラーがでるはずの
コードがエラーなしで実行できるかのようなコード
をこのOKWAVEでも見ます。たぶん、Option Explicit
をコードに表示せずにコンパイルしているのではと思います。

ただ、Variant型については少し研究してみて
ください。便利ですが、多用すると
どんぶり勘定になります。
また、Variantでなければならない、という場面も
あります。

それと、ついでに、メモリリークの回避、
あるいは、OSにプロセスを残してしまう
ことでのトラブルなどの回避のために、
コードの終わりに不必要なメモリ上の
オブジェクトの終了、削除はこまめに
行なう、という習慣も大事です。

VBAに似た言語で型宣言をしないVBScriptのようなものも
ありますが、ここでは割愛。

scanfはCの最初に出てくる関数ですが、実際はポインタ
を理解していないとその中身は初級
でも理解しにくい関数です。そのポインタについて、
エクセルVBA、あるいは他のVBAやVBも含めて、
メモリ上のポインタを取得して云々という概念は
ほぼ無い(厳密にはないとは言えませんが)、
あるいは直接扱うことはない、
ということです。もちろんポインタやアドレス関して
アドレスの取得関数などは存在しますが、
http://support.microsoft.com/kb/199824/ja
(表示されている関数はNETではなくなりますが、
Excel、Acce...続きを読む


人気Q&Aランキング

おすすめ情報