こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

《エクセル2000》「表示形式」で計算させることはできますか

金額を集計するファイルがあって、現在このようになっています。

個数 金額(単価)
・   ・
・   ・
・   ・
・   ・
   金額合計(それぞれの行の、個数×金額)


これを、「金額」のセルに、各行の個数×金額に相当する数値が出るようにしたいのだそうです。
(金額列を単純に合計すれば、金額合計がでるように)

手っ取り早い方法としては、「金額」のセルに、手計算で個数×金額の数値を入れればいいのですが、それはあまりに非効率なことに思います。

また、1列増やして単価を入れる列を作ればいいのかもしれませんが、スペースの都合で到底無理です。

そこで思ったのですが、もしや「表示形式」で計算させることはできるでしょうか。

例えば、単価のセルに2、金額のセルに2500と入れたら、金額セルの数字が自動的に5000になるような表示形式…
(金額合計のセルの計算は、今までと同じ個数×金額の合計にしておけば問題ないと思います)

個人的にはすっきりしない仕様だと思うのですが、職場で頼まれてしまいました。

どうかお知恵をお貸し下さい。

投稿日時 - 2005-07-15 10:57:43

QNo.1514921

すぐに回答ほしいです

質問者が選んだベストアンサー

入力した同じセルに計算結果を表示することを固持されるのでしたら、VBAを使わ
ないと不可能です。

> エクセルのスキルがバラバラな複数の人間が使うファイル

とおっしゃられていますのでVBAなど対象外でしょうが、こういう処理をしないと
できないのも事実です。
以下、ご参考まで――

表の内容が
     A      B
  1  個数  金額(単価入力)
  2   3
  3   5
  4   2
  5   9
  6 合計金額 =SUM(B2:B5)
として、B2 に 7 と入力したら同じセルに 21 と表示(自動入力)する前提です。

まず、上と同じ表を作成します。
次に、下記のコードをコピーしてからシートタブを右クリックし、表示されるメニュ
ーから "コードの表示" を選択し、表示される画面に貼り付けます。
貼り付け後、開いた画面は閉じてください。

<コピペするコードは以下です>
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Column <> 2 Then Exit Sub
  If Target.Row = 1 Then Exit Sub
  If Target.Offset(0, -1).Value = "合計金額" Then Exit Sub
  Application.EnableEvents = False
  Target.Value = Target.Value * Cells(Target.Row, 1)
  Application.EnableEvents = True
End Sub

投稿日時 - 2005-07-15 12:56:23

お礼

すみません、こんな質問に丁寧に答えていただきまして…
これ以上ゴネられたら、あとはVBAでしかできませんと脅して(笑)みます。
どうもありがとうございました。
感謝致します。

投稿日時 - 2005-07-15 13:29:10

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(6)

ANo.5

・どんな商品が入ってくるかわからない。
・セルは二つのみで他のセルは使用できない。
という条件で考えました。
最低限単価と個数の二つの情報は必要ですが
片一方のセルが金額を計算/表示する必要があるため
片方のセルしか使えない。
そこで、A列の入力形式を変え"単価*個数"にする。
その上でB列を
=VALUE(MID(A1,1,FIND("*",A1,1)-1))*VALUE(MID(A1,FIND("*",A1,1)+1,LEN(A1)-FIND("*",A1,1)))
とする。
単価*個数金額
1200*22400
100*101000
500*300150000

投稿日時 - 2005-07-15 12:26:19

お礼

最大限頑張ったら、この答えになりそうですね。
どうもありがとうございました。

投稿日時 - 2005-07-15 13:25:32

ANo.4

こんにちは~

「表示形式」はわかりませんが、合計金額がわかればいいだけでしたら、
金額合計のセルに

=SUMPRODUCT(A2:A10,B2:B10)

ではダメでしょうか?
個数:A列
単価:B列

投稿日時 - 2005-07-15 11:56:55

お礼

こんにちは。
合計金額の式については、今のところさほどせっぱ詰まった問題はありません。

細目の金額を入力するセルに、個数をかけた値を表示できないものかと思っています。

やっぱり難しいのかな…どうもありがとうございました。

投稿日時 - 2005-07-15 12:15:34

ANo.3

別シートにでも「品名(又は品名コード) 単価」の表があるなら可能です。
シート1
A  B  C
品名 個数 金額
 
シート2
品名 単価

として
=IF(AND(A2<>"",COUNTIF(シート2!A:A,A2)>0),VLOOKUP(A2,シート2!A:B,2,FALSE)*B2,"")

投稿日時 - 2005-07-15 11:35:17

お礼

ごめんなさい。品名及び単価の一覧、ありません…
(経費で購入した雑多なものを足しあげていく集計ファイルなので)
ご回答、ありがとうございました。

投稿日時 - 2005-07-15 11:38:40

表示形式に式を入れるのですか?それは難しいと思います。
スペースの関係で列を入れられない、との事ですが1列挿入して、後でその列を非表示にするのはいかがでしょうか?(列番号の上で右クリックすれば「表示しない」で簡単に非表示にできますよ)

投稿日時 - 2005-07-15 11:26:50

お礼

No.1さんのお礼にも書きましたが、非表示を使うのはちょっと難しいかもしれません。
もう少し、他の書き込みを待ってみます。ありがとうございました。

投稿日時 - 2005-07-15 11:36:04

ANo.1

> 1列増やして単価を入れる列を作ればいいのかもしれませんが、スペースの都合で到底無理です。

小細工するより、ちゃんと単値の列をつくり、スペースがないならその列を非表示にしたらどうでしょうか?

投稿日時 - 2005-07-15 11:23:40

お礼

うーん…多分そうすると、「使いづらい」とリテイクを喰らいそうな気がします。
エクセルのスキルがバラバラな複数の人間が使うファイルなので、そういう気持ちもわからないではないですが。

ご回答、ありがとうございました。

投稿日時 - 2005-07-15 11:33:25

あなたにオススメの質問