• ベストアンサー

列と列が条件に合致したら表示を変える

エクセル2013 1行目は見出し。 J列 に価格が入っています。 N列に客先名が入っています。(仮に 東京、大阪、福岡・・・) A列の最終行を取得して J列が 0 で、且つN列が 東京 だったら-PMを加え N列の東京を 東京-PM と表示。 また、 J列が 0 で、且つN列が 大阪 だったら-PMを加え N列の大阪を 大阪-PM と表示。 J列が 0 でなかったら N列はそのまま。 これらをマクロで組むにはどうしたら宜しいでしょうか? ご教示ください。

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.2

一例ですが。。。 Sub PMSET() For i = 2 To Range("J2").End(xlDown).Row WK = Replace(Cells(i, 14), "-PM", "") If Cells(i, 10) = 0 Then WK = WK & "-PM" End If Cells(i, 14) = WK Next i End Sub

maron1010
質問者

お礼

シンプルで動作も確認できました。 ありがとうございました。

その他の回答 (2)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんにちは! 色々やり方はあると思いますが、一例です。 Sub Sample1() Dim k As Long, lastRow As Long, myAry lastRow = Cells(Rows.Count, "A").End(xlUp).Row myAry = Array("東京", "大阪") For k = 0 To UBound(myAry) With Rows(1) .AutoFilter field:=10, Criteria1:=0 .AutoFilter field:=14, Criteria1:=myAry(k) End With If Cells(Rows.Count, "A").End(xlUp).Row > 1 Then Range(Cells(2, "N"), Cells(lastRow, "N")).SpecialCells(xlCellTypeVisible) = myAry(k) & "-PM" End If Next k ActiveSheet.AutoFilterMode = False End Sub こんな感じではどうでしょうか?m(_ _)m

  • kkkkkm
  • ベストアンサー率65% (1623/2463)
回答No.1

> A列の最終行を取得して 最終行=Range("A" & Rows.Count).End(xlUp).Row > J列が 0 で、且つN列が 東京 だったら-PMを加え > N列の東京を 東京-PM と表示。 > また、 > J列が 0 で、且つN列が 大阪 だったら-PMを加え > N列の大阪を 大阪-PM と表示。 If Range("J" & 最終行).Value = 0 Then If Range("N" & 最終行).Value = "東京" Then Range("N" & 最終行).Value = "東京-PM" ElseIf Range("N" & 最終行).Value = "大阪" Then Range("N" & 最終行).Value = "大阪-PM" End If End If > J列が 0 でなかったら N列はそのまま。 上記で0の時の処理をしているので、0でない場合は何もしなくてもN列はそのままです。 という、処理でいかがでしょう。

関連するQ&A

  • 条件に合致した行を削除

    Excel2013 マクロをご指南ください。 A列からZ列までデータがあります。 最終行は常に変動します。 E列に日付。Z列に時刻。 全データの中で E列の日付で最も古い日付(同じ日付あり) 且つ  Z列の時刻で6:00:00(6時)以前に合致する行を削除する マクロをご教示ください。

  • 複数列を1列に表示させて追加する方法。

    どなたかご存じでしたらご回答をお願いします。 エクセルシートのA列~J列に値が入っており、それぞれの最終行に値を追加しております。 【質問】  A列~J列まで値の入ったエクセルシート(各種値)を別エクセルシート(纏め)のA列に  1つに纏め、エクセルシート(各種値)のA列~J列の最終行に追加されるたびに  エクセルシート(纏め)の最終行に追加する方法が知りたいです。 ●エクセルシート(各種値)  A   B  C  D  E  F  G  H   I   J                :  111 222 333 444 555 666 777 888 999 000  123 456 789 112 223 334 445 556 222 778 <= 最終行追加! ●エクセルシート(纏め)  A   :  111  222  333  444  555  666  777  888  999  000  123 <= A列最終行  456 <= B列最終行  789 <= C列最終行  112 <= D列最終行  223 <= E列最終行  334 <= F列最終行  445 <= G列最終行  556 <= H列最終行  222 <= I列最終行  778 <= J列最終行 【注意事項】   ・A列~J列に入っている値には同じ値が入る場合があります。(重複あり)   ・使用するエクセルは2010です。 以上、よろしくお願いします。    

  • マクロ 書式の条件に合致したら〇をつける

    添付をご覧ください。 A~C列、D~F列、G~I列、それぞれの3グループのうち、1行ずつで、色塗りがあり、かつ太字フォントがあれば、J列に〇を付けるというマクロが知りたいです。添付の例だとJ10に〇が付きます。分かりにくいですが、赤と緑のフォントが太字で、どちらも含める、色は3色あり、すべて含める、としたいので、「色塗りで太字なら、」で大丈夫です。エクセル2013使用です。

  • 行や列の表示、非表示の方法を教えてください。

    客先よりいただいたエクセルのデータで、 行や列が非表示になっており、入力編集に困っております。 どなたか、表示また非表示にする方法を教えてください。 よろしくお願いします。

  • EXCELで列の値を返す関数

    いつもお世話になっております。 EXCELで表をつくり、一番新しいデータが入力されている列の値を返したいのです。具体的には、   A  B  C  D  E   D  東京 大阪 名古屋 広島 福岡 1 120円   450円     ←側から見て一番最初の入力情報の列 2    50円     20円 3       10円 4             120円 上の表の場合、 1行目の場合は名古屋 2行目は広島 3行目は名古屋 4行目は福岡という値をD列に返したいのです。 関数または、マクロをご教示くださいますよう、お願いいたします。

  • マクロ 結合した列の一部の非表示

    結合されているセル行の中から数列だけを非表示にするマクロ QNo.1413139の回答を参考にしたら、列は、できました。しかし、変数を使ったりするとエラーがでました。 行の英文字列をうまくあらわす方法を教えてください。 例えば、B1:U1を結合して、D、G、Jの列全体のいくつかを非表示にしたい場合はどうしたらいいでしょうか?

  • Excel マクロで 列と行を非表示にするには?

    Excel マクロ初心者です ボタンで sheetの 行1~10を非表示にして その後さらに列のBA~BJを非表示にするマクロを設定したいのですが マクロの自動記録にすると シート上一部のセルのみが残り その他は全て消えてしまいました。 行または列だけの非表示の自動記録は 正常に動きますが 単独のマクロを行と 列でそれぞれ作り、片方を動かした後 もう一方を動かすとやはり一部のみ残り 他は全て消えてしまいます。 マクロで行と、列を同時に非表示にするのは無理なんでしょうか?

  • エクセルのマクロでセルの内容によって行を挿入

    エクセルのマクロでこんなことは出来るのでしょうか。   A    B 1 東京  1 2 大阪  3 3 札幌  2 4 福岡  1 5 横浜  2 上記のような表をマクロの処理で下記のように書き換えることは出来るでしょうか。   A    B 1 東京  1 2 大阪  1 3 大阪  1 4 大阪  1 5 札幌  1 6 札幌  1 7 福岡  1 8 横浜  1 9 横浜  1 B列に入ってる数字の分だけ行を作りたいのです。 (B列の数字マイナス1行を挿入する形になります) 書き換えがややこしければ、別の場所に作り直してもかまわないので お願いします。

  • マクロで困っています。3列を1列に合体したいです

    マクロ初心者なのですが、どなたか助けていただけませんでしょうか? 社名-番号1-番号2-番号3 T社 1 2 3 T社 1 2 3 T社 1 2 3 N社 1 2 3 N社 1 2 3 N社 1 2 3 O社 1 2 3 O社 1 2 3 O社 1 2 3 上記表があったとして、私がマクロでしたい完成表は下記です。 社名-番号1 T社 1 T社 2 T社 3 N社 1 N社 2 N社 3 O社 1 O社 2 O社 3 最終行は不定期です。 1社につき3行あったとして、番号2列と番号3列を番号1列に合体させたいのです。 どなたかお力をお貸し頂けませんでしょうか?

  • Excelで列を非表示にするマクロ

    マクロ初心者なのですが、 Excelで印刷前に印刷しなくてよい列を非表示にしたいので、 列を非表示にするマクロを作りたいのですが、 うまくいかないので方法を教えていただきたいです。 表のA~Nにデータが入っていて、 CとGの列を非表示にしたいのですが。 よろしくお願いします。

専門家に質問してみよう