Jak wyodrębnić tylko liczby z komórki Excela (7 prostych sposobów)

  • Udostępnij To
Hugh West

Chociaż Microsoft nie dostarczył prostej formuły lub składni do wyodrębnić tylko liczby z komórki Excela, możemy włączyć szeroki zakres Formuły programu Excel aby stworzyć jedną funkcję, która może być używana do wydobywania liczb lub cyfr tylko z komórek Excela. W tym artykule postaramy się pokazać i szczegółowo wyjaśnić, jak możemy wydobyć tylko liczby z komórek za pomocą odpowiednich formuł pod kilkoma kryteriami.

Pobierz Zeszyt ćwiczeń

Pobierz za darmo książkę ćwiczeń, z której korzystaliśmy przygotowując ten artykuł. Możesz wprowadzać wartości tekstowe z liczbami do wybranych komórek i natychmiast znajdować wyniki dzięki wbudowanym formułom.

Wyciąganie liczb z komórek.xlsm

7 skutecznych sposobów na wyciągnięcie tylko liczb z komórki Excela

Będzie jeden kod VBA, jedna funkcja Excela i pięć praktycznych formuł, które pomogą Ci wyodrębnić liczby z komórki. Tak jak na poniższym obrazku, mamy kilka kodów zawierających cyfry i litery, gdzie cyfry są obecne na początku. Musimy wyodrębnić te cyfry lub liczby tylko.

1. wyciąganie liczb z początku tekstu

W tej pierwszej metodzie połączymy LEWA , SUMA , LEN oraz SUBSTYTUT aby wyciągnąć liczby z początku ciągu tekstowego. Najpierw wpiszemy tę formułę do komórki, a następnie, używając uchwyt do napełniania , skopiujemy tę formułę do pozostałych komórek.

Kroki:

  • Po pierwsze, wpisz formułę w komórce C5 .

=LEFT(B5,SUM(LEN(B5)-LEN(SUBSTITUTE(B5,{"0","1","2","3","4","5","6","7","8","9"},""))))

  • Po drugie, naciśnij Wejdź na stronę i otrzymasz liczbę 34 dla pierwszego kodu.

  • Po trzecie, użyj Uchwyt do napełniania a następnie do automatycznego wypełnienia wszystkich pozostałych komórek w kolumnie C .

🔎 Podział formuły

SUBSTITUTE(B5,{"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9″},")

  • Tutaj SUBSTYTUT Funkcja wyszukuje kolejno cyfry (0-9) i w przypadku ich znalezienia zastępuje je w komórce B5 z pustym znakiem za każdym razem. Zatem funkcja zwróci jako - {"34DTXRF", "34DTXRF", "34DTXRF", "4DTXRF", "3DTXRF", "34DTXRF", "34DTXRF", "34DTXRF", "34DTXRF"}.

LEN(SUBSTITUTE(B5,{"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9″},"))

  • Na stronie LEN Funkcja określa liczbę znaków w łańcuchu. Tak więc, tutaj LEN Funkcja policzy wszystkie znaki występujące pojedynczo w tekstach poprzez SUBSTYTUT Funkcja. wartości wynikowe będą tu w naszym przypadku - {7,7,7,6,6,7,7,7,7}.

LEN(B5)-LEN(SUBSTITUTE(B5,{"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9″},"))

  • Teraz ta część to odejmowanie od liczby znaków w komórce B5 do wszystkich pozostałych liczb znaków znalezionych indywidualnie w poprzedniej części wzoru. Zatem tutaj wartości wynikowe będą wynosiły - {0,0,0,1,0,0,0,0}.

SUM(LEN(B5)-LEN(SUBSTITUTE(B5,{"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9″},"))

  • Na stronie SUMA Funkcja będzie wtedy po prostu sumować wszystkie odjęte wartości znalezione & więc wynik będzie tutaj, 2 (0+0+0+1+1+0+0+0+0+0).

=LEFT(B5,SUM(LEN(B5)-LEN(SUBSTITUTE(B5,{"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9″},""))))

  • A teraz ostatnia część, w której LEWA Funkcja zwróci wartości o dokładną liczbę znaków z lewej strony znalezione w poprzedniej części formuły. Ponieważ otrzymaliśmy wartość sumy jako 2, funkcja LEWA funkcja tutaj zwróci tylko 34 z tekstu 34DTXRF .

Powiązane: Jak oddzielić liczby w Excelu za pomocą formuły (5 sposobów)

2. wyodrębnianie liczb z prawej strony tekstu

W tym rozdziale zajmiemy się wyodrębnieniem liczb lub cyfr z prawej strony łańcucha tekstowego. Wykorzystamy do tego celu metodę PRAWDA , MIN oraz SZUKAJ funkcje tutaj.

Kroki:

  • Na początek w naszym zbiorze danych to, co musimy wpisać w komórkę C5 jest -

=RIGHT(B5,LEN(B5) - MIN(SEARCH({0,1,2,3,4,5,6,7,8,9}, B5& "0123456789")) +1)

  • Następnie należy nacisnąć Wejdź na stronę a następnie użyć Uchwyt do napełniania aby automatycznie wypełnić resztę komórek.

🔎 Podział formuły

B5& "0123456789″

  • Tutaj łączymy wartości w B5 komórka z 0123456789 poprzez użycie ampersand (&) między nimi i otrzymamy wartość wynikową jako- DTXRF340123456789.

SEARCH({0,1,2,3,4,5,6,7,8,9}, B5&”0123456789″)

  • Teraz SZUKAJ Funkcja wyszuka po kolei wszystkie cyfry (0-9) w wartości wynikowej otrzymanej w poprzednim punkcie i zwróci pozycje tych 10 cyfr w znakach DTXRF340123456789 Zatem tutaj nasze wartości wynikowe będą wynosiły - {8,9,10,6,7,13,14,15,16,17}.

MIN(SEARCH({0,1,2,3,4,5,6,7,8,9}, B5&”0123456789″))

  • Na stronie MIN Funkcja służy do znalezienia najniższej cyfry lub liczby w tablicy. Tak więc, tutaj minimalną lub najniższą wartością będzie-. 6 z tablicy {8,9,10,6,7,13,14,15,16,17} znalezionej w poprzedniej części wzoru.

LEN(B5) - MIN(SEARCH({0,1,2,3,4,5,6,7,8,9}, B5& "0123456789″)) +1)

  • Teraz, liczba znaków w B5 zostanie znaleziony przez LEN Następnie odejmuje wartość 6 (znalezioną w ostatniej sekcji) i zwraca wynik dodając 1. W naszym przypadku wartość wynikowa będzie wynosiła 2 (7-6+1) .

RIGHT(B5,LEN(B5) - MIN(SEARCH({0,1,2,3,4,5,6,7,8,9}, B5& "0123456789″)) +1)

  • Na stronie PRAWDA Funkcja zwróci określoną liczbę znaków z ostatniej lub prawej strony łańcucha. Po wyniku znalezionym w procesie odejmowania w poprzednim rozdziale, tutaj funkcja PRAWDA Funkcja wyświetli 2 ostatnie znaki z komórki B5 i to będzie 34 .

Read More: Jak oddzielić liczby w jednej komórce w programie Excel (5 metod)

3. wyodrębnianie liczb z dowolnej części łańcucha tekstowego

Teraz mamy szerokie rozwiązanie dla wszystkich przypadków. Ta metoda wyciągnie liczby lub cyfry z dowolnej pozycji w łańcuchu tekstowym. Ponadto, użyjemy TEXTJOIN , IFERROR , POŚREDNICTWO , MID oraz ROW funkcji w tej metodzie.

Kroki:

  • Po pierwsze, wpisz formułę w komórce docelowej w następujący sposób-.

=TEXTJOIN("",TRUE,IFERROR((MID(B5,ROW(INDIRECT("1:"&LEN(B5))),1)*1),"))

  • Następnie, jeśli używasz Excel 2016 r. Wejdź na stronę , w przeciwnym razie naciśnij Ctrl+Shift+Enter aby uzyskać wynik dla tej formuły tablicowej.
  • Po wykonaniu tego kroku należy automatycznie wypełnić inne komórki przy użyciu Uchwyt do napełniania i gotowe.

🔎 Podział formuły

INDIRECT("1:"&LEN(B5))

  • Na stronie POŚREDNICTWO Funkcja służy do przechowywania tablicy wartości komórek jako tekstu referencyjnego. W tym przypadku ampersand (&) polecenie konkatenuje długość znaków komórki B5 z niekompletną składnią zakresu (1:) .
  • Więc, tutaj POŚREDNICTWO Funkcja zapisze w komórce wszystkie liczby od 1 do długości znaków B5 jako tekst referencyjny.

ROW(INDIRECT("1:"&LEN(B5)))

  • Na stronie ROW Funkcja zazwyczaj podaje numer wiersza w komórce, ale tutaj w POŚREDNICTWO funkcja, ponieważ nie została wymieniona żadna komórka referencyjna, w tym przypadku ROW Funkcja wyodrębni wszystkie wartości lub liczby z tekstów referencyjnych zapisanych w POŚREDNICTWO funkcja.
  • Teraz, dla pierwszej komórki B5 , wartości wynikowe przez te ROW oraz POŚREDNICTWO funkcji będzie - {1;2;3;4;5;6;7;8;9}.

(MID(B5,ROW(INDIRECT("1:"&LEN(B5))),1)))

  • Na stronie MID Funkcja pozwoli Ci określić znaki ze środka ciągu tekstowego, biorąc pod uwagę pozycję początkową & długość.
  • Tak więc tutaj dla wszystkich 9 pozycji znalezionych w poprzedniej sekcji,. MID Funkcja pokaże teraz wszystkie znaki po kolei dla każdej pozycji & zwróci więc wartości jako- {"1″; "9″;" "; "D"; "X"; "2″; "M"; "N"}.

IFERROR((MID(B5,ROW(INDIRECT("1:"&LEN(B5))),1)*1),"")

  • Teraz IFERROR jest funkcją logiczną, która określi, czy ciąg znaków jest liczbą, czy czymś innym. Jeśli nie zidentyfikuje ciągu znaków z liczbami lub cyframi, to zwróci wartość ze zdefiniowanym poleceniem tekstowym.
  • W naszym przypadku wszystkie wartości znalezione w ostatniej sekcji zostaną pomnożone przez 1, a gdy wyniki zostaną zwrócone jako błędy wartości dla liter lub wartości tekstowych, które nie mogą być pomnożone, ich IFERROR Funkcja zamieni błędy na puste ciągi znaków. Tak więc naszymi wartościami wynikowymi będą wtedy- {1;9;"";"";"";"";2;"";""}.

=TEXTJOIN("",TRUE,IFERROR((MID(B5,ROW(INDIRECT("1:"&LEN(B5))),1)*1),"))

  • A teraz ostatnia część zostanie wykonana poprzez TEXTJOIN Funkcja służy do konkatenacji lub łączenia dwóch łańcuchów z określonym separatorem.
  • Tak więc, wartości wynikowe, które znaleźliśmy w poprzednim punkcie, zostaną teraz połączone razem z tym TEXTJOIN I w ten sposób otrzymamy liczbę 192.

Read More: Jak wyodrębnić wiele liczb z ciągu w programie Excel (6 metod)

4. zagnieżdżanie wielu funkcji, aby wydobyć tylko liczby

Teraz pokażemy Wam kolejną formułę pozwalającą na wyciągnięcie z komórki Excela tylko liczb z dowolnej pozycji.Choć może się to wydawać dość skomplikowane, rozłożymy całą formułę i postaramy się w prosty sposób wyjaśnić wszystkie zwarte funkcje.Dodatkowo użyjemy JEŚLI , DUŻA , INDEX , SUMPRODUCT oraz ISNUMBER funkcje w tej formule.

  • Na początek wpisz w komórce tę formułę C5 Musisz zastąpić odniesienie do komórki tylko na podstawie własnej komórki w arkuszu kalkulacyjnym, a następnie przez osadzenie tej formuły, otrzymasz oczekiwany wynik od razu. I ta formuła działa doskonale w każdej wersji programu Excel.

=IF(SUM(LEN(B5)-LEN(SUBSTITUTE(B5, {"0","1","2","3","4","5","6","7","8","9"}, "")))>0, SUMPRODUCT(MID(0&B5, LARGE(INDEX(ISNUMBER(--MID(B5,ROW(INDIRECT("$1:$"&LEN(B5))),1))* ROW(INDIRECT("$1:$"&LEN(B5))),0), ROW(INDIRECT("$1:$"&LEN(B5))))+1,1) * 10^ROW(INDIRECT("$1:$"&LEN(B5)))/10),"")

  • Następnie należy wcisnąć Wejdź na stronę tylko po wpisaniu całej formuły i gotowe.

🔎 Podział formuły

Przed rozpoczęciem podziału tego masywnego & kompaktowego wzoru, możemy podzielić go na kilka części jak-.

=IF(A>0, SUMPRODUCT(B 1 *C 1 , B 2 *C 2 , ..........B n C n ),"")

Ta składnia oznacza, że jeśli A jest większa od 0, to wszystkie produkty z B n oraz C n zsumują się do końcowego wyniku. A jeśli A nie jest większa od 0, to wynik zwróci pustą komórkę.

  • A = SUM(LEN(B5)-LEN(SUBSTITUTE(B5, {"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9"}, ""
  • B = MID(0&B5, LARGE(INDEX(ISNUMBER(-MID(B5,ROW(INDIRECT("$1:$"&LEN(B5)),1))* ROW(INDIRECT("$1:$"&LEN(B5))),0), ROW(INDIRECT("$1:$"&LEN(B5))))+1,1)
  • C = 10^ROW(INDIRECT("$1:$"&LEN(B5)))/10),"

Podział części A = SUM(LEN(B5)-LEN(SUBSTITUTE(B5, {"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9"}, ""

SUBSTITUTE(B5, {"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9"}, "")

  • Na stronie SUBSTYTUT funkcja znajdzie wszystkie cyfry (0-9) po kolei w tekście 19 DDX2MN za każdym razem i zastąpi te cyfry pustym łańcuchem w pozycjach cyfr.
  • Zatem wynikowe wartości w tablicy będą - {"19 DDX2MN", "9 DDX2MN", "19 DDXMN", "19 DDX2MN", "19 DDX2MN", "19 DDX2MN", "19 DDX2MN", "19 DDX2MN", "1 DDX2MN"}.

LEN(SUBSTITUTE(B5, {"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9"}, ""))

  • Na stronie LEN Funkcja będzie teraz zliczać liczbę znaków we wszystkich wartościach ciągu znaków uzyskanych w poprzednim punkcie. Zatem funkcja ta zwróci jako- {9,8,8,9,9,9,9,8}.

LEN(B5)-LEN(SUBSTITUTE(B5, {"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9"}, ""))

  • Teraz w tej części formuły, w komórce znajduje się liczba znaków B5 odejmuje wszystkie liczby znalezione w poprzednim punkcie. Wartości wynikowe będą wówczas- {0,1,1,0,0,0,0,0,1}.

SUM(LEN(B5)-LEN(SUBSTITUTE(B5, {"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9"}, ""))

  • Z pomocą SUMA funkcja, wartości wewnątrz tablicy znalezione w ostatnim punkcie dodadzą się do 3 (0+1+1+0+0+0+0+0+1).
  • Zatem zgodnie z pierwszą częścią naszego wzoru, A>0 (3>0) . Teraz przejdziemy do kolejnej części podziału.

Podział części B = MID(0&B5, LARGE(INDEX(ISNUMBER(-MID(B5,ROW(INDIRECT("$1:$"&LEN(B5)),1))* ROW(INDIRECT("$1:$"&LEN(B5))),0), ROW(INDIRECT("$1:$"&LEN(B5))))+1,1)

INDIRECT("$1:$"&LEN(B5))

  • Na stronie POŚREDNICTWO Funkcja przechowuje tutaj wartości łańcuchowe jako referencję do tablicy. Wewnątrz nawiasu, ampersand (&) polecenie połączy liczbę znaków znajdujących się w komórce B5 ze składnią Range of cells. Oznacza to, że od 1 do liczby zdefiniowanych znaków, każdy z nich będzie przechowywany jako referencja do tablicy.

ROW(INDIRECT("$1:$"&LEN(B5)))

  • Teraz, to ROW Funkcja wyciągnie wszystkie liczby z tablicy i wartości wynikowe dla komórek B5 będzie - {1;2;3;4;5;6;7;8;9}.

MID(B5,ROW(INDIRECT("$1:$"&LEN(B5))),1)

  • W tej części wzoru. MID Funkcja wyrazi wszystkie znaki z komórki B5 na podstawie wszystkich pozycji znalezionych jako liczby w poprzedniej części. Tak więc wyodrębnione wartości zostaną znalezione po tej części - {"1″; "9″;" "; "D"; "X"; "2″; "M"; "N"}.

ISNUMBER(-MID(B5,ROW(INDIRECT("$1:$"&LEN(B5))),1))

  • Jak ISNUMBER jest funkcją logiczną, która indywidualnie określi czy wartości znalezione w poprzedniej sekcji są ciągami liczbowymi czy nie. Jeśli tak, to zwróci jako TRUE , w przeciwnym razie wyświetli się jako FALSE .
  • Zatem w naszym przypadku wynikiem będzie - {TRUE;TRUE;FALSE;FALSE;FALSE;TRUE;FALSE;TRUE;FALSE;FALSE}.

INDEX(ISNUMBER(-MID(B5,ROW(INDIRECT("$1:$"&LEN(B5))),1))*ROW(INDIRECT("$1:$"&LEN(B5))),0)

  • Jeśli zauważysz wewnątrz powyższej funkcji, podwójny myślnik, znany jako Podwójnie jednoargumentowy , został użyty. Służy on do konwersji wszystkich wartości logicznych na ciągi liczbowe-. 1(TRUE) lub 0(FALSE) . Now, the INDEX Funkcja zwróci ten wynik jako- {1;1;0;0;0;1;0;0}.
  • Następnie wartości wynikowe zostaną pomnożone przez wartości uzyskane z ROW funkcja wewnątrz tablicy i wynik będzie - {1;2;0;0;7;0;0}.

LARGE(INDEX(ISNUMBER(-MID(B5,ROW(INDIRECT("$1:$"&LEN(B5)),1))*ROW(INDIRECT("$1:$"&LEN(B5))),0), ROW(INDIRECT("$1:$"&LEN(B5))))

  • Na stronie DUŻA Funkcja uporządkuje teraz największe wartości z tablicy według pozycji opartych na liczbach znajdujących się w ROW funkcji. & nasze wartości wynikowe dla tego fragmentu wzoru będą wynosić- {7;2;1;0;0;0;0}.

MID(0&B5, LARGE(INDEX(ISNUMBER(-MID(B5,ROW(INDIRECT("$1:$"&LEN(B5)),1))*ROW(INDIRECT("$1:$"&LEN(B5))),0), ROW(INDIRECT("$1:$"&LEN(B5))))+1,1)

  • Teraz, ta część funkcji będzie łączyć 0 z tekstami w komórce B5 . Then it'll add 1 indywidualnie z wszystkimi liczbami znalezionymi w ostatniej części i pokaż znaki z B5 komórka na podstawie zdefiniowanych pozycji liczbowych.
  • Tak więc, naszym wynikiem z tej sekcji będzie - {"2″; "9″; "1″; "0″; "0″; "0″; "0″; "0"}.

Podział części C = (10^ROW(INDIRECT("$1:$"&LEN(B5)))/10),")

  • W tej części wyznaczymy potęgi 10 & przechowamy je wewnątrz tablicy. Cyfry potęg są liczbami znalezionymi z ROW funkcja wcześniej.
  • Ta część formuły zwróci wartości jako- {1;10;100;1000;10000;100000;1000000;10000000;1000000}.

Mnożenie B n i C n

  • Teraz wartości wypadkowe z dwóch ostatnich głównych załamań B i C zostaną pomnożone wewnątrz tablicy. Wtedy iloczynami znalezionymi z mnożenia będą- {2;90;100;0;0;0;0}.
  • I wreszcie. SUMPRODUCT Funkcja zsumuje te wartości znalezione w tablicy. Tak więc naszym ostatecznym wynikiem będzie 192 (2+90+100+0+0+0+0+0+0) czyli wyodrębnione liczby z komórki B5 .

Read More: Jak rozdzielić tekst i liczby w programie Excel (4 proste sposoby)

5) Wyciąganie pięciocyfrowych liczb z łańcucha

Do wyodrębnienia pięciocyfrowych liczb z dowolnej części ciągu w Excelu użyjemy innej formuły.Wykorzystamy CONCAT oraz SEQUENCE Ponadto zmieniliśmy nieco nasz zestaw danych dla tej metody.

Kroki:

  • Po pierwsze, wybierz zakres komórek C5:C12 .
  • Po drugie, wpisz następujący wzór.

=CONCAT(IFERROR(0+MID(B5,SEQUENCE(LEN(B5)),1),""))

  • Na koniec naciśnij Ctrl+Enter .

🔎 Podział formuły

  • LEN(B5)
    • Wyjście: 11 .
    • Funkcja zwraca długość ciągu znaków.
  • SEQUENCE(11)
    • Output: {1;2;3;4;5;6;7;8;9;10;11} .
    • Funkcja ta zwraca jedenaście pierwszych liczb.
  • MID(B5,{1;2;3;4;5;6;7;8;9;10;11},1)
    • Wyjście: {"1″; "9″;" "; "D"; "X"; "2″; "M"; "N"; "3″; "3″}. .
    • Korzystając z tej części, otrzymujemy poszczególne znaki z ciągu.
  • 0+{"1″; "9″;" "; "D"; "X"; "2″; "M"; "N"; "3″; "3″}
    • Wyjście: {1;9;#VALUE!;#VALUE!;#VALUE!;2;#VALUE!;#VALUE!;3;3} .
    • Gdy dodamy zero z ciągiem, zwróci błąd.
  • IFERROR({1;9;#WARTOŚĆ!;#WARTOŚĆ!;#WARTOŚĆ!;2;#WARTOŚĆ!;#WARTOŚĆ!;3;3},")
    • Wyjście: {1;9;"";"";""; 2;"";""; 3;3} .
    • Otrzymujemy puste miejsce dla wszystkich wartości błędów.
  • CONCAT({1;9;"";"";"";2;"";"";3;3})
    • Wyjście: 19233 .
    • Na koniec dodajemy wszystkie wartości, aby wyodrębnić tylko liczby pięciocyfrowe.

6. użycie wypełnienia błyskowego do wyodrębnienia liczb z zakresu

Korzystanie z the Wypełnienie błyskowe funkcja jest łatwiejsza i prostsza niż jakakolwiek inna metoda wymieniona powyżej. Będziemy wydobywać liczby z dowolnej pozycji w ciągach tekstowych. Aby poprawnie wykonać tę metodę, musimy pomóc Excelowi znaleźć wzór wartości komórek w kolumnie lub wierszu, wykonując ekstrakcję tylko dla dwóch pierwszych wartości.

Kroki:

  • Na początek wpisz liczby ręcznie w komórce C5 .

  • Następnie zacznij wpisywać liczby z komórki B6 do komórki C6 a Excel automatycznie rozpozna wzór.
  • Na koniec naciśnij Wejdź na stronę .

Uwagi: Metoda ta ma pewne wady, dlatego nie jest zalecana we wszystkich przypadkach, gdy trzeba wyodrębnić liczby z ciągów tekstowych. Wypełnienie błyskowe zwykle podąża za wzorem z komórek w kolumnie lub zakresie. Tak więc, pierwsze 2 lub 3 ekstrakcje lub obliczenia muszą być wykonane ręcznie, aby pomóc Excelowi wchłonąć wspólny wzór wartości wynikowych. Ale czasami nie podąża za dokładnym wzorem, którego potrzebujemy, a tym samym, będzie podążać za własnym wzorem i dać niedopasowany wynik.

Na przykład, gdybyśmy mieli wyodrębnić dwa zera (00) z podanych danych, pokaże tylko jedno zero, a nie dwa. Następnie, jeśli chcesz wyodrębnić liczby z początku lub ostatnich pozycji w komórce, wyodrębni również wartości tekstowe, wraz z liczbami.

Read More: Jak wyodrębnić liczby po określonym tekście w programie Excel (2 odpowiednie sposoby)

7. zastosowanie kodu VBA do wyodrębnienia tylko liczb z komórki Excela

Jeśli jesteś zainteresowany użyciem Makro VBA w programie Excel aby wyodrębnić z komórek tylko liczby, to powinieneś wykonać poniższe kroki. Pokażemy Ci, jak wpisać kod w Moduł VBA Ten kod poprosi użytkownika o określenie zakresów komórek wejściowych i wyjściowych.

Kroki:

  • Po pierwsze, naciśnij ALT+F11 aby otworzyć VBA okno.
  • Następnie, z Wkładka zakładka, wybierz Moduł polecenie. Pojawi się nowe okno modułu, w którym wpiszesz kody.

  • Po trzecie, wewnątrz swojego modułu, wklej następujące kody po skopiowaniu.
 Option Explicit Sub ExtractNumbersOnly() Dim CellValue As Range Dim InBx1 As Range Dim InBx2 As Range Dim NumChar As Integer Dim StartChar As Integer Dim XtrNum As String Dim DBxName1 As String Dim DBxName2 As String Dim Iteration As Integer DBxName1 = "Wybór danych wejściowych" DBxName2 = "Wybór komórek wyjściowych" Set InBx1 = Application.InputBox("Zakres wejściowy komórek tekstowych:", _ DBxName1, "", Type:=8)If TypeName(InBx1) = "Nothing" Then Exit Sub Set InBx2 = Application.InputBox("Select Output Cells:", _ DBxName2, "", Type:=8) If TypeName(InBx2) = "Nothing" Then Exit Sub Iteration = 0 XtrNum = "" For Each CellValue In InBx1 Iteration = Iteration + 1 NumChar = Len(CellValue) For StartChar = 1 To NumChar If IsNumeric(Mid(CellValue, StartChar, 1)) Then XtrNum = XtrNum & Mid(CellValue,StartChar, 1) End If Next StartChar InBx2.Item(Iteration) = XtrNum XtrNum = "" Next CellValue End Sub. 

  • Następnie należy nacisnąć F5 Aby wykonać kod, pojawi się okno dialogowe o nazwie " Wybór danych wejściowych " pojawi się.
  • Następnie zaznacz wszystkie komórki tekstowe (tj. B5:B12 ) i naciśnij OK .

  • Następnie pojawi się kolejne okno dialogowe o nazwie " Wybór komórki wyjściowej " pojawi się, gdzie musisz wybrać konkretną komórkę lub zakres komórek, aby zobaczyć dane wyjściowe lub wartości.
  • Na koniec wybierz zakres komórek C5:C12 i nacisnąć Wejdź na stronę .

  • W rezultacie zobaczysz wyodrębnione liczby z tekstów wszystkie naraz. W ten sposób zakończymy siedem szybkich metod wyodrębniania liczb tylko z komórki Excela.

🔎 Podział kodu VBA

Deklarowanie parametrów

 Option Explicit Sub ExtractNumbersOnly() Dim cellValue As Range Dim InBx1 As Range Dim InBx2 As Range Dim NumChar As Integer Dim StartChar As Integer Dim XtrNum As String Dim DBxName1 As String Dim DBxName2 As String Dim Iteration As Integer DBxName1 = "Wybór danych wejściowych" DBxName2 = "Wybór komórek wyjściowych" 
  • W tej części na początku deklarujemy wszystkie nasze parametry jako liczby całkowite, wartości łańcuchowe lub zakresy komórek. Następnie nadajemy nazwy naszym oknom dialogowym za pomocą "Wybór danych wejściowych" oraz "Wybór komórki wyjściowej" .

Definiowanie typów wejść & wyjść dla pól dialogowych

 Set InBx1 = Application.InputBox("Input Range of Text Cells:", _ DBxName1, "", Type:=8) If TypeName(InBx1) = "Nothing" Then Exit Sub Set InBx2 = Application.InputBox("Select Output Cells:", _ DBxName2, "", Type:=8) If TypeName(InBx2) = "Nothing" Then Exit Sub Iteration = 0 XtrNum = "" 
  • Teraz definiujemy parametry i ich typy dla okien dialogowych. Tutaj dodanie Typ:=8 oznacza, że dane wejściowe i wyjściowe będą składać się z komórek referencyjnych lub zakresu komórek.
  • Definiujemy również, że jeśli dane wejściowe nie zostaną znalezione, to podprogram zatrzyma się. Wymieniając to makro, podprogram nie zepsuje się z powodu brakujących danych, ale raczej przestanie działać.

Łączenie funkcji wewnątrz kodu Pętle dla iteracji

 For Each cellValue In InBx1 Iteration = Iteration + 1 NumChar = Len(cellValue) For StartChar = 1 To NumChar If IsNumeric(Mid(cellValue, StartChar, 1)) Then XtrNum = XtrNum & Mid(cellValue, StartChar, 1) End If Next StartChar InBx2.Item(Iteration) = XtrNum XtrNum = "" Next cellValue End Sub 
  • Wreszcie, jest to najbardziej kluczowa część, w której stosujemy funkcje lub formuły, które musimy przypisać do tekstów, aby znaleźć wartości wynikowe z ciągów.
  • Jedną z głównych zalet kodowania funkcji dla Excela jest to, że nie trzeba wpisywać dużej formuły, jak musieliśmy to robić w poprzednich metodach, ponieważ VBA ma wbudowane polecenia do korzystania z pętli For lub While, gdzie iteracja dla każdego szczegółu w ciągu tekstowym może być wykonywana bez kłopotów.

Read More: Jak oddzielić liczby od tekstu w Excelu VBA (3 metody)

Wniosek

Pokazaliśmy ci 7 łatwych metod, aby wyodrębnić tylko liczby z komórki Excela Wyodrębnianie tylko liczb z ciągu tekstowego nie jest tak proste, jak się wydaje, ponieważ wymaga kombinacji wielu funkcji, co sprawia, że ostateczna formuła lub składnia jest skomplikowana. Mamy jednak nadzieję, że to, jak staraliśmy się zilustrować formuły poprzez rozbicie wewnętrznych funkcji, pomogło ci zrozumieć składnię z odrobiną komfortu i łatwości.

Jeśli znajdziesz jakieś inne funkcje lub formuły, które powinniśmy byli dodać tutaj, to proszę dać nam znać poprzez swoje cenne komentarze. Lub możesz rzucić okiem na nasze bardziej informacyjne i interesujące artykuły związane z funkcjami programu Excel na tej stronie.

Hugh West jest bardzo doświadczonym trenerem i analitykiem Excela z ponad 10-letnim doświadczeniem w branży. Posiada tytuł licencjata w dziedzinie rachunkowości i finansów oraz tytuł magistra administracji biznesowej. Hugh ma pasję do nauczania i opracował unikalne podejście do nauczania, które jest łatwe do naśladowania i zrozumienia. Jego specjalistyczna wiedza na temat programu Excel pomogła tysiącom studentów i profesjonalistów na całym świecie doskonalić swoje umiejętności i osiągać doskonałe wyniki w karierze. Za pośrednictwem swojego bloga Hugh dzieli się swoją wiedzą ze światem, oferując bezpłatne samouczki programu Excel i szkolenia online, aby pomóc osobom indywidualnym i firmom w pełni wykorzystać swój potencjał.