رون دو ورک بوک دارد که بسیار شبیه هم هستند. در واقع دومین ورک بوک به عنوان کپی از کتاب اول شروع شد که اطلاعات جدیدی به آن اضافه شد. او متعجب است که آیا راهی برای مقایسه دو ورک بوک وجود دارد تا مشخص شود که دقیقاً چه چیزی بین این دو تغییر کرده است.
مقایسه کتاب های کار مختلف می تواند کمی مشکل و خیلی سریع پیچیده شود. بخشی از دلیل این پیچیدگی تعداد چیزهای مختلفی است که باید هنگام تعیین تفاوت ها بررسی شوند. بررسی سلول ها برای تفاوت در مقادیر، فرمول ها یا نتایج فرمول ها می تواند ساده باشد، اما اطلاعات ذخیره شده در اشیاء دیگر، مانند جعبه های متن، نمودارها، قوانین اعتبارسنجی داده ها، قوانین قالب بندی شرطی یا ماکروها چطور؟ آیا تغییرات در قالب بندی به عنوان تفاوت به حساب می آیند؟ مطمئنم که شما این ایده را دریافت کرده اید - تعریف اینکه چه چیزی یک تغییر را تشکیل می دهد می تواند به سرعت بسیار پیچیده شود و زمینه های متعدد دیگری نیز وجود دارد که تفاوت ها نیز وجود دارد.
اگر کتاب های کار ساده هستند (یعنی یک یا دو کاربرگ واحد) می توانید کاربرگ ها را از دومین کاربرگ به اولی کپی کنید و سپس یک کاربرگ جدید اضافه کنید که از فرمول ها (یا فرمول هایی در قالب بندی شرطی) برای مقایسه سلول های برگه های تکراری استفاده می کند. این خیلی کار است، مطمئن باشید. همچنین اگر تغییرات در کتاب دوم ممکن است شامل تعدادی ردیف یا ستون درج شده یا حذف شده باشد، بسیار مفید نیست.
راه دیگری که ممکن است امتحان کنید استفاده از چیزی است که مایکروسافت آن را Compare and Merge Workbooks می نامد. این دستور معمولاً در دسترس نیست، اما می توان آن را به نوار اضافه کرد. من در اینجا به جزئیات زیادی در مورد آن نمی پردازم زیرا فقط در برخی شرایط نسبتاً سخت قابل استفاده است. به عنوان مثال، فقط می تواند روی کپی هایی از کتاب های کار ذخیره شده پس از ایجاد تغییرات در آنچه قبلاً یک ورک بوک مشترک بود، استفاده شود. با این حال، می توانید اطلاعات بیشتری در مورد این ابزار در این سایت مایکروسافت پیدا کنید:
https://support.microsoft.com/en-us/office/merge-copies-of-a-shared-workbook-aa7c3598-5ad7-4fea-8c00-2daa7a934239
اگر از Office Professional Plus 2013، Office Professional 2016 یا Office 365 ProPlus استفاده می کنید، به ابزار دیگری از مایکروسافت دسترسی دارید که می تواند کتاب های کاری را برای تفاوت ها با هم مقایسه کند. این ابزار Spreadsheet Compare نام دارد و به شما اجازه می دهد تا مشخص کنید که چه نوع تفاوت هایی را می خواهید یادداشت کنید. این به طور گسترده مورد استفاده قرار نمی گیرد زیرا، صادقانه بگویم، کاربران آن نسخه های خاص اکسل تنها زیرمجموعه کوچکی از دنیای کلی کاربران اکسل هستند. با این حال، اگر یکی از آن نسخه های خاص را دارید، می توانید اطلاعاتی درباره مقایسه صفحه گسترده در اینجا پیدا کنید:
https://support.microsoft.com/en-us/office/overview-of-spreadsheet-compare-13fafa61-62aa-451b-8674-242ce5f2c986
سومین رویکرد ارائه شده توسط مایکروسافت استفاده از ابزاری است که آن را Spreadsheet Inquire می نامند. این ابزار در اکسل 2013 یا نسخه های جدیدتر اکسل موجود است. شما می توانید در مورد این ابزار خاص در این سایت مایکروسافت بیابید:
https://support.microsoft.com/en-us/office/compare-workbooks-using-spreadsheet-inquire-ebaf3d62-2af5-4cb1-af7d-e958cc5fad42
روش های دیگری برای مقایسه کتاب های کار وجود دارد، اما روشی که انتخاب می کنید تا حد زیادی به ماهیت داده های شما و میزان جزئیات شما در مقایسه ها بستگی دارد. (به یاد داشته باشید - مقایسه ها می توانند خیلی سریع پیچیده شوند.) به جای اختراع مجدد چرخ، فقط شما را به صفحه زیر ارجاع می دهم که نمای کلی خوبی از شش روش مختلف برای انجام مقایسه ارائه می دهد:
https://trumpexcel.com/compare-two-excel-sheets/
جالب اینجاست که در این صفحه به سه ابزار مایکروسافت اشاره نشده است. دو روش از شش روشی که ارائه می کند کمی مورد توجه قرار می گیرد.
روش پنجم که در صفحه TrumpExcel توضیح داده شده است، استفاده از ماکروها برای انجام مقایسه است. ماکروها می توانند یک رویکرد عالی باشند، اما به یاد داشته باشید که هر ماکرویی که ابداع کنید با ماهیت داده های کتاب های کاری شما مرتبط است. این صفحه یک ماکرو نسبتاً ساده ارائه می کند، اما موارد بسیار پیچیده تری را نیز دیده ام. به عنوان مثال، مجموعه ماکروهای زیر، کاربرگ ها را در هر دو کتاب باز مقایسه می کنند. تنها کاری که باید انجام دهید این است که نام دو ورک بوک را جایگزین «File1» و «File2» در ماکرو Compare2Wbks کنید. Compare2Wbks را اجرا کنید و در نهایت با یک ورک بوک سوم روبرو می شوید که تفاوت بین آن دو ورک بوک را نشان می دهد. (ماکروها فرض می کنند که کاربرگ های File1 و File2 نام های یکسانی دارند.)
Sub Compare2Wbks()
Each of the two workbooks must be open before running this procedure.
Replace the file names in this procedure with your filenames.
A new workbook is created that lists the results for all worksheets.
Dim Sh As Worksheet
Workbooks.Add
For Each Sh In Workbooks("File1").Worksheets
Differences Sh, Workbooks("File2").Worksheets(Sh.Name)
Next
End Sub
Sub Differences(Sh1 As Worksheet, Sh2 As Worksheet)
Dim iR As Integer, iC As Integer
Dim D_1 As Range, D_2 As Range
Range("A1:D1").Value = Array("Address", "Difference", Sh1.Parent.Name, Sh2.Parent.Name)
Range("A1:D1").Font.ColorIndex = 5
Range("A2").Select
For iR = 1 To Application.Max(Sh1.Range("A1").SpecialCells(xlLastCell).Row, _
Sh2.Range("A1").SpecialCells(xlLastCell).Row)
For iC = 1 To Application.Max(Sh1.Range("A1").SpecialCells(xlLastCell).Column, _
Sh2.Range("A1").SpecialCells(xlLastCell).Column)
Set D_1 = Sh1.Cells(iR, iC)
Set D_2 = Sh2.Cells(iR, iC)
Compare the types to avoid getting VBA type mismatch errors
If TypeName(D_1.Value) <> TypeName(D_2.Value) Then
IfError D_1.Address, "Type", D_1.Value, D_2.Value
ElseIf D_1.Value <> D_2.Value Then
If TypeName(D_1.Value) = "Double" Then
If Abs(D_1.Value - D_2.Value) > D_1.Value * 10 ^ (-12) Then
IfError D_1.Address, "Double", D_1.Value, D_2.Value
End If
Else
IfError D_1.Address, "Value", D_1.Value, D_2.Value
End If
End If
Record formula without leading "=" to avoid them being evaluated
If D_1.HasFormula Then
If D_2.HasFormula Then
If D_1.Formula <> D_2.Formula Then
IfError D_1.Address, "Formula", Mid(D_1.Formula, 2), Mid(D_2.Formula, 2)
End If
Else
IfError D_1.Address, "Formula", Mid(D_1.Formula, 2), "**no formula**"
End If
Else
If D_2.HasFormula Then
IfError D_1.Address, "Formula", "**no formula**", Mid(D_2.Formula, 2)
End If
End If
If D_1.NumberFormat <> D_2.NumberFormat Then
IfError D_1.Address, "NumberFormat", D_1.NumberFormat, D_2.NumberFormat
End If
Next iC
Next iR
With ActiveSheet.UsedRange.Columns
.AutoFit
.HorizontalAlignment = xlLeft
End With
End Sub
Sub IfError(Address As String, Differ As String, P_1, P_2)
ActiveCell.Resize(1, 4).Value = Array(Address, Differ, P_1, P_2)
ActiveCell.Offset(1, 0).Select
If ActiveCell.Row = Rows.Count Then
MsgBox "More than " & Rows.Count & "differences", vbExclamation
End
End If
End Sub
به یاد داشته باشید که یک ماکرو مانند این (یا به طور صحیح تر، مجموعه ای از ماکروها مانند اینها) هر تغییری را نمی پذیرد، و اگر داده های شما شرایط تحمیل شده توسط یک چارچوب نسبتاً سخت گیرانه را برآورده نکنند، ممکن است به طور کامل از کار بیفتند. هدف از گنجاندن این ماکرو، دوباره، نشان دادن این است که یک راه حل مبتنی بر کلان می تواند به همان اندازه که ممکن است برای مقایسه خود نیاز داشته باشید، دقیق و پیچیده باشد.
روش ششم که در صفحه TrumpExcel توضیح داده شده است، استفاده از یک برنامه شخص ثالث برای انجام مقایسه است. تنها ابزار ارائه شده XL Comparator است، اما ابزارهای دیگری نیز در دسترس هستند. به عنوان مثال، ممکن است یکی به نام Ultra Compare را در نظر بگیرید که در این سایت موجود است:
https://www.ultraedit.com/products/ultracompare/
خوب، شما آن را دارید—راه های زیادی که می توانید مقایسه ورک بوک خود را انجام دهید. نکته اصلی این است که روشی که انتخاب می کنید به داده های شما و نوع مقایسه ای که می خواهید انجام دهید بستگی دارد. شما باید هر یک از ایده های ارائه شده در اینجا را بررسی کنید و یکی را انتخاب کنید که به بهترین وجه با نیازهای شما مطابقت دارد.