[[20200320222643]] 『A列とB列のデータとD列とE列のデータを全て同じに』(ハマたか) ページの最後に飛ぶ

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

 

『A列とB列のデータとD列とE列のデータを全て同じにする方法』(ハマたか)

下記処理を200行まで繰り返し
最終的にはA1とB1のデータとD1とE1のデータが全て同じにすることが目的となります。

エクセルデータ
A列 (A1:A200) 文字列(様々なサイト名称)
B列 (B1:B200) 数値(20か40のどちらかがはいります)

C列 (C1:C200) 空白

D列 (D1:D200) 文字列(様々なサイト名称)
E列 (E1:E200) 数値(20か40のどちらかがはいります)

処理1
もしA1とD1が同じ文字列 かつ B1とE1が同じ文字列であればC列に"ok"と入力。

処理2
もしA1とB1のデータがD1とE1のデータのどちらか、またはどちらも違う場合は、下記を実行

1.
D1:E1〜最終行(D200:E200)の
セルを全選択し切り取り
一段下D2:E2にペースト
✳︎この時点でD1:E1は空白になる

2.
D1:E1の空白のセルにA1:B1のデータをコピペ

3.
D1:E1を起点にD200:E200までのセルに
D2(文字列)かつE2(数値)の完全一致するデータがあるか検索する。
あれば見つけたセルは削除

処理3
上記”処理2”の逆の処理、
もしD1とE1のデータがA1とB1のデータのどちらか、またはどちらも違う場合は、A列B列に対し1.〜3.の逆の処理を行う

以上の処理をすることにより
A1とB1のデータとD1とE1のデータが全て同じとなるはず、、、です。
下記コードのF8で確認した時点で
D1&E1のデータがA1&B1のデータのどちらか、またはどちらも違う場合でも処理されず
スキップされてしまう事象が発生しております。 

また、どこに”処理2”3.の処理を入れればよいかわからずの状態となります。
ご教示お願い致します。

=途中まで考えたコード=
////////////////////////////////////
Sub Macro4()

    Dim i 
    For i = 1 To 200
        If Cells(i, 1) = Cells(i, 4) And Cells(i, 2) = Cells(i, 5) Then
            Cells(i, 3) = "ok"

        ElseIf Cells(i, 1) <> Cells(i, 4) And Cells(i, 2) <> Cells(i, 5) Then
                    Cells(i, 4).Select
                    Range(Selection, Selection.End(xlToRight)).Select
                    Range(Selection, Selection.End(xlDown)).Select
                    Selection.Cut
                    ActiveCell.Offset(1, 0).Select
                    ActiveSheet.Paste

                        Cells(i, 1).Select
                        Selection.Copy
                        Cells(i, 4).Select
                        ActiveSheet.Paste

                        Cells(i, 2).Select
                        Selection.Copy
                        Cells(i, 5).Select
                        ActiveSheet.Paste
        End If
    Next i

 End Sub
////////////////////////////////////////////////

< 使用 Excel:Excel2016、使用 OS:Windows10 >


AndをOrに変えてF8でステップ実行して確認してみてください。
(tkit) 2020/03/21(土) 00:03

D1:E200を一段下にカット&ペーストすると、D2:E201に貼り付けられますが
200より大きい行のデータは無視しますか?
それとも、必ずA1:B1と同一のデータが含まれていて(それを削除することにより)データ量は200行目までに維持されますか?

また、逆の処理というのはどの行で行われますか?
1行目の処理でA1B1とD1E1のデータが異なっているとき
A1B1と同一データがD1E1に入力され
もともとD1E1に入っていたデータはD2E2に移動していますが、
そのデータはもともとA2B2にあったデータと比較されますか?
それとも移動した時点で比較はされず、A2:B200のデータを一段下にカット&ペーストしてD2E2のデータをA2B2にコピーしますか?

もしその場合、そのデータの順番にも意図や意味がありますか?

(きまぐれ) 2020/03/21(土) 02:56


ご返答ありがとうございます。

>D1:E200を一段下にカット&ペーストすると、D2:E201に貼り付けられますが
>200より大きい行のデータは無視しますか?

無視します
データが200行より大きくなることがないので
200行に設定しております。。

>また、逆の処理というのはどの行で行われますか?

こちら考えなおしたのですが、
処理1から処理3までの処理が完了したら
A2:B200にあるデータは、すべてD2:E201に反映されるので
D2:E201にしかないデータは、一番したの行に残ると思います。
その為、現時点での逆の処理はご放念頂き
まずは、処理1から処理3までの処理をうまく完了されることで
良いのかと存じます。
(ハマたか) 2020/03/21(土) 10:03


 こんにちは!
トピ主さんのお望みのことをコードにしようと思いましたが、
読解力が足りないのか理解出来ませんので
もしも良かったら200行とは言わず下記の様なデータがあったとして解を書いて頂けませんか?

 ひょっとしたら私でもお力になれるかも??しれません。。(そん大口をたたいて大丈夫か?SoulMan? だから右端に書いてます(^^;)

 asas1	20	asas1	20
asas2	40	asas2	40
asas3	20	asas3	40
asas4	40	asas4	20
◇asas5	20	asas5	40
asas6	40	asas6	40
asas7	20	asas7	20
asas8	40	▲asas8	40
asas9	20	asas9	20
asas10	40	asas10	40
asas11	20	◆asas1120
asas12	40	asas12	40
asas13	20	asas13	20
asas14	40	asas14	20
asas15	20	asas15	40
(SoulMan) 2020/03/21(土) 10:41

 おはようございます ^^
お師匠様のサンプルをお借りして。。。
まさかですが ↓ ではないですよね。^^:。。。 ← どぉなればいいのかよく理解できていない私 
asas1	20	asas1	20
asas2	40	asas2	40
asas3	20	asas3	20
asas4	40	asas4	40
◇asas5	20	◇asas5	20
asas6	40	asas6	40
asas7	20	asas7	20
asas8	40	asas8	40
asas9	20	asas9	20
asas10	40	asas10	40
asas11	20	asas11	20
asas12	40	asas12	40
asas13	20	asas13	20
asas14	40	asas14	40
asas15	20	asas15	20
(隠居じーさん) 2020/03/21(土) 11:03

わたしも「処理3」はよくわかりませんが、そのほかの部分について考えてみました。

■1
とりあず、VBAの世界では基本的にActivet〇〇、Selection.××といった書き方をせずとも、対象となるオブジェクト(シートやセルなど)を明示することで操作が可能です。

また、【Paste】メソッドという命令を実行していますが、【Copy】メソッドの引数に貼付先セルを指定することで代用が可能です。
http://officetanaka.net/excel/vba/beginner/10.htm

さらに、【Copy】メソッドはセル範囲でも対応できます。

■2
上記を踏まえて、提示のコードを整理するとこうなります。

    Sub 整理()
        Dim i
        Stop  'ブレークポイントのかわり

        For i = 1 To 200
            If Cells(i, "A") = Cells(i, "D") And Cells(i, "B") = Cells(i, "E") Then
                Cells(i, 3) = "ok"

            ElseIf Cells(i, "A") <> Cells(i, "D") And Cells(i, "B") <> Cells(i, "E") Then
                With Cells(i, 4)
                    Range(.Cells, .Cells(Selection.End(xlDown).Row, .Cells.End(xlToRight).Column)).Cut
                    ActiveSheet.Paste Destination:=.Offset(1, 0)

                    Range(Cells(i, 1), Cells(i, 2)).Copy Cells(i, 4)
            Else
                MsgBox "どちらか一方のみ不一致"
            End If
        Next i
    End Sub

そして、既にアドバイスがあったように【ステップ実行】すれば、容易に気づけるでしょうが

 A列&B列 と D列とE列 が
    両方一致・・・・・・・Then節が実行される
    両方不一致・・・・・・Else If節が実行される
    どちらかのみ不一致・・Else節が実行される(元コードには記述がないのでスキップしたように見える)

ということになってますよね。

■3
ですので、
>もしA1とB1のデータがD1とE1のデータのどちらか、またはどちらも違う場合
としたいのであれば既にアドバイスされているとおり

 ElseIf Cells(i, "A") <> Cells(i, "D") or Cells(i, "B") <> Cells(i, "E") Then
                                      ^^^^  
と修正するか
 Else

としないとダメですね。
さらに、A(D)とB(E)どちらが一致してないのかチェックをする必要がないなら、ちょっと工夫すれば条件は1つで足ります。

■4
踏まえて、処理1、処理2を想像して行を読み替えつつ、コードを私なりに直してみるとこうでしょうか

    Sub 整理()
        Dim i
        Stop  'ブレークポイントのかわり

        For i = 1 To 5
            If Cells(i, "A").Value & "_" & Cells(i, "B").Value = Cells(i, "D").Value & "_" & Cells(i, "E").Value Then
                Cells(i, 3) = "ok"
            Else
                Range(Cells(i, "D"), Cells(i, "E")).Insert Shift:=xlDown
                Range(Cells(i, "A"), Cells(i, "B")).Copy Cells(i, "D")

                Range(Cells(i, "D"), Cells(Rows.Count, "E").End(xlUp)).RemoveDuplicates Columns:=Array(1, 2), Header:=xlNo
            End If
        Next i

    End Sub

でもこれって、一度行が挿入されたら AB = CD になることはなさそうにおもうんですが設計通りですか?

■5
ちなみに、A&Bの組み合わせに重複がないのであれば、処理1、処理2はループ処理せずとも

 (1) A1:B200をコピーする
 (2) D1に挿入(下にシフト)する
 (3) D1:D400 を対象に「重複の削除」を実行する

だけで済むんじゃないかとおもいます。
C列に"ok"と書き込むことが重要でなければ、検討されてみてはどうでしょうか?

(もこな2) 2020/03/21(土) 13:21


上記コメントありがとうございます!
超初心者につき■4のコードが理解できないですがうまく動いているようです。

■5の重複のご説明ですが、実際処理したいファイルには下記のように集計行がさらに1行あるので
集計数を残して対応すると処理ができないかと思います。
エクセルファイルで見ていただけると説明しやすいのですが、文書で書くと説明しずらかったので省いてしまいました。
申し訳ないです。。

下記にコードを下記直して実行したら上手く動きました!
実際は142行までのデータがありますが今回は10行で集約してみました。
こちら重複のポップアップ表示をなしで動かす方法も教えて頂けるとたすかります。

●実際の表

12月 1月
サイト名称 NO 集計 サイト名称 NO 集計

PD浦安市 20 17 PD浦安市 20 33
PD浦安市 40 40 PD浦安市 40 62
東京新木場 40 3 東扇島A棟 20 13
東京新木場 20 5 東扇島A棟 40 7
東扇島A棟 40 4 東扇島B棟 20 1
東扇島B棟 40 1 東扇島B棟 40 1
東扇島B棟 40 2 田小美玉市 40 3
文書倉庫S 20 1 田小美玉市 20 1
ロジ行田市 20 1 横浜C町田 40 2
ロジ行田市 40 2 ラン船橋市 20 1

●コード
*ご教示いただきましたコードを上記表にあわせて書き直しました

    Sub 整理()
        Dim i
        Stop  'ブレークポイントのかわり
        For i = 4 To 13
            If Cells(i, "A").Value & "_" & Cells(i, "B").Value = Cells(i, "E").Value & "_" & Cells(i, "F").Value Then
                Cells(i, 4) = "ok"
            Else
                Range(Cells(i, "E"), Cells(i, "G")).Insert Shift:=xlDown
                Range(Cells(i, "A"), Cells(i, "B")).Copy Cells(i, "E")
                Range(Cells(i, "E"), Cells(Rows.Count, "G").End(xlUp)).RemoveDuplicates Columns:=Array(1, 2), Header:=xlNo
            End If
        Next i
    End Sub

(ハマたか) 2020/03/21(土) 19:27


■6
>下記のように集計行がさらに1行あるので
   _____A________B_____C____D________E________F___G___ 
  3  サイト名称  NO  集計  比較  サイト名称  NO  集計
  4  PD浦安市  20   17         PD浦安市  20   33
  5  PD浦安市  40   40         PD浦安市  40   62
  6  東京新木場  40    3         東扇島A棟  20   13
  7  東京新木場  20    5         東扇島A棟  40    7
  8  東扇島A棟  40    4         東扇島B棟  20    1
  9  東扇島B棟  40    1         東扇島B棟  40    1
 10  東扇島B棟  40    2         田小美玉市  40    3
 11  文書倉庫S  20    1         田小美玉市  20    1
 12  ロジ行田市  20    1         横浜C町田  40    2
 13  ロジ行田市  40    2         ラン船橋市  20    1

提示されているものから想像すると集計【列】が1列ずつあるようにみえますけど違います?
また、比較結果を出力する列はボツになったんですか?

■7
>■4のコードが理解できない
ステップ実行してみましたか?
理解できないだけではわかりませんから、具体的に〇〇〇の部分が×××になる理由がわからないというような聞き方をして頂くと、説明できるかもしれません。

■8
>こちら重複のポップアップ表示をなしで動かす
こちら↓が参考になったりしませんか?
https://www.moug.net/tech/exvba/0150081.html
https://kosapi.com/post-1322/

■9
ちなみに、集計行(列?)のほうを置いておいても、■6のとおりのデータの場合、9行目と10行目でA,B列が同じなので、■5のアプローチは不可ですね。

(もこな2) 2020/03/21(土) 21:17


上記回答ありがとうございます。

■6はおっしゃる通りA列〜G列までになります

■7はわからない点をもう少し調べてみます

■8は頂きましたUrl参照し勉強致します

■9は私が記載したデータがそもそもおかしいですね。
申し訳ありません。基本A列も、E列も同じサイト名はないのですが
サイト名をRight関数使用し、最後の5文字にして表示した為、
このような事象が発生してしまったようです。

もう一度データを精査しコメント致します。
(ハマたか) 2020/03/21(土) 22:10


■10
>基本A列も、E列も同じサイト名はない
ならば、■5のアプローチが使えるのではないですか?
   Sub さんぷる2()
      Stop

      Range("A4:C203").Copy
      Range("E4").Insert Shift:=xlDown
      Application.CutCopyMode = False
      Range("E4:G403").RemoveDuplicates Columns:=Array(1, 2), Header:=xlNo
   End Su

>集計数を残して対応
↑の意味がよく理解できませんが、A,BとE,Fが同一の場合C列よりG列を優先したいということなら、上記を「E4セルに挿入」するんじゃなくて、「E204に貼付け」に直すだけで済みませんか?

 ただし、並び順はA,B列の順番にしたいとかだと、一工夫必要になる

(もこな2) 2020/03/22(日) 08:42


表を再度精査してみました。
何度も申し訳ありませんが、下記手順で考えております。

   _____A________B_____C____D________E________F___G___ 
  3  サイト名称  NO  集計  比較  サイト名称  NO  集計
  4  PD浦安市  20   17         PD浦安市  20   33
  5  PD浦安市  40   40         PD浦安市  40   62
  6  東京新木場  40    3         東扇島A棟  20   13
  7  東京新木場  20    5         東扇島A棟  40    7
  8  東扇島A棟  40    4         東扇島B棟  20    1
  9  東扇島B棟  40    1         東扇島B棟  40    1
 10  東扇島C棟  40    2         田小美玉市  40    3
 11  文書倉庫S  20    1         田小美玉市  20    1
 12  ロジ行田市  20    1         横浜C町田  40    2
 13  ロジ行田市  40    2         ラン船橋市  20    1

=やりたいこと=

12月のデータ(A列〜B列)と1月のデータ(列E〜列F)を対比し
同じ行にある12月のデータ(A列〜B列)と1月のデータ(列E〜列F)完全に一致していたらD列に”OK”といれる。
*この際C列、G列の数値は無視

もし同じ行にある12月のデータ(A列〜B列)と1月のデータ(列E〜列F)を対比し
A列とE列が一致しない、またはB列とF列が一致しない場合、またはどちらも一致しない場合
下記処理を行う

1.
A6とB6と同じ行にある
E6:F6〜E13:F613のセルを選択し切り取り
一段下E7:F7にペースト
✳この時点でE6:F6は空白になる

   _____A________B_____C____D________E________F___G___ 
  3  サイト名称  NO  集計  比較  サイト名称  NO  集計
  4  PD浦安市  20   17  ok     PD浦安市  20   33
  5  PD浦安市  40   40 ok       PD浦安市  40   62
  6  東京新木場  40    3         
  7  東京新木場  20    5         東扇島A棟  20   13
  8  東扇島A棟  40    4         東扇島A棟  40    7
  9  東扇島B棟  40    1         東扇島B棟  20    1
 10  東扇島C棟  40    2         東扇島B棟  40    1
 11  文書倉庫S  20    1         田小美玉市  40    3
 12  ロジ行田市  20    1        田小美玉市  20    1
 13  ロジ行田市  40    2          横浜C町田  40    2
 14                                           ラン船橋市  20    1

2.
E6:F6の空白のセルにA6:B6のデータをコピペ

   _____A________B_____C____D________E________F___G___ 
  3  サイト名称  NO  集計  比較  サイト名称  NO  集計
  4  PD浦安市  20   17  ok     PD浦安市  20   33
  5  PD浦安市  40   40 ok       PD浦安市  40   62
  6  東京新木場  40    3          東京新木場  40
  7  東京新木場  20    5         東扇島A棟  20   13
  8  東扇島A棟  40    4         東扇島A棟  40    7
  9  東扇島B棟  40    1         東扇島B棟  20    1
 10  東扇島C棟  40    2         東扇島B棟  40    1
 11  文書倉庫S  20    1         田小美玉市  40    3
 12  ロジ行田市  20    1        田小美玉市  20    1
 13  ロジ行田市  40    2          横浜C町田  40    2
 14                                           ラン船橋市  20    1

3.
E6(文字列)とF6(数値)と同じデータがE列、F列内にないか検索する。
もしダブりがあれば、ダブりのあるセルE列、F列、G列、を切り取りし
E6:F6にペーストする。

E6:F6からE列、F列内の下見てもダブりはないので下記ひょうとなります。

   _____A________B_____C____D________E________F___G___ 
  3  サイト名称  NO  集計  比較  サイト名称  NO  集計
  4  PD浦安市  20   17  ok     PD浦安市  20   33
  5  PD浦安市  40   40 ok       PD浦安市  40   62
  6  東京新木場  40    3         東京新木場  40    
  7  東京新木場  20    5         東京新木場  20
  8  東扇島A棟  40    4         東扇島A棟  20   13
  9  東扇島B棟  40    1         東扇島A棟  40    7
 10  東扇島C棟  40    2         東扇島B棟  20    1
 11  文書倉庫S  20    1        東扇島B棟  40    1
 12  ロジ行田市  20    1         田小美玉市  40    3
 13  ロジ行田市  40    2          田小美玉市  20    1
 14                                     横浜C町田  40    2        
 15                                     ラン船橋市  20    1

8列目の処理を行う際ダブりが発生するので
E列、F列、G列、を切り取りし
E8:F8にペーストする作業が生じます

   _____A________B_____C____D________E________F___G___ 
  3  サイト名称  NO  集計  比較  サイト名称  NO  集計
  4  PD浦安市  20   17  ok     PD浦安市  20   33
  5  PD浦安市  40   40 ok       PD浦安市  40   62
  6  東京新木場  40    3         東京新木場  40    
  7  東京新木場  20    5         東京新木場  20
  8  東扇島A棟  40    4         東扇島A棟  40 
  9  東扇島B棟  40    1         東扇島A棟  20   13
 10  東扇島C棟  40    2        東扇島A棟  40    7 ←!ダブリ!
 11  文書倉庫S  20    1        東扇島B棟  20    1
 12  ロジ行田市  20    1        東扇島B棟  40    1 
 13  ロジ行田市  40    2       田小美玉市  40    3   
 14                                     田小美玉市  20    1    
 15                                     横浜C町田  40    2    
16                                      ラン船橋市  20    1

ダブリのセルE列、F列、G列、を切り取りし
E8:F8にペーストする作業が生じます
この際、G列の集計を含めて切り取りしペースト致します。

   _____A________B_____C____D________E________F___G___ 
  3  サイト名称  NO  集計  比較  サイト名称  NO  集計
  4  PD浦安市  20   17  ok     PD浦安市  20   33
  5  PD浦安市  40   40 ok       PD浦安市  40   62
  6  東京新木場  40    3         東京新木場  40    
  7  東京新木場  20    5         東京新木場  20
  8  東扇島A棟  40    4         東扇島A棟  40    7    
  9  東扇島B棟  40    1         東扇島A棟  20   13
 10  東扇島C棟  40    2        
 11  文書倉庫S  20    1        東扇島B棟  20    1
 12  ロジ行田市  20    1        東扇島B棟  40    1 
 13  ロジ行田市  40    2       田小美玉市  40    3   
 14                                     田小美玉市  20    1    
 15                                     横浜C町田  40    2    
16                                      ラン船橋市  20    1

ブランクになった10列目のセルに対し
E列、F列、G列〜16行までの範囲を全選択し貼り付けします。

   _____A________B_____C____D________E________F___G___ 
  3  サイト名称  NO  集計  比較  サイト名称  NO  集計
  4  PD浦安市  20   17  ok     PD浦安市  20   33
  5  PD浦安市  40   40 ok       PD浦安市  40   62
  6  東京新木場  40    3         東京新木場  40    
  7  東京新木場  20    5         東京新木場  20
  8  東扇島A棟  40    4         東扇島A棟  40    7 
  9  東扇島B棟  40    1         東扇島A棟  20   13
 10  東扇島C棟  40    2        東扇島B棟  20    1
 11  文書倉庫S  20    1        東扇島B棟  40    1 
 12  ロジ行田市  20    1        田小美玉市  40    3   
 13  ロジ行田市  40    2       田小美玉市  20    1    
 14                                     横浜C町田  40    2    
 15                                     ラン船橋市  20    1
16                                      

以上のことを繰り返せば
12月と1月の表を対象にできる表が完成する見込みです
頑張って記載しましたが、上手く伝わって頂けると幸いです。

(ハマたか) 2020/03/23(月) 10:25


えっと。。。

■11
>12月のデータ(A列〜B列)と1月のデータ(列E〜列F)を対比し同じ行〜
これはもう説明済みですよね?

■12
>もし同じ行にある12月のデータ(A列〜B列)と1月のデータ(列E〜列F)を対比しA列とE列が一致しない
こちらも■11が真じゃない場合と表現すればよいことは説明済みです

■13
>1. A6とB6と同じ行にある〜
たぶん、■12のような状況が【6行目】だったときの説明をされているのでしょうが、こちらも【セル範囲の挿入】すれば同じことになるのは説明済みのつもりです。
そして私が、「一度行が挿入されたら〜」っていってるのは、ここで1行挿入されたために、たとえば【9行目】はもともと一致していたのに、挿入してEズレたために同じ行だけみたら不一致になりますよってことです。

■14
>2. E6:F6の空白のセル〜
同じく提示済み

■15
>3.〜
ようは、12月の「サイト名称、NO」が1月の「サイト名称、NO」に
 ある場合、集計列も含めて1月からその行を持ってくる
 ない場合、12月の「サイト名称、NO」をコピーしてその位置に入れる

ということなので、全体を整理すると

 (a) 1月の「サイト名、NO」の並び順は、12月の順番+その下に1月のみにあるもの
 (b) 12月のみにあるものの集計列は空欄、1月にもあるものは、そのまま1月分を採用

てことになるとおもいます。

■16
そうであれば、作業用の列(シート)を使えば手作業でも

 (1) 12月の「サイト名、NO」を作業列にコピペする
 (2) 1月の「サイト名、NO」(1)の下にコピペする
 (3) ↑を重複の削除で整理する
 (4) COUNTIFS関数で「サイト名、NO」を条件に、1月の集計を"合計"する
 (5)↑だとで1月には無いものは、0になるのでIF関数を組み合わせて""が返るようにする

みたいにすれば対応できるんじゃないでしょうか?

興味があれば↓をステップ実行して何をやっているか、また、どんな結果になるか調べてみてください。

    Sub さんぷる3()
        Dim 行 As Long

        Stop 'ブレークポイントのかわり

        With ActiveSheet

            '▼作業列へコピペ
            .Range("A4", .Cells(.Rows.Count, "B").End(xlUp)).Copy .Range("I4")
            .Range("E4", .Cells(.Rows.Count, "F").End(xlUp)).Copy .Cells(.Rows.Count, "I").End(xlUp).Offset(1)

            '▼重複の削除
            .Range("I4", .Cells(.Rows.Count, "I")).Resize(, 2).RemoveDuplicates Columns:=Array(1, 2), Header:=xlNo

            '▼数式の埋め込みなど
            行 = .Cells(.Rows.Count, "I").End(xlUp).Row
            .Range("K4:K" & 行).Formula = "=IF(SUMIFS($G$4:$G$403,$E$4:$E$403,I4,$F$4:$F$403,J4),SUMIFS($G$4:$G$403,$E$4:$E$403,I4,$F$4:$F$403,J4),""■"")"

            '▼値のみ1月部分に貼付して作業列は削除
            With .Range("I4", .Cells(.Rows.Count, "I").End(xlUp)).Resize(, 3)
                Parent.Range("E4").Resize(.Rows.Count, .Columns.Count).Value = .Value
                .Delete
            End With

            '▼数値ではなく、文字になっているセルををクリア
            On Error Resume Next
            .Range("G4", .Cells(.Rows.Count, "G").End(xlUp)).SpecialCells(xlCellTypeConstants, xlTextValues).ClearContents
            On Error GoTo 0

        End With
    End Sub

(もこな2 ) 2020/03/23(月) 20:16


コメント返信:

[ 一覧(最新更新順) ]


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