[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『表をプラス・マイナス値別で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)
でいかがですか?
(忍)
関連質問はっときます。(とおりすがりん)
こんな感じでも、
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)
こんにちは
おかげさまで、希望の表を作成することができました!
感激です・・
本当に助かりました。
ありがとうございました!
(ASU)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.