Encontrar el contenido de celda más amplio (Microsoft Excel)
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.