• ベストアンサー

エクセルでこんな事出来ます?

エクセル2000で教えて下さい。 ABCDの列に任意の数字が入ります。 例えば     A   B   C   D 1  -10 -20 -30  60 2   50 -30  0  -20 3   10  30 -25 -15 のように同じ行で4つのセルをプラスマイナスすると等しくなります。 数値の入力は小さい数字(マイナスの大きい数字)から順番に入力されていきます。 最後に一番大きい数字が入るように式を入れたいのです。 例で言うと1行目ではD1、2行目ではA2、3行目ではB3の答えが自動で入るようにしたいのです。 列は4列のみです。マイナスの数値は最低でも1つ入ります。   

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

  • ベストアンサー
  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.3

VBAを使わないと出来ないと思います 作業列としてE,F列を使います E1=COUNT(A1:D1) F1=-SUM(A1:D1) とし、必要なだけ下にコピーしておきます VBAは、シートのChangeイベントに記述します --------------------------------------- Private Sub Worksheet_Change(ByVal Target As Range)   If Cells(Target.Row, 5) = 3 Then     Application.EnableEvents = False     For c = 1 To 4       If Cells(Target.Row, c) = "" Then         Cells(Target.Row, c) = Cells(Target.Row, 6)       End If     Next     Application.EnableEvents = True   End If End Sub

so2580
質問者

お礼

御礼が遅くなり申し訳ありませんでした。 大変参考になりました。 有難うございました。

その他の回答 (3)

回答No.4

E列に数式を設定 =SUM(A1:D1) 以下のようなマクロを記述 Sub 答え() i = 0 j = 0 For i = 1 To 3 For j = 1 To 4 X = Cells(i, 5) If Cells(i, j) = "" Then '空白セルを探す Cells(i, j) = -X Cells(i, j).Select With Selection.Interior '黄色づけ .ColorIndex = 6 .Pattern = xlSolid End With End If Next Next End Sub こんなのはいかがでしょう

so2580
質問者

お礼

御礼が遅くなり申し訳ありませんでした。 大変参考になりました。 有難うございました。

  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.2

>小さいほうから順番に3つ入れると この「順番」というのは、数字が小さい方からという事ですよね この場合、入れる位置(セル)の順番はどうなっているのでしょうか 「適当に」という事でしょうか?

so2580
質問者

お礼

>この「順番」というのは、数字が小さい方からという事ですよね はい。その通りです。 >この場合、入れる位置(セル)の順番はどうなっているのでしょうか >「適当に」という事でしょうか? 実際にはあるデータに基づいて入力するのですが、この表だけ見れば おっしゃるように適当に入れるというか、その都度順不同という事に なると思います。

  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.1

>例で言うと1行目ではD1、2行目ではA2、3行目ではB3の答えが自動で入るようにしたいのです。 この、D1,A2,B3 の位置は固定なんですか?

so2580
質問者

お礼

早々に御回答頂き有難うございました。 >この、D1,A2,B3 の位置は固定なんですか? いいえ違います。 どのセルかは決まっていません。 ただ小さいほうから順番に3つ入れると4つ目のセルに自動で数値が 入るようにしたいのです。

関連するQ&A