Non-standard sortering
March 26 by Eliza
Det er ikke uvanlig i et kontormiljø for å arbeide med Excel-filer opprettet av andre mennesker. Noen av disse filene kan være ganske annerledes enn de filene du kan skape. For eksempel kan du arve en fil der den første kolonnen inneholder en persons fornavn på første linje, deretter sitt etternavn på den andre linjen. (Brukeren trykket Alt + Enter for å skille det første navnet fra den andre navn i samme celle.) Hva om du trenger å sortere radene i regnearket basert på siste navnet på personen?
Kanskje den beste måten å gjennomføre en slik oppgave er å sette inn en ny kolonne B. regnearket-kolonne i (Denne kolonnen kan være skjult slik at det ikke dukker opp når normalt arbeider med regneark eller når du skriver det ut.) Følgende formel bør da plasseres i hver celle i kolonne B:
= HØYRE (A2, LEN (A2) -Finn (CHAR (10), A2))
Åpenbart cellereferanser vil endre seg når den plasseres i kolonne B. I denne formel FINN parti bestemmer posisjonen til Alt + Enter tegn (tegnkoden av denne karakter er 10). HØYRE-funksjonen returnerer tegnene i cellen starter på karakteren etter Alt + Enter karakter. Denne løsningen resulterer i kolonne B som inneholder informasjon om den andre linjen i den første kolonnen. Deretter kan du enkelt sortere basert på informasjonen i kolonne B.
Det er en antagelse gjøres i denne oppløsning, at det bare er to linjer i hver celle i kolonne A. Hvis det er mer, eller mindre, hvorpå løsningen blir vanskeligere. Hvis det er tilfelle, det beste (og enkleste) løsning kan være å formatere regnearket slik at sorteringsnøkkel er i en kolonne av seg selv. Hvis det ikke er mulig (uansett grunn), deretter følgende brukerdefinert VBA-funksjonen kan brukes:
Funksjon SecLine (x) As String
Dim B1 As Integer
Dim B2 As Integer
B1 = InStr (x, Chr (10))
B2 = InStr (B1 + 1, x, Chr (10))
If (B1 + B2)> 0 Then
Hvis B2> 0 Then
SecLine = Mid (x, B1 + 1, B2 - B1 - 1)
Else
SecLine = Mid (x, B1 + 1)
End If
End If
End Function
For å bruke denne rutinen, bare inkludere følgende i cellene i kolonne B:
= SecLine (A2)
Uavhengig av hvor mange linjer som er i celle A2 (i dette eksempel), returnerer funksjonen en streng som representerer verdien av den andre linjen.
ExcelTips er din kilde for kostnadseffektiv Microsoft Excel trening. Dette tipset (2252) gjelder for Microsoft Excel 97, 2000, 2002, og 2003. Du kan finne en versjon av dette tipset for Båndet av Excel (Excel 2007 og senere) her: Non-standard sortering.
- • Parsing Non-standard datoformater
- • Ser Objekter og data med de beskrive og SELECT-setninger i Oracle 12c
- • Hva er fordeler og ulemper ved et dusjforheng Track?
- • Hva er non-profit Accounting Standards?
- • Automatisk Non-breaking Spaces i Datoer
- • Styre hvordan Word Sorterer Tekst
- • Sortering av Fyllfarge
- • Sortering mens Ignorerer Ledende tegn
- • Sortering Files