[[20100804164720]] 『表をプラス・マイナス値別で2シートに分割する方』(ASU) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『表をプラス・マイナス値別で2シートに分割する方法』(ASU)

 こんにちは
 別タイトルで質問していたのですが、
 やりたい内容と質問の仕方が間違っておりました。
 紛らわしくて恐縮ですが、改めてこちらで質問させていただきます。

 行列とも200以上ある表を、下記のようにプラス値のみ、マイナス値のみで
 それぞれ別シートに表示するという作業をしたいと思っています。
 たとえばプラス値のみのシート中の、マイナス値の部分には『0』が入るように
 したいです。
 マイナス値のみのシートの場合も同様です。

 以下のようなイメージです。
 なにとぞご教示お願いいたします。

 【元の表(作業前)】

		1	2	3	4	5
		A市	B市	C市	D市	E市
1	A市	5	-16	-6	39	-28
2	B市	-9	659	-3	-6	-147
3	C市	8	-3	2	7	-2
4	D市	-18	6	9	220	-2
5	E市	-3	-183	2	-9	172

   ↓

  【プラス値のみ(作業後)】

  1 2 3 4 5

		A市	B市	C市	D市	E市
1	A市	5	0	0	39	0
2	B市	0	659	0	0	0
3	C市	8	0	2	7	0
4	D市	0	6	9	220	0
5	E市	0	0	2	0	172

   【マイナス値のみ(作業後)】

		1	2	3	4	5
		A市	B市	C市	D市	E市
1	A市	0	-16	-6	0	-28
2	B市	-9	0	-3	-6	-147
3	C市	0	-3	0	0	-2
4	D市	-18	0	0	0	-2
5	E市	-3	-183	0	-9	0

 [エクセルのバージョン]
  Excel2003

 [OSのバージョン例]
  WindowsXP  


 一番左上の数値がB2セルになるようですので…

 プラス値のシートB2セルに貼り付け縦横コピペ
 =IF('【元の表(作業前)】'!B2>0,'【元の表(作業前)】'!B2,0)

 マイナス値のシートB2セルに貼り付け縦横コピペ
 =IF('【元の表(作業前)】'!B2<0,'【元の表(作業前)】'!B2,0)

 でいかがですか?

 (忍)

[[20100803155116]] 『表中の+、−の値別に仕分ける』(ASU)
 関連質問はっときます。(とおりすがりん)

こんばんは

こんな感じでも、

Sub test()

    Dim v As Variant
    Dim x As Long
    Dim y As Long

    v = Worksheets("Sheet1").Range("A1").CurrentRegion.Value
    For x = 1 To UBound(v, 1)
        For y = 1 To UBound(v, 2)
            If IsNumeric(v(x, y)) Then
                If v(x, y) > 0 Then
                    v(x, y) = 0
                End If
            End If
        Next
    Next
    Worksheets("Sheet2").Range("A1").Resize(UBound(v, 1), UBound(v, 2)).Value = v

    Erase v

    v = Worksheets("Sheet1").Range("A1").CurrentRegion.Value
    For x = 1 To UBound(v, 1)
        For y = 1 To UBound(v, 2)
            If IsNumeric(v(x, y)) Then
                If v(x, y) < 0 Then
                    v(x, y) = 0
                End If
            End If
        Next
    Next
    Worksheets("Sheet3").Range("A1").Resize(UBound(v, 1), UBound(v, 2)).Value = v

End Sub

(ウッシ)


こんにちは
ご回答ありがとうございます。
おかげさまで無事シートを分けることができました!
本当にありがとうございます。

申し訳ないのですが、あと少しだけお力をお貸しください。
マイナスのみに仕分けたシートの、マイナス記号を取り除きたいです。
このシートをCSV形式で保存した後、分析ソフトに読み込む作業をするのですが
マイナス記号がついていると0として扱われて、読み込めないのです。
どうぞよろしくお願いいたします。

 【作業前イメージ(マイナス値)】 

		1 	2 	3 	4 	5 	6 
		A市	B市	C市	D市	E市	F市
1	A市	0 	-16 	-1 	0 	-28 	-16 
2	B市	-9 	0 	-3 	-6 	0 	-28 
3	C市	0 	-3 	0 	0 	-2 	-15 
4	D市	-18 	-3 	0 	0 	-2 	-7 
5	E市	-3 	-183 	0 	-9 	0 	-34 
6	F市	-16 	-10 	-6 	-3 	-18 	0 

   ↓

  【作業後イメージ(マイナス値)】

		1 	2 	3 	4 	5 	6 
		A市	B市	C市	D市	E市	F市
1	A市	0 	16 	1 	0 	28 	16 
2	B市	9 	0 	3 	6 	0 	28 
3	C市	0 	3 	0 	0 	2 	15 
4	D市	18 	3 	0 	0 	2 	7 
5	E市	3 	183 	0 	9 	0 	34 
6	F市	16 	10 	6 	3 	18 	0 

(ASU)


 どこか適当なセルに -1を入力し、そのセルをコピー
 上の表のセルを選択し、形式を選択して貼り付けで乗算にしてみてください。

 (川野鮎太郎)

こんにちは、分割時に処理するなら

上の方の、

                If v(x, y) > 0 Then
                    v(x, y) = 0
                End If


                If v(x, y) > 0 Then
                    v(x, y) = 0
                Else
                    v(x, y) = Abs(v(x, y))
                End If

で。

(ウッシ)


 マイナス値のシートB2セルに貼り付け縦横コピペ
 =IF('【元の表(作業前)】'!B2<0,ABS('【元の表(作業前)】'!B2),0)
                                 ^^^^                        ^^
 ABS関数で処理すると良いです。。
 (kei)


川野鮎太郎さん、ウッシさん、keiさん

こんにちは
おかげさまで、希望の表を作成することができました!
感激です・・
本当に助かりました。
ありがとうございました!

(ASU)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.