エクセル vbaについて質問です ①A列に重複があった場合黄色で塗りつぶす ②黄色で塗りつぶしたデータの行を全て シート2にコピー また、1行目はタイトルです。

Excel | Visual Basic49閲覧

ベストアンサー

0

ThanksImg質問者からのお礼コメント

できました!ありがとうございます!!!

お礼日時:2021/12/2 14:15

その他の回答(1件)

0

VBAで対応することもないでしょう。 シート1のA列からH列までの表で1行目は列の見出しで2行目から下方にデータが有るとします。 ①についてはA列からH列を選択してから「条件付き書式」から「新しいルール」を選択します。 「数式を使用して・」にチェックをして下の窓には次の式を入力します。 =AND($A1<>"",COUNTIF($A:$A,A1)>1) 「書式」の「塗りつぶし」のタブで黄色を設定してOKします。 ②については作業列を作って対応します。 J2セルには次の式を入力して下方にドラッグコピーします。 =IF(A2="","",IF(COUNTIF(A$2:A2,A2)=1,MAX(J$1:J1)+1,INDEX(J$1:J1,MATCH(A2,A$1:A1,0)))) K2セルには次の式を入力して下方にドラッグコピーします。 =IF(AND($A2<>"",COUNTIF(A:A,A2)>1),J2*100+COUNTIF(A$1:A2,A2),"") その後にお求めの表をシート2に作るとしてA1セルからH1セルまでにはシート1の列見出しを並べます。 A2セルには次の式を入力してH2セルまで横にドラッグコピーしたのちに下方にドラッグコピーすればよいでしょう。 =IFERROR(INDEX(Sheet1!$A:$H,MATCH(SMALL(Sheet1!$K:$K,ROW(A1)),Sheet1!$K:$K,0),COLUMN(A1)),"") なお、シート1の作業列が目障りでしたらそれらの列を選択して「非表示」にすればよいでしょう。