アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excelで、
(Aシート)
    A   B   C
  去年  今年  差   
3  50.5  51.7  1.2
4  70.3  71.5  1.2
5  63.0  60.2  -2.8
・・・・・・・
(差は『今年』―『去年』で計算式で出しています)

上記のようなデータから、Bシートに、差を
   A   
2 -2.9  0 ←=COUNTIF('Aシート'!C3:C50,A2)
3 -2.8  1 ←=COUNTIF('Aシート'!C3:C50,A3)
4 -2.7  0
・・・・・
5 1.1  0
6 1.2  2
7 1.3  0

のようにそれぞれの差にあたる数をカウントしたいので
上記のようにCOUNTIFを使ったのですが
なぜかカウントされないものと、カウントされるものがあるのです。

無知な私に解決方法を教えて頂ければと思います。
よろしくお願いいたします。

A 回答 (3件)

こんにちは!


Sheet2のB1セルに数式を入力してそのまま下へコピーされているのだと思いますので、
C3~C50を絶対参照にすればOKではないでしょうか?
B2=COUNTIF('Aシート'!$C$3:$C$50,A2) でオートフィル!

もし間違っていたらごめんなさい。m(__)m
    • good
    • 0
この回答へのお礼

ありがとうございます。

質問文のまちがいなのですが、

COUNTIF('Aシート'!C3:C50,A2) ではなくて
COUNTIF('Aシート'!$C$3:$C$50,A2) としていますが、
ダメだったのです…。

すみません。中途半端な文章で申し訳ないです。

お礼日時:2009/03/01 17:26

こんにちは。



これは、なかなか難しい問題ですね。Excel自身の問題だと思います。(開発時代の頃とPCのスペックも違うのですから、マイクロソフト側で直してほしいなって思います。)

整数にすれば問題はないのですが、小数点ですから、見かけでは、どこに誤差が出ているのか分かりません。

誤差が、Aシートにも、Bシートにも存在します。

単純に、数式で解決するには、COUNTIF ではなくて、FREQUENCY 関数を使います。

ただし、

Aシート
63.0  60.2  -2.8 ○

Bシート
3: -2.8  1 ○

Aシート○とBシート○とは同じとは限りません。区間の中でカウントする必要があります。

Bシート
A 列
2: -3.1 (ずらすために、ダミーで、-3.1 から書きます)
3: -3.0
4: -2.9  ←ただし、そのままオートフィルを使うと誤差が生じてしまいます。
 ・
 ・
 ・
53: 2.0

例えば、これを、=ROUNDUP(A2,1) として、誤差を切り上げしてあげるか、または、手入力するなどしなくてはいけません。

次に
B2~
=FREQUENCY(シートA!C3:C50,シートB!A2:A53)

B53 まで、範囲を伸ばして、F2を押して、B2がアクティブセルということを確認したら、[Ctrl + Shift + Enter] を押し、配列確定をします。

-----------------
第二案としては、

50.5  51.7  1.2

この数式で、= ROUNDUP(B2 - A2, 1)

として、丸めてしまうという方法が考えられます。

この回答への補足

ありがとうございます。

ROUNDUP ですべてのデータがカウントされました。
ありがとうございました。

ただ、このROUNDUPにより、誤差が直されたため(?)か、
見た目上は 50.5と51.7の差は1.2ですが
ところどころ1.3のように、0.1のずれが生じるところがあります。

これは仕方ないことでしょうか?

重ねて質問して申し訳ございません。

補足日時:2009/03/01 18:12
    • good
    • 0

こんばんは。



>ただ、このROUNDUPにより、誤差が直されたため(?)か、
>見た目上は 50.5と51.7の差は1.2ですが
>ところどころ1.3のように、0.1のずれが生じるところがあります。

調べてみました。すみません、久々で、私は、間違えました。

>これを、=ROUNDUP(A2,1) ×

ROUNDUP を、ROUNDに直してみていただけませんか?

>ところどころ1.3のように、0.1のずれが生じるところがあります。

51.7 -50.5

1.300000000000000 (小数点15位まで)

は、きれいに、0が並んでいます。ところが、0が、並んでいないところがあります。
50.1 - 50.4

0.299999999999997
これは、0.3 になりますが、

50.1 - 50.2

0.100000000000001

この場合、0.1 違って、0.2 になってしまいますね。

他に、古い専用の関数に、FIXED という関数があります。

=FIXED(A2,1)*1

このような使い方をします。
    • good
    • 0
この回答へのお礼

すべて解決しました!!

本当に困っていたので助かりました。
ありがとうございましたm(_ _)m

お礼日時:2009/03/03 21:49

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