Trovare il contenuto di celle più ampio (Microsoft Excel)
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.