• ベストアンサー

【エクセル マクロ】 1,000と -1,000を同じデータとして扱う

エクセルの列の中で、1,000 と -1,000を同じデータとみなして、 その隣の列に"*"を表示するマクロの記述を教えていただけないでしょうか? 何ゆえ必要かと言いますと、経理部内で経費管理をしているのですが、 システムからデータをDLして未収金が正しく回収されたか確認するために必要なのです。 (未収金計上 1,000 未収金回収 -1,000 が揃って、回収完了となります) 以上宜しくお願いします。

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

  • ベストアンサー
  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.2

数学の分野ですね。 マクロを使わずとも関数で十分代用可能です。 1,000 と -1,000 を同じとみなすには、絶対値を取るのが普通です。 絶対値を取る関数は ABS になります。 あとはIF関数で二つの値を比較して等しければ "*" を表示させるだけで良いので、 =IF(ABS(1000)=ABS(-1000),"*","") などでしょうか。 または、数値を二乗してマイナスの符号を消してしまうのも方法です。 二乗は、-1,000*-1,000 でも代用できますし、関数ならば POWER になります。 あとはIF関数で上記と同様に、  =IF(POWER(1000,2)=POWER(-1000,2),"*","") こんなところでしょうか。

Cogitation
質問者

お礼

ご回答ありがとうございます。マクロを使わなくてもよさそうなのはわかったのですが、データが混在している中で、値 "a"と"-a"を判断させるには どうしたらよいでしょうか?宜しくお願いいたします。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (6)

  • masa-it
  • ベストアンサー率37% (9/24)
回答No.7

すいません、#5でソースコード書いてしまいました。 #4さんのローカルルールの指摘と入れ違いで書いてしまいました。 禁止事項、ネチケットを認識不足ですね、再確認します、失礼しました。

全文を見る
すると、全ての回答が全文表示されます。
  • fly_moon
  • ベストアンサー率20% (213/1046)
回答No.6

こんにちは。 最近他の方への回答でも書かせてもらいましたが、VBAの知識をお持ちでコードのどこかが解らないとおっしゃるなら、#4さんが仰るようにご自分で検討されたコードを載せるべきだと思います。VBAといえども、プログラムソースは知的財産です。本来ならお金を払って開発を依頼するものだと思います。それをご自分でやられるつもりなら一から人に頼るのはいかがなものでしょうか。 今回のご質問は、同じ列に(A列とします)1,000 と -1,000などのデータが入っており、その中から相殺できないデータを探して未回収とするということで考えて宜しいですか?20,000件という量のデータを探すのは苦労があるとお考えなのは解ります。私なら、B列にABS関数で絶対値を表示させ、C列にはあらかじめ"*"を全てに入力しておきます。その状態でピボットテーブルを作成し、行をB列の絶対値、データをA列の金額の合計にしたら、相殺できない未回収金の絶対値がどれかわかります。オートフィルタでその絶対値の金額を表示させ、手作業でC列の"*"を消していきます。この方法である程度はデータを限定することができるのではないでしょうか。

Cogitation
質問者

お礼

#7さんの仰る通り、質問の流儀を弁えず失礼致しました。 ご教示頂いた内容を参考にしてやってみます。 貴重なお時間頂きありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • masa-it
  • ベストアンサー率37% (9/24)
回答No.5

こんな感じでしょうか? 全然違っていたらごめんなさい。 相殺イメージがわからなかったので、重複を考慮してみました。 sub test() 'Cells(行数,列数) Dim kingaku As Double For i = 1 To 10 kingaku = Cells(i, 1) * -1 ' 1=A If (Cells(i, 2) = "*") Then ' 既に比較されていた場合 GoTo next_i End If For j = i + 1 To 10 If (kingaku = Cells(j, 1)) Then ' 金額の比較 If (Cells(j, 2) <> "*") Then ' 既に比較されていた場合 Cells(i, 2) = "*" ' 2=B Cells(j, 2) = "*" ' 2=B ' Cells(i, 3) = j ' 3=C 相殺された、相手の行 ' Cells(j, 3) = i ' 3=C 相殺された、相手の行 GoTo next_i End If End If Next j next_i: Next i End Sub

Cogitation
質問者

お礼

ご回答ありがとうございます。参考にさせて頂きます。 貴重なお時間を頂戴しありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんにちは。 >システムからデータをDLして未収金が正しく回収されたか確認するため >(未収金計上 1,000 未収金回収 -1,000 が揃って、回収完了となります) 私も会計処理はしていましたし、相手から、そのいうシステムの請求書をもらって付け合わしていました。しかし、時に、それが大幅に狂うときがあります。私は、相手の請求の裏返しのものをパソコンで作っていました。 今、ご質問にあるのは、同じ列にあるという意味だと思います。国内会計では、非常に特殊な処理の気がします。会計方式が違うので、国際的な取引のときにそうしうた請求方式があります。ただし、通常は、Debit & Credit ですが。 会社名はひとつですか?会社名が複数混じっているなら、当然不可能ですね。ソートして、人間の手によるものぐらいしか考えられません。いずれにしても、私の考えているとおりなら、よほどVBAが得意でないと、ここでアドバイスしたぐらいでは、難しいような気がします。まして、コードを回答者が最初から書くなんていうのは、ここのローカル規約に触れてくると思います。今、自信がないようでしたら、ソートして手作業でも、紙の上よりも遥かに便利だと思います。 もし、コードがある程度できているなら、レイアウトを付けて説明してください。ある程度はアドバイスは出来ると思います。 もし、私の想像どおりではなかったら、補足に、もう少し詳しくご説明ください。

Cogitation
質問者

お礼

ご回答ありがとうございます。 チェック対象となる金額は、ある項目でソートすることによって、縦に並んで表示されます。 ここまでデータを整えることができればあと少しかな、と思っていたのですが何だか難しそうですね。これからコードを書いていこうと思っているので現在コードはありません。 教えていただいた知識を元にして、もう少し検討してみたいと思います。 ご丁寧にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
noname#140971
noname#140971
回答No.3

足してゼロになればいいのでは・・・。

Cogitation
質問者

お礼

ご回答ありがとうございます。 データ数が20,000件ほど混在していて、そのうちのデータを判断させたいのです。質問が言葉足らずですみません。

全文を見る
すると、全ての回答が全文表示されます。
  • S-Fuji
  • ベストアンサー率36% (592/1624)
回答No.1

マクロを使わなくても、A1に「1、000」B1に「-1、000」と入っているのでしたら、C1に =IF(A1+B1=0,"*","") でも良いでしょう。 但し、両方とも空白の時に「*」が表示されるのがいやな場合は、 =IF(A1=0,"",IF(A1+B1=0,"*",""))

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excel データ切り出しマクロについて

    Excelのマクロについてお聞きしたいと思います. たくさんあるテキストファイルの一部を切り取って貼り付けたい場合は どうしたらいいのでしょういか? マクロではない流れとしては テキストファイルを開く ↓ 全選択してコピー ↓ Excelに貼り付ける ↓ 必要な部分だけ切り取る ↓ 貼り付け データの例としては A 12.3 78.5 B 13.5 65.5 C 23.5 65.8 とあるとしたら一番右側の列のデータのみ(78.5,65.5,65.8) だけ必要とします(切り取りたい部分) どのようなマクロを組んだらいいのでしょうか? よろしくお願いいたします.. マクロ実行時にファイルを選択できる機能もつけていただけたら 嬉しいです. できましたら全コードを載せていただけたら幸いです.

  • エクセル2000のマクロについて・・・

    あるエクセルで作られたデータが日々メールにて送られてきます。 そのデータを見ながら必要なところを販売管理のソフトに打ち込む作業をしています。 ですがその打ち込む作業でその中の決まった列が不必要になります。 そこでマクロを組んで瞬時に必要な列だけを残して表示させたいの ですがどうすればよいのでしょう? 補足が必要ならば御願いします。

  • エクセルにWEBからデータを取り込むマクロ

    WEBにあるデータの一定の範囲をエクセルに取り込みたいのですが、 範囲を指定するマクロを記述する場合 「ここから」と「ここまで」という記述の方法を教えてください。 (エクセル2010/WindowsXP)

  • EXCELのマクロで困ってます。

    EXCELのマクロで困ってます。 今EXCELでデータを処理しているのですが、 データが膨大にあり、処理するのにすごく時間がかかっています。 そこでマクロで何とかできないかと思っています。 EXCELに詳しい方のマクロ作成方法について教えてください。 質問内容は 画像の まずはB列の:の後ろにC列、D列、E列の文字を挿入し、それを次の列、次の列と進めていきたいのですが 可能でしょうか? それに開始ボタンと終了ボタンを作って 3人で作業したいと思っています。(後の二人はあまりマクロを知らないので簡単に動作させたい) コピペでは間に合わなく、ホントに困ってます。 よろしくお願いいたします。

  • エクセル マクロについて

    エクセルマクロで月毎のデータを同じシートの次の列に 貼り付けるにはどうすればいいのでしょうか?

  • エクセルのデータが重いのはなぜ?

    会社の経理のデータなのですが、エクセルで作成した、ひとつのファイルが20Mぐらいあります。 特にマクロデータを使用しておらず、単純な計算式しか使ってません。また画像が貼り付いてもいません。 気になるのが、罫線が列全体にかかっている箇所がいくつかあり、右のスクロールバーが下の方までデータがあるかのように、非常に短くなってます。もちろん、データは100行くらいまでしかありません。 この辺りもデータの重さと関係しているのでしょうか?

  • エクセルのデータが重いのはなぜ?

    会社の経理のデータなのですが、エクセルで作成した、ひとつのファイルが20Mぐらいあります。 特にマクロデータを使用しておらず、単純な計算式しか使ってません。また画像が貼り付いてもいません。 気になるのが、罫線が列全体にかかっている箇所がいくつかあり、右のスクロールバーが下の方までデータがあるかのように、非常に短くなってます。もちろん、データは100行くらいまでしかありません。 この辺りもデータの重さと関係しているのでしょうか?

  • Excelでマクロを組んで、データを繰り返し抜き出したいのですが

    Excelでマクロを組んで「データ取得→データ並び替え→データ取得・・」と繰り返す作業を自動的に行いたいと思っています。 元データ       一回目     二回目    │A│        │A│      │A│    │列│       │列│     │列│   ─┼─┼─  ──┼─┼  ──┼─┼ 1行 │k │    3行│m│   2行│d │ ──┼─┼─  ──┼─┼  ──┼─┼ 2行 │d │    5行│z │   4行│r │ ──┼─┼─  ──┼─┼  ──┼─┼ 3行 │m │    8行│e │   6行│p │ ──┼─┼─  ──┼─┼  ──┼─┼ 4行 │r │    9行│f │   7行│s │ 例えば、上記の元データのようにデータ(小文字アルファベット)を入力し、その後一回目、二回目・・・とデータの並べ替えを繰り返し、その都度上から二段目のデータのセルのデータ(この場合それぞれz、r)を取得して変数xに収めるという作業を繰り返し自動的に行うようにしたいのですが、「x=Cells(2,1)」とマクロを書くと非表示になっているセルA2のデータ(この場合d)を常に取得してしまいうまくいきません。 これはどのような方法で解決できるのでしょうか。 OSはWindows2000、ExcelはExcel2000を使っています。 よろしくお願いします。

  • Excelのマクロを作ってもらえますか?

    こんにちは。 エクセルのマクロで、Sheet1に転々と 入力されているデータを すべてA1の列へ統一して並べ替え(2) 同じデータの数を計算してB2へ記述する(3)などという マクロができるなら作っていただけないでしょうか? もし、数の入った行のみ残して削除までできれば最良なの ですが(4) (2) AA-20 AA-20 AA-20 BB-30 CC-30 CC-30 CC-30 (3) AA-20   3 AA-20 AA-20 BB-30   1 CC-30   3 CC-30 CC-30 (4) AA-20   3 BB-30   1 CC-30   3 このようになのですが、 お時間のあるときで結構ですので宜しくお願いします。

  • Excel マクロ データ集計

    Excel マクロ データ集計 Sheet1にある情報を集計して、集計結果をSheet2に貼り付けるマクロを考えています。 「Sheet1」のA列、B列、C列が合致した場合に同じ商品とみなします。 C列で「新鮮」とついている場合には、商品名で一致させて、Sheet2の 同じ商品名のところに記載します。 「Sheet2」に貼り付ける際、「Sheet1」のA列は不要です。 どのようなマクロを作成すればよろしいでしょうか。 画像を添付します。 「Sheet2」は完成形です。

喪中期間のお歳暮について
このQ&Aのポイント
  • 喪中期間中でもお歳暮を送ることは問題ありませんが、配慮が必要です。
  • お歳暮を送る際には喪中はがきを同封しましょう。
  • 喪中期間中のお歳暮は、相手の立場や関係性によって適切な対応が求められます。
回答を見る

専門家に質問してみよう