Extrahieren Sie Werte in einem bestimmten Zahlenbereich

Extrahieren Sie Werte in einem bestimmten Zahlenbereich

Ich habe eine Excel-Tabelle mit einer Spalte „AP“, in der jede Zelle Werte wie diese enthält

5358  161043   22344   8444   103145  69221044 

„5358 161043 22344 8444 103145 69221044“ sind alle eine Zelle, in diesem Fall AP2. Ich weiß, das ist ein Durcheinander, aber ich habe es von jemand anderem geerbt und versuche, es zu bereinigen.

Ich brauche eine Möglichkeit, diese Werte im Zahlenbereich zwischen 6623 und 12756 zu extrahieren. Dazu käme mir entweder ein Suchen-und-Ersetzen-Befehl aus, der alle Werte außerhalb dieses Bereichs löscht, oder eine Funktion, die die betreffenden Werte in eine andere Spalte kopiert.

Antwort1

Ich habe einige Dummy-Daten erstellt und sie in Spalte A auf meinem Blatt eingetragen. In Spalte B habe ich die folgende Formel verwendet:

=IF(AND(A1>=$L$35,A1<=$L$36),"Yes","No")

Dies ist ein einfacher Filter, der für Werte in Ihrem Zielbereich „Ja“ zurückgibt (ich habe sie in die Zellen L35 und L36 eingefügt).

Bildbeschreibung hier eingeben

Wählen Sie als Nächstes diese beiden Spalten aus und aktivieren Sie den Filter.

Bildbeschreibung hier eingeben

Gehen Sie nun auf der Registerkarte „Start“ zur Multifunktionsleiste „Bearbeiten“ und wählen Sie „Suchen und Auswählen“. Wählen Sie die Option „Gehe zu Spezial…“

Wählen Sie die Option „Nur sichtbare Zellen“ und drücken Sie „OK“.

Drücken Sie Kopieren oder verwenden Sie STRG+C. Dadurch sollten nur die Zeilen mit den gewünschten Daten ausgewählt werden.

Wenn Sie jetzt ein leeres Blatt einfügen, fügen Sie nur die Daten ein, die Ihrem gewünschten Datumsbereich entsprechen. Hinweis: In meinem Beispiel habe ich Zeile 1 für Überschriften nicht leer gelassen, sodass beim Anwenden meines Filters ein „Nein“ übrig blieb. Sie können den Nachzügler entweder löschen oder einfach am Anfang eine leere Zeile lassen, damit das nicht passiert.

Antwort2

Geben Sie zunächst die folgende benutzerdefinierte Funktion in ein Standardmodul ein:

Public Function GrabData(r As Range) As String
    Dim cel As Range, v As String, a, d As Double

    GrabData = ""

    For Each cel In r
        v = cel.Text
        arr = Split(v, " ")
            For Each a In arr
                If IsNumeric(a) Then
                    d = CDbl(a)
                    If d > 6622 And d < 12757 Then GrabData = GrabData & " " & a
                End If
            Next a
        Next cel
End Function

Wenn Sie dann Daten inAP1durchAP3, wählen Sie eine andere Zelle aus und geben Sie ein:

=GrabData(AP1:AP3)

Zum Beispiel:

Bildbeschreibung hier eingeben

Wie Sie sehen, werden die Werte in einerdurch Leerzeichen getrenntZeichenfolge, genau wie die Eingaben.

verwandte Informationen