• ベストアンサー

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

金額を集計するファイルがあって、現在このようになっています。 個数 金額(単価) ・   ・ ・   ・ ・   ・ ・   ・    金額合計(それぞれの行の、個数×金額) これを、「金額」のセルに、各行の個数×金額に相当する数値が出るようにしたいのだそうです。 (金額列を単純に合計すれば、金額合計がでるように) 手っ取り早い方法としては、「金額」のセルに、手計算で個数×金額の数値を入れればいいのですが、それはあまりに非効率なことに思います。 また、1列増やして単価を入れる列を作ればいいのかもしれませんが、スペースの都合で到底無理です。 そこで思ったのですが、もしや「表示形式」で計算させることはできるでしょうか。 例えば、単価のセルに2、金額のセルに2500と入れたら、金額セルの数字が自動的に5000になるような表示形式… (金額合計のセルの計算は、今までと同じ個数×金額の合計にしておけば問題ないと思います) 個人的にはすっきりしない仕様だと思うのですが、職場で頼まれてしまいました。 どうかお知恵をお貸し下さい。

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

  • ベストアンサー
回答No.6

入力した同じセルに計算結果を表示することを固持されるのでしたら、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

bari_saku
質問者

お礼

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

その他の回答 (5)

回答No.5

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

bari_saku
質問者

お礼

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

  • shiotan99
  • ベストアンサー率68% (140/203)
回答No.4

こんにちは~ 「表示形式」はわかりませんが、合計金額がわかればいいだけでしたら、 金額合計のセルに =SUMPRODUCT(A2:A10,B2:B10) ではダメでしょうか? 個数:A列 単価:B列

bari_saku
質問者

お礼

こんにちは。 合計金額の式については、今のところさほどせっぱ詰まった問題はありません。 細目の金額を入力するセルに、個数をかけた値を表示できないものかと思っています。 やっぱり難しいのかな…どうもありがとうございました。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.3

別シートにでも「品名(又は品名コード) 単価」の表があるなら可能です。 シート1 A  B  C 品名 個数 金額   シート2 品名 単価 として =IF(AND(A2<>"",COUNTIF(シート2!A:A,A2)>0),VLOOKUP(A2,シート2!A:B,2,FALSE)*B2,"")

bari_saku
質問者

お礼

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

回答No.2

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

bari_saku
質問者

お礼

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

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

> 1列増やして単価を入れる列を作ればいいのかもしれませんが、スペースの都合で到底無理です。 小細工するより、ちゃんと単値の列をつくり、スペースがないならその列を非表示にしたらどうでしょうか?

bari_saku
質問者

お礼

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

関連するQ&A

専門家に質問してみよう