مری چندین صفحه گسترده با 10000 تا 80000 ردیف دارد. گاهی اوقات یک ستون عریض تر از آنچه باید باشد، احتمالاً به این دلیل است که محتوا آن را گسترده می کند. بنابراین، مری تعجب می کند که آیا راه آسانی برای یافتن وسیع ترین سلول بدون پیمایش بین 10000 تا 80000 ردیف برای یافتن آن وجود دارد؟
راه های مختلفی برای انجام این کار وجود دارد، اما برای اهداف این نکته، تنها سه مورد از آنها را شرح می دهم. اگر بتوانید از یک ستون کمکی در کاربرگ خود استفاده کنید، روش اول یک راه آسان است. بیایید بگوییم که ستونی که می خواهید بررسی کنید A است. می توانید این فرمول را در خانه اول یک ستون استفاده نشده قرار دهید:
=LEN(TRIM(A1))
فرمول را به تعداد سلول های لازم کپی کنید و سپس از قابلیت های فیلتر اکسل برای نشان دادن بزرگترین مقادیر در آن ستون استفاده کنید. این سلول هایی را که می خواهید به شما می دهد.
روش دوم مبتنی بر فرمول استفاده از فرمولی مانند زیر است:
=MIN(IF(LEN($A:$A)=MAX(LEN($A:$A)),ROW($A:$A),1048577))
=CELL("address",INDEX($A:$A,MATCH(MAX(LEN($A:$A)),LEN($A:$A),0)))
هر دوی اینها باید به عنوان فرمول آرایه با فشار دادن Ctrl+Shift+Enter وارد شوند . فرمول اول شماره ردیف سلولی را در ستون A که طولانی ترین طول را دارد برمی گرداند. فرمول دوم آدرس واقعی سلولی را که بیشترین طول را دارد برمی گرداند.
اگر بخواهید به طور منظم طول های بلند را مشخص کنید، رویکرد سوم خوب است. این شامل استفاده از یک ماکرو برای استخراج اطلاعات لازم است:
Sub FindWidestCells()
Dim Ad(10) As String
Dim Le(10) As Integer
Dim J As Integer
Dim K As Integer
Dim L As Integer
Dim lCols As Long
Dim lRows As Long
Dim Rng As Range
Dim c As Range
Dim sTemp As String
lCols = ActiveCell.Column
lRows = Cells(Rows.Count, lCols).End(xlUp).Row
Set Rng = Range(Cells(1, lCols), Cells(lRows, lCols))
For Each c In Rng
Find shortest length in the group
K = 1
For J = 2 To 10
If Le(J) < Le(K) Then K = J
Next J
If Len(c.Text) > Le(K) Then
Le(K) = Len(c.Text)
Ad(K) = c.Address
End If
Next c
Sort the cells
For J = 1 To 9
L = J
For K = J + 1 To 10
If Le(K) > Le(L) Then L = K
Next K
If L <> J Then
sTemp = Ad(L)
Ad(L) = Ad(J)
Ad(J) = sTemp
K = Le(L)
Le(L) = Le(J)
Le(J) = K
End If
Next J
sTemp = "Longest cells:" & vbCr
For J = 1 To 10
If Le(J) > 0 Then
sTemp = sTemp & " " & Ad(J) & " (" & Le(J) & ")" & vbCr
End If
Next J
MsgBox sTemp
End Sub
تنها کاری که باید انجام دهید این است که یک سلول را در ستونی که می خواهید بررسی کنید انتخاب کنید و سپس ماکرو را اجرا کنید. آنچه برگردانده می شود فهرستی از 10 پهن ترین سلول در ستون به ترتیب نزولی بر اساس طول است.