Mary hat mehrere Tabellen mit jeweils zwischen 10.000 und 80.000 Zeilen.

Gelegentlich ist eine Spalte breiter als sie sein sollte, wahrscheinlich aufgrund des Inhalts, der sie breit macht. Mary fragt sich also, ob es eine einfache Möglichkeit gibt, die breiteste Zelle zu finden, ohne durch 10.000 bis 80.000 Zeilen zu scrollen, um sie zu finden.

Es gibt verschiedene Möglichkeiten, dies zu tun, aber für die Zwecke dieses Tipps werde ich nur drei davon beschreiben. Der erste ist ein einfacher Weg, wenn Sie eine Hilfsspalte in Ihrem Arbeitsblatt verwenden können. Angenommen, die Spalte, die Sie überprüfen möchten, ist A. Sie können diese Formel in die erste Zelle einer nicht verwendeten Spalte einfügen:

=LEN(TRIM(A1))

Kopieren Sie die Formel so viele Zellen wie nötig nach unten und verwenden Sie dann die Filterfunktionen von Excel, um die größten Werte in dieser Spalte anzuzeigen. Dies gibt Ihnen die Zellen, die Sie wünschen.

Die zweite formelbasierte Methode besteht darin, eine Formel wie diese zu verwenden:

=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)))

Beide sollten als Array-Formeln eingegeben werden, indem Sie Strg + Umschalt + Eingabetaste drücken. Die erste Formel gibt die Zeilennummer der Zelle in Spalte A mit der längsten Länge zurück. Die zweite Formel gibt die tatsächliche Adresse der Zelle mit der längsten Länge zurück.

Der dritte Ansatz ist gut, wenn Sie die langen Längen ziemlich regelmäßig herausfinden müssen. Es beinhaltet die Verwendung eines Makros, um die erforderlichen Informationen abzuleiten:

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

Sie müssen lediglich eine Zelle in der Spalte auswählen, die Sie überprüfen möchten, und dann das Makro ausführen. Was zurückgegeben wird, ist eine Liste der 10 breitesten Zellen in der Spalte in absteigender Reihenfolge basierend auf der Länge.

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (13747) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365.