• 締切済み

EXCEL入力値を条件によって他セルにコピーしたい

VBA独学で勉強している初心者です。 試行錯誤の連続で、ここでつまずきました。 どうか、誰かご支援お願いします。 画像添付ファイルを参考に下記にやりたいことを記入させていただきます。 J列にある「伝票単価」が-(マイナス)金額の場合に、その金額を次の条件に該当するL列「値引単価」にマイナスを省いた金額で表示したいです。 条件としては、A列「物件No.」、E列「商品コード」、G列「数量」が等しい時です。 なおかつ、「伝票単価」がプラス金額の行のL列「値引単価」にその金額をコピーし、マイナスの伝票単価の行は削除したいです。 基本的に、「伝票単価」はプラスとマイナスでセットになっています。

みんなの回答

  • masnoske
  • ベストアンサー率35% (67/190)
回答No.3

あなたがやりたことの前提条件が抜けているので、質問させてください。 A列、E列、G列が等しく、J列がマイナスの行は1つだけでしょうか。  Yes → 回答が見つかるかも知れません。  No → A列、E列、G列が等しく、J列がマイナスの行では、J列の値は同じでしょうか。       Yes → 回答が見つかるかも知れません。       No → L列の表示元であるJ列が複数あるため、他に条件が必要です。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

これはJ列でマイナスの単価金額が入ったシートの表が既に出来ている場合で、そのJ列の値だけを、条件に合えば、書き換えたい(質問のコピーとは良くわからないが?別シートに作り直すと言う発想もありえるが)のか。 >A列「物件No.」、E列「商品コード」、G列「数量」が等しい時です。 この3つが等しいことはありえないだろう。だから書くとすれば 「以前の行に、今の行とA列「物件No.」、E列「商品コード」、G列「数量」について、それぞれくらべて、3列とも等しい行があれば」、と言うことか。 表現は良く注意して書いてください。 >、「伝票単価」がプラス金額の行のL列「値引単価」にその金額をコピーし、マイナスの伝票単価の行は削除したいです。 の意味も良くわからないが、前段が主要課題だろう。 ーー エクセルVBAぐらいでは3条件一致の有無と場所《行)を判別するのは難しいのだ。データベース言語などで無いと難しい。 (1)3列を結合した文字列を作って、同一の文字列が上の行のものに見つかるかなどならできる。 (2)または3列で序列をつけて並べ替えして、直前直後のデータを比較して、判別していくて手も在る。 (3)今まで出てきた3条件の組み合わせを配列などに記録して、毎行その配列内にあるかを検索する手もあるが、 初心者の領域ではない。 素人では、3条件一致は一瞬にして頭にイメージできるが、プログラム的には難しいのだ。 ーー 上記に当てはまる回答のコードは初心者には難しいと思う。上述にあてはまらない良い回答が出るかどうか待ってください。

tostake
質問者

お礼

表現方法は難しいですね。 imogasiさんのおっしゃる通り、「以前の行に、今の行とA列「物件No.」、E列「商品コード」、G列「数量」について、それぞれくらべて、3列とも等しい行があれば」と言うことです。 やはり初心者には難しいんですね。そこは手作業でするのが良いかもしれませんね。 ありがとうございました。

  • imo8001
  • ベストアンサー率14% (26/179)
回答No.1

うーん なんかよくわかりません A,E,G列は要素が違うのに何で等しいという条件ができるのですか? どう考えても物権NOと数量が=なんてないと思いますが。 違うんだろうけど もう少し整理して書いたほうがいいです VBAを勉強しているなら やりたいことを ”日本語コード” で書いてみたらいいのでは? そうすればもっと意味が伝わると思いますが

tostake
質問者

お礼

言葉での表現は難しいですね。 これからは整理して書いてみます。 アドバイスありがとうございました。

関連するQ&A

専門家に質問してみよう