Mary ha diversi fogli di calcolo con tra 10.000 e 80.000 righe ciascuno.

Occasionalmente una colonna è più ampia di quanto dovrebbe essere, probabilmente a causa del contenuto che la rende ampia. Quindi, Mary si chiede se esiste un modo semplice per trovare la cella più ampia senza scorrere 10.000-80.000 righe per trovarla.

Ci sono diversi modi per farlo, ma per gli scopi di questo suggerimento ne descriverò solo tre. Il primo è un modo semplice se puoi utilizzare una colonna helper nel tuo foglio di lavoro. Diciamo che la colonna che vuoi controllare è A. Potresti mettere questa formula nella prima cella di una colonna inutilizzata:

=LEN(TRIM(A1))

Copia la formula del numero di celle necessario, quindi utilizza le funzionalità di filtro di Excel per visualizzare i valori più grandi in quella colonna. Questo ti darà quelle cellule che desideri.

Il secondo modo basato su una formula è usare una formula come queste:

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

Entrambi devono essere inseriti come formule di matrice premendo Ctrl + Maiusc + Invio. La prima formula restituirà il numero di riga della cella nella colonna A che ha la lunghezza più lunga. La seconda formula restituisce l’indirizzo effettivo della cella con la lunghezza più lunga.

Il terzo approccio è utile se devi calcolare le lunghezze abbastanza regolarmente. Implica l’utilizzo di una macro per ricavare le informazioni necessarie:

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

Tutto quello che devi fare è selezionare una cella nella colonna che desideri controllare e quindi eseguire la macro. Ciò che viene restituito è un elenco delle 10 celle più larghe nella colonna, in ordine decrescente in base alla lunghezza.

_Nota: _

Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.

ExcelTips è la tua fonte di formazione economica su Microsoft Excel.

Questo suggerimento (13747) si applica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 e Excel in Office 365.