Mary tiene varias hojas de cálculo con entre 10,000 y 80,000 filas cada una.

Ocasionalmente, una columna es más ancha de lo que debería ser, probablemente debido a que el contenido la amplía. Entonces, Mary se pregunta si existe una manera fácil de encontrar la celda más ancha sin tener que desplazarse por 10,000-80,000 filas para encontrarla.

Hay varias formas de hacerlo, pero para los propósitos de este consejo, solo describiré tres de ellas. La primera es una forma fácil si puede utilizar una columna auxiliar en su hoja de trabajo. Digamos que la columna que desea verificar es A. Podría poner esta fórmula en la primera celda de una columna no utilizada:

=LEN(TRIM(A1))

Copie la fórmula tantas celdas como sea necesario y luego use las capacidades de filtrado de Excel para mostrar los valores más grandes en esa columna. Esto le dará las células que desea.

La segunda forma basada en fórmulas es usar una fórmula como estas:

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

Ambos deben ingresarse como fórmulas de matriz presionando Ctrl + Shift + Enter. La primera fórmula devolverá el número de fila de la celda de la columna A que tiene la longitud más larga. La segunda fórmula devuelve la dirección real de la celda con la longitud más larga.

El tercer enfoque es bueno si necesita calcular las longitudes largas con bastante regularidad. Implica el uso de una macro para obtener la información necesaria:

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

Todo lo que necesita hacer es seleccionar una celda en la columna que desea verificar y luego ejecutar la macro. Lo que se devuelve es una lista de las 10 celdas más anchas de la columna, en orden descendente según la longitud.

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.

link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (13747) se aplica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 y Excel en Office 365.