داگ یک جدول داده دارد که شامل ستونی از شماره قطعات است. این داده ها بر اساس ستون شماره قطعات مرتب شده اند. شماره قطعات منحصر به فرد نیست. به عنوان مثال، برخی از اعداد قسمت سه بار در جدول و برخی دیگر پنج بار ظاهر می شوند. داگ می خواهد جدول را طوری قالب بندی کند که ردیف های جدول جلوه "نوار سبز" داشته باشند.
به عنوان مثال، ممکن است پنج ردیف اول دارای شماره قطعه یکسانی باشند، بنابراین داگ میخواهد آن ردیفها به رنگ سبز باشند. دو ردیف بعدی دارای شماره قطعه متفاوتی هستند، بنابراین او میخواهد آنها سایه سبز نداشته باشند. سه ردیف بعدی دارای شماره قسمت بعدی هستند، بنابراین باید دوباره سبز شوند و غیره. هر بار که شماره قطعه تغییر می کند، سایه سطر (سبز یا سبز نشده) باید تغییر کند.
یک راه آسان برای انجام این کار ایجاد یک ستون کمکی است که بسته به شماره قطعه در ستون A 0 یا 1 را نشان می دهد. برای مثال، فرض کنید می خواهید ستون کمکی خود را در ستون Z قرار دهید. فرمول زیر در سلول Z2:
=IF(A2=A1,Z1,1-Z1)
فرمول پایین ستون Z را برای هر ردیف در جدول داده های خود کپی کنید. پس از اتمام، ستون Z شامل 1 یا 0 خواهد بود که تنها زمانی تغییر می کند که شماره قطعه در ستون A تغییر کند. سپس می توانید از مقدار ستون Z به عنوان یک مقدار کنترل کننده برای قالب بندی شرطی خود استفاده کنید. تنها کاری که باید انجام دهید این است که فرمول را به شکلی تنظیم کنید که اگر ستون Z حاوی 1 باشد، سلول های شما سبز شوند.
باید توجه داشته باشید که وقتی قالب بندی شرطی شما تنظیم شد و به درستی کار کرد، می توانید ستون Z را پنهان کنید تا برای کسی که از جدول داده های شما استفاده می کند حواس پرتی نباشد.
اگر به دلایلی نمی توانید از ستون کمکی استفاده کنید، یک فرمول بسیار جالب وجود دارد که می توانید در خود قالب شرطی استفاده کنید. فقط مطمئن شوید که جدول داده های شما بر اساس ستون A (شماره قطعات) مرتب شده است و سپس تمام سلول های جدول را انتخاب کنید، به استثنای سرفصل های ستون. سپس یک قالب شرطی تعریف کنید که از این فرمول استفاده می کند:
=MOD(SUMPRODUCT(--(($A$1:INDIRECT(ADDRESS(ROW()-1,1,3,1))
=$A$2:INDIRECT(ADDRESS(ROW(),1,3,1)))=FALSE)),2)
به یاد داشته باشید که این یک فرمول واحد است که در قانون قالب بندی شرطی، همه در یک خط وارد شده است. این فرمول فرض می کند که شماره قطعات در ستون A هستند و جدول داده ها در سلول A2 شروع می شود. علاوه بر این، اگر هر ردیفی را در جدول داده ها حذف کنید، می خواهید قالب شرطی را مجدداً در تمام سلول های جدول داده اعمال کنید.
در نهایت، هر تعداد ماکرو وجود دارد که می توانید برای اعمال قالب بندی بنویسید. تنها کاری که باید انجام دهید این است که ماکرو را از سلول های ستون A عبور دهید، تعیین کنید که آیا شماره قطعه تغییر می کند یا خیر، و سپس قالب بندی صحیح را بر اساس آنچه متوجه می شود اعمال کنید. به عنوان مثال:
Sub ShadeRows()
Dim ThisOrder As Long
Dim PrvOrder As Long
Dim LastRow As Long
Dim Clr As Integer
Dim R As Long
LastRow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
Enter desired color codes here
(24 is Lavender, 35 is Light Green)
RwColor = Array(24, 35)
Clr = 0 Used to toggle between the two colors
For R = 2 To LastRow
ThisOrder = Cells(R, 1).Value
PrvOrder = Cells(R - 1, 1).Value
If ThisOrder <> PrvOrder Then Clr = 1 - Clr
Select only the columns that are used
Range("A" & R & ":M" & R).Select
Selection.Interior.ColorIndex = RwColor(Clr)
Next R
End Sub