治せない「クセ」を教えてください

お世話になります。ExcelもOKWaveも初心者となります。表現方法などに不確かさが
あるやもしれませんが、補足もしてまいりますので、よろしくお願い致します。

Excel2003を使用しております。

1.A列の数字を参照し、範囲ごとに1~4の数字を割り当て、その結果をB列に出す。
  ・1~10の範囲は、B列に1
  ・11~20の範囲は、B列に2
  ・21~30の範囲は、B列に3
  ・31~40の範囲は、B列に4
 という感じです。

2.B列に対しC列の数字を乗算し、その結果をD列に出す。

というものを作りたく、ネットで調べIF関数を使用してみました。B列に狙い通りの
数字が出たのですが、何故かB列にC列を掛けても結果は全て「0」になってしまいます。
(文字扱いになってる?)

この様な場合、どの様な関数・計算式を使用すれば良いのか、ご教授ください。

「[Excel]~以上~以下の場合○」の質問画像

A 回答 (6件)

>~以上~以下の場合○


の丸は文字列の○でないらしいね。ややこしい書き方だ。
「値の範囲に応じてコードを振りたい」とでも書くべきだろう。
ーーー
それならVLOOKUP関数のTRUE型の課題でしかない。VLOOKUP関数を思いつかないようでは、エクセル関数の本など
読んだこともないのでは。まずエクセル関数の代表的な50関数ぐらいの本を読んで勉強してからエクセル関数を使うこと。
ーー
Googleで「VLOOKUP関数 TRUE型」出照会すると
http://www.yoshikawa.co.jp/ybs/skilup/ybs0308.htm
http://www.eurus.dti.ne.jp/yoneyama/Excel/kansu/ …
http://okwave.jp/qa/q925839.htmlの私の回答。

1001
2001
・・
千単位のコードを振る例
    • good
    • 0

セルB1に式[=int((A1-1)/10)+1]を設定して、右下の■を下方向にドラッグ

    • good
    • 0

アナタがご質問に添付された画像はExcel2003じゃなく2007以降のスクリーンショットですが,まぁ今回はあまり関係ないので大丈夫です。



ゼロになるのは,計算に使っているセルを間違えている(B列とC列じゃなくB列とF列を計算してたみたいな)ので無い限り,次の条件の場合に起こります。
1.B列で文字を計算している。
 よくある間違い: =IF(A1<10,"1",… のような式を書いている

2.C列で文字を計算若しくは記入している。
  同上,またはセルの書式設定が不適切。

3.D列でわざわざPRODUCT関数を使ってかけ算をしている

【基本的な対処】
実はB列C列は今のままでも,かけ算の式を
D2:
=B2*C2
と書くだけで,かろうじて計算は正しく出てきます。



あとはまぁ,B列の式は
=IF(A2="","",IF(A2<=10,1,IF(A2<=20,2,IF(A2<=30,3,IF(A2<=40,4,5)))))
のように,"1"じゃなく1を計算する式に直しましょう。

#参考
=IF(A2=0,"",INT(A2/10)+1)
でもいいです。

C列も,いま計算式を入れているのか生数字を入れているのか判りませんが,生数字を入れているなら
1.C列を選んで標準の表示形式を付け直す
2.数字の5を必ずもう一回記入し直す

D列も実際には
=IF(A2="","",B2*C2)
という式にします。
    • good
    • 0

今、気がついた。



あなたのワークシート、B列の数値が左に寄っているということは、B列が文字扱いになっているはずです。

だから、結果が「0」になるのです。
    • good
    • 0

私のエクセル2003では、こういう形で目的を達成できました。

(上から順になっています。)

【B列】
=IF(AND(A1>=1,A1<=10)=TRUE,1,"")
=IF(AND(A2>=11,A2<=20)=TRUE,2,"")
=IF(AND(A3>=21,A3<=30)=TRUE,3,"")
=IF(AND(A4>=31,A4<=40)=TRUE,4,"")

【D列】
=B1*C1
=B2*C2
=B3*C3
=B4*C4


「0」の部分が文字扱いになっているなら、数式を一旦消去し、セルの条件を「標準」にしましょう。
「[Excel]~以上~以下の場合○」の回答画像2
    • good
    • 0

こんばんは!


A列数値は40を超えるものはないという前提です。
↓の画像のように表を作成しておきます。
実際は薄い緑の列だけで良いのですが、判りやすくするために未満の列(G列)を入れています。

B2セルに
=IF(A2="","",VLOOKUP(A2,$F$2:$H$5,3,1))

D2セルは単に
=IF(A2="","",B2*C2)

としてB2・D2セルともオートフィルで下へコピーすると
画像のような感じになります。m(_ _)m
「[Excel]~以上~以下の場合○」の回答画像1
    • good
    • 0

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


おすすめ情報