Mithilfe einiger Vorschläge dieser Site konnte ich die folgende Formel aus mehreren Arbeitsblättern extrahieren:
=FILTER(VSTACK(FRR:SOD!G3:M200),
(VSTACK(FRR:SOD!K3:K200)<>"")*
(VSTACK(FRR:SOD!K3:K200)="ABC XXXX"))
Gibt es eine Möglichkeit, nach einer teilweisen Übereinstimmung innerhalb von „ABC XXXX“ zu filtern? Stellen Sie sich ABC als einen Ort und XXXX als einen Job/eine Position an diesem Ort vor. Ich möchte alle Personen, die ABC zugewiesen sind, in ein neues Arbeitsblatt ziehen und dann nach Job/Position filtern können. Ist das möglich?
Antwort1
So kann man das tun:
=LET(
α, VSTACK(FRR:SOD!G3:M200),
δ, INDEX(α,,5),
FILTER(α, (δ<>"")*(1-ISNA(XMATCH("ABC *",δ,2))),"Not Found"))
- Die Verwendung von
LET()
Funktionen erleichtert die Definition von Variablen und erleichtert das Lesen, ohne dieselben Formeln zu wiederholen. α
Variable wird definiert als die VerwendungVSTACK()
, die mehrere Tabellendaten zu einer zusammenfügt, die aus dem BereichG3:M200
von TabellenFRR
undSOD
δ
Die Variable wird als Funktion definiert , die aus dem in zurückgegebenen ArrayINDEX()
extrahiert wird5th
α
- Verwendung
XMATCH()
mit einem PlatzhalteroperatorAsterix
*, was bedeutetZero
, dass eine beliebige Anzahl von Zeichen vorhanden ist. In diesem Anwendungsfall wird der Standort verwendetABC *
und es wird nach jedem Standort gesucht, der mit einem beliebigen zugewiesenen Standort aus dem Array beginntABC
und endet .job/position
δ
- Wenn eine Übereinstimmung gefunden wird, können wir entweder
ISNUMBER()
zurückgebenTRUE
oder1-ISNA()
auch verwenden, was dasselbe tut, d. h. zuerst gibt es den FehlerISNA()
zurück , dann wird von abgezogen, was zu dem Ergebnis führt, was dasselbe ist wie mitTRUE
#N/A
TRUE
ISNUMBER()
- Zum Schluss das Umschließen innerhalb
FILTER()
der Funktion, um zu extrahieren, wo sich welche befindenTRUE
.
Anmerkungen:
• Excel hat3 WildcardsSie können in Ihren Formeln Folgendes verwenden:
- Sternchen(
*
) --> Null oder mehr Zeichen. - Fragezeichen(
?
) --> ein beliebiges Zeichen. - Tilde(
~
) --> Escape für wörtliche Zeichen (~*
), ein wörtliches Fragezeichen (~?
) oder eine wörtliche Tilde (~~
).
Antwort2
Im Falle einer teilweisen Übereinstimmung dürfte es viele Kombinationen geben. Nachfolgend finden Sie eine, die ich Ihnen gerne mitteilen möchte.
=FILTER(VSTACK(FRR:SOD!G3:M200),
(VSTACK(FRR:SOD!K3:K200<>"")*
((ISNUMBER(SEARCH("NEW*", VSTACK(FRR:SOD!K3:K200)))) +
(ISNUMBER(SEARCH("*MANAGER", VSTACK(FRR:SOD!K3:K200)))) > 0))
- Lassen Sie mich nun etwas über ((ISNUMBER(SEARCH("NEW*" erklären.
- Hier in NEW* ist ,, * das Platzhalterzeichen und nimmt mehr als die Einserzeichen an.
- Es können Standorte wie Neu-Delhi, New York, New Jersey und andere sein.
- Eine andere ist (ISNUMBER(SEARCH("*MANAGER" , wobei *MANAGER für EDP MANAGER, SALES MANAGER und andere stehen kann.
Achtung
Sie können ein anderes Platzhalterzeichen verwenden ?wie es nötig ist.
ZusätzlichÜberprüfen Sie diesen Link .
Antwort3
Ich bin für jeden Beitrag dankbar, auch wenn einiges davon etwas kompliziert ist, da ich noch Stück für Stück lerne. Diese Formel aus einem anderen Forum hat genau funktioniert, was ich brauchte, und ich konnte sie leicht verstehen:
=FILTER(VSTACK(FRR:SOD!G3:M200),LINKS(VSTACK(FRR:SOD!K3:K200),3)="ABC")
Danke für deine Hilfe!