質問です。

A列の状態をB列C列に正数と負数に分けたいのですが
エクセル関数またはマクロでできますか
よろしくお願いします。

A列    B列    C列
 5000   5000
 6000   6000
-7000        -7000
 3000   3000
-4000        -4000
 6000   6000
-4000        -4000

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2011/04/04 13:53:08
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:taknt No.1

回答回数13539ベストアンサー獲得回数1198

ポイント31pt

0の時は 正数のほうに 振り分けしています。

Sub 振り分け()
Dim a As Long
For a = 1 To Range("A1").End(xlDown).Row
    If Cells(a, "A") < 0 Then
        Cells(a, "C") = Cells(a, "A")
    Else
        Cells(a, "B") = Cells(a, "A")
    End If
Next a
End Sub
id:inosisi4141

ありがとうございます。

早速使わせていただきます。

2011/04/04 13:47:51

その他の回答4件)

id:taknt No.1

回答回数13539ベストアンサー獲得回数1198ここでベストアンサー

ポイント31pt

0の時は 正数のほうに 振り分けしています。

Sub 振り分け()
Dim a As Long
For a = 1 To Range("A1").End(xlDown).Row
    If Cells(a, "A") < 0 Then
        Cells(a, "C") = Cells(a, "A")
    Else
        Cells(a, "B") = Cells(a, "A")
    End If
Next a
End Sub
id:inosisi4141

ありがとうございます。

早速使わせていただきます。

2011/04/04 13:47:51
id:beatgoeson No.2

回答回数128ベストアンサー獲得回数14

ポイント21pt

1行目からデータが入ってるとすると、

セルB1には、「=IF(A1>0,A1,"")」セルC1には「=IF(A1<0,A1,"")」と入力し、2行目以降はコピーしてください。

この場合は、A列が0の場合は、B列にもC列にも値は入りません。

もしA列が0の場合にB列に表示したい場合は、「=IF(A1>=0,A1,"")」のようにしてください。

id:inosisi4141

ありがとうございます。

早速使わせていただきます。

2011/04/04 13:48:54
id:mouitchou No.3

回答回数174ベストアンサー獲得回数5

ポイント16pt

標準モジュールに下記を入力したのち、ワークシート上の一番左上(開始点)のセルにカーソルを置いて、マクロ furiwake  を実行します。


-----------------------------------

Option Explicit

Sub furiwake()

Dim a As Double

Do While ActiveCell <> ""

a = ActiveCell.Value

If a >= 0 Then

ActiveCell.Offset(0, 1).Value = a

Else

ActiveCell.Offset(0, 2).Value = a

End If

ActiveCell.Offset(1, 0).Select

Loop

End Sub

------------------------------------

id:inosisi4141

ありがとうございます。

早速使わせていただきます。

2011/04/04 13:49:20
id:Baku7770 No.4

回答回数2832ベストアンサー獲得回数181

ポイント16pt

表示だけの問題でよければ、書式でB列C列をユーザ設定で

0;-0;""

としておいてからB列C列に関数で

=if(a2>0,a2,0)←B列の例

=if(a2<0,a2,0)←C列の例

としておけば良いでしょう

id:inosisi4141

ありがとうございます。

早速使わせていただきます。

2011/04/04 13:49:31
id:readmaster No.5

回答回数74ベストアンサー獲得回数5

ポイント16pt

非常にシンプルに、

B列に

=IF(A3>0,A3,"")

C列に

=IF(A3<0,A3,"")

で出来ますがこういうことではないのでしょうか?

id:inosisi4141

ありがとうございます。

早速使わせていただきます。

2011/04/04 13:49:50
  • id:taknt
    A列のセルの書式も 一緒なら

    Sub 振り分け()
    Dim a As Long
    For a = 1 To Range("A1").End(xlDown).Row
    If Cells(a, "A") < 0 Then
    Cells(a, "A").Copy Cells(a, "C")
    Else
    Cells(a, "A").Copy Cells(a, "B")
    End If
    Next a
    End Sub

    とすればよい。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません