Analizuj każdy znak w komórce w Excelu za pomocą triady Indirect(), Row() i Mid()

Spisie treści

Dziś podam Wam koktajl o potężnej formule. Rzadziej używane funkcje INDIRECT() i ROW() wraz z funkcją MID() mogą stworzyć wspaniałą miksturę.

Ta triada umożliwia dotarcie do zawartości komórki. i analizuj każdą postać osobno. Załóżmy na przykład, że masz Excel123 w komórce i chcesz określić, czy zawiera ona wartość liczbową, czy nie (co robi!!). Wbudowane formuły Excela nie mogą ci tutaj pomóc, ponieważ Excel uważa to za tekst (Spróbuj i użyj funkcji Type(), aby zobaczyć na własne oczy).

Potrzebujesz tutaj sposobu na sprawdzenie każdego znaku osobno, a następnie zidentyfikowanie, czy zawiera on numer. Przyjrzyjmy się najpierw formule, która może oddzielić każdy znak:

=ŚRODEK(B2,WIERSZ(ADR.POŚR("1:"&DŁ(B2))),1)

Tutaj to działa:

Teraz, gdy już wszystko przeanalizujesz, możesz analizować każdą postać osobno.

Pamiętaj, że tę technikę najlepiej stosować w połączeniu z innymi formułami (jak zobaczysz w dalszej części tego postu). Jako samodzielna technika prawie nie mogła być użyteczna. Ponadto Indirect() jest funkcją ulotną, więc używaj ostrożnie. [Dowiedz się więcej o formule lotnej]

Oto kilka przykładów, w których ta technika może być pomocna:

1. Aby zidentyfikować komórki zawierające znak numeryczny:

Załóżmy, że masz listę pokazaną poniżej i chcesz zidentyfikować (lub odfiltrować) dowolną komórkę zawierającą znak numeryczny w dowolnym miejscu komórki

Aby to zrobić, użyj następującej formuły. Zwraca a Prawdziwe jeśli komórka zawiera dowolny znak numeryczny, oraz Fałszywe jeśli nie.

=LUB(CZY.LICZBA(ŚREDNIA(A2,WIERSZ(ADR.POŚR(„1:”&DŁ(A2)))),1)*1))

Użyj klawiszy Control + Shift + Enter, aby wprowadzić tę formułę (zamiast Enter), ponieważ jest to formuła tablicowa.

2. Aby określić pozycję pierwszego wystąpienia liczby

Aby to zrobić, użyj następującej formuły. Zwraca pozycję pierwszego wystąpienia liczby w komórce. Na przykład, jeśli komórka zawiera ProductA1, zwróci 9. W przypadku braku numeru, zwraca „Brak znaku liczbowego”

=IFERROR(MATCH(1,-ISNUMBER(MID(B3,ROW(INDIRECT(„1:”&LEN(B3))),1)*1),0)”,Brak znaków numerycznych”)

Użyj Control + Shift + Enter, aby wprowadzić tę formułę

Mam nadzieję, że zaoszczędzi to trochę czasu i wysiłku. Jeśli wymyślisz inny sposób wykorzystania tej techniki, podziel się nią również ze mną.

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave