Excel VLOOKUP не работи - ги поправа грешките #N/A и #VALUE

  • Споделете Го Ова
Michael Brown

Содржина

Дали вашиот VLOOKUP влече погрешни податоци или воопшто не можете да го натерате да работи? Ова упатство покажува како можете брзо да ги поправите вообичаените грешки на VLOOKUP и да ги надминете неговите главни ограничувања.

Во неколку претходни написи, истражувавме различни аспекти на функцијата Excel VLOOKUP. Ако внимателно не следите, до сега треба да сте експерт во оваа област :)

Сепак, не е без причина што многу специјалисти на Excel сметаат дека VLOOKUP е една од најкомплексните функции на Excel. Има еден тон ограничувања, кои се извор на разни проблеми и грешки.

Во оваа статија ќе најдете едноставни објаснувања за главните причини за грешките на VLOOKUP како на пр. #N/A, #NAME и #VALUE, како и нивните решенија и поправки. Ќе започнеме со најочигледните причини зошто VLOOKUP не работи, па можеби е добра идеја да ги проверите подолу чекорите за решавање проблеми по редослед.

    Поправање на грешка #N/A во VLOOKUP

    Во формулите VLOOKUP, пораката за грешка #N/A (што значи „не е достапна“) се прикажува кога Excel не може да најде вредност за пребарување. Може да има неколку причини зошто тоа може да се случи.

    1. Вредноста за пребарување е погрешно напишана

    Секогаш е добра идеја прво да се провери она што е најочигледно : ) Често се појавуваат погрешни отпечатоци кога работите со навистина големи збирки податоци што се состојат од илјадници редови или кога се внесува вредност за пребарување директно во формулата.

    2.VLOOKUP не може да избере низа табела во друг работен лист (т.е. кога ќе означите опсег во бараниот лист, ништо не се појавува во аргументот table_array во формулата или во соодветното поле од формулата волшебник), тогаш најверојатно двата листа се отворени во посебни примероци на Excel и не можат да комуницираат едни со други. За повеќе информации, погледнете Како да одредите кои датотеки на Excel во кој пример се наоѓаат. За да го поправите ова, едноставно затворете ги сите прозорци на Excel, а потоа повторно отворете ги листовите/работните книги во истиот пример (стандардното однесување).

    Како да направите Vlookup без грешки во Excel

    Ако не сакате да ги заплашувате вашите корисници со стандардни нотации за грешки во Excel, наместо тоа можете да прикажете свој текст што е лесен за користење или да вратите празна ќелија ако ништо не се најде. Ова може да се направи со користење на VLOOKUP со IFERROR или IFNA функција.

    Фати ги сите грешки

    Во Excel 2007 и подоцна, можете да ја користите функцијата IFERROR за да ја проверите формулата VLOOKUP за грешки и да ја вратите вашата сопствен текст (или празна низа) ако се открие каква било грешка .

    На пример:

    =IFERROR(VLOOKUP(E1, A2:B10, 2, FALSE), "Oops, something went wrong")

    Во Excel 2003 и порано, можете да користете ја формулата IF ISERROR за истата цел:

    =IF(ISERROR(VLOOKUP(E1, A2:B10, 2, FALSE)), "Oops, something went wrong", VLOOKUP(E1, A2:B10, 2, FALSE))

    За повеќе детали, видете Користење IFERROR со VLOOKUP во Excel.

    Справи со #N/A грешки

    За да ги заробиш само #N/A грешките игнорирајќи ги сите други типови грешки, користете ја функцијата IFNA (во Excel 2013 иповисоко) или формулата IF ISNA (во сите верзии).

    На пример:

    =IFNA(VLOOKUP(E1, A2:B10, 2, FALSE), "Oops, no match is found. Please try again!")

    =IF(ISNA(VLOOKUP(E1, A2:B10, 2, FALSE)), "Oops, no match is found. Please try again!", VLOOKUP(E1, A2:B10, 2, FALSE))

    Тоа е се за денес. Се надеваме дека ова упатство ќе ви помогне да се ослободите од грешките на VLOOKUP и вашите формули да работат на начинот на кој сакате.

    Како да VLOOKUP во Excel - видео туторијал

    #N/A во приближно совпаѓање VLOOKUP

    Ако вашата формула го бара најблиското совпаѓање, ( range_lookup аргументот е поставен на TRUE или е испуштен), грешката #N/A може да се појави во два случаи :

    • Вредноста за пребарување е помала од најмалата вредност во низата за пребарување.
    • Колоната за пребарување не е подредена по растечки редослед.

    3 . #N/A во точно совпаѓање VLOOKUP

    Ако барате точно совпаѓање ( range_lookup аргумент поставен на FALSE), грешката #N/A се појавува кога вредност точно еднаква на пребарувањето вредноста не е пронајдена. За повеќе информации, видете VLOOKUP точно совпаѓање наспроти приближно совпаѓање.

    4. Колоната за пребарување не е најлевата колона од низата табели

    Едно од најзначајните ограничувања на Excel VLOOKUP е тоа што не може да гледа лево. Следствено, колоната за пребарување секогаш треба да биде најлевата колона во низата табели. Во пракса, често забораваме на ова и завршуваме со #N/A грешки.

    Решение : Ако не е можно да ги реструктуирате вашите податоци така што колоната за пребарување е најлевата колона, можете да ги користите функциите INDEX и MATCH заедно како алтернатива на VLOOKUP. Еве пример за формула: INDEX MATCH формула за пребарување на вредностите налево.

    5. Броевите се форматирани како текст

    Друг вообичаен извор #N/A грешки во формулите VLOOKUP се броевите форматирани како текст, или во главната или во табелата за пребарување.

    Ова обичносе случува кога увезувате податоци од некоја надворешна база на податоци или ако сте внеле апостроф пред број за да ги прикаже првите нули.

    Еве ги најочигледните показатели за броевите форматирани како текст:

    Решение: Изберете ги сите проблематични броеви, кликнете на иконата за грешка и изберете Конвертирај во број од контекстното мени. За повеќе информации, погледнете Како да конвертирате текст во број во Excel.

    6. Водечки или заостанати простори

    Ова е најмалку очигледната причина за грешката VLOOKUP #N/A бидејќи човечкото око тешко може да ги забележи тие дополнителни простори, особено кога работи со големи збирки на податоци каде што повеќето записи се под свитокот .

    Решение 1: Дополнителни празни места во вредноста за пребарување

    За да се обезбеди правилна работа на формулата VLOOKUP, завиткајте ја вредноста за пребарување во функцијата TRIM:

    =VLOOKUP(TRIM(E1), A2:C10, 2, FALSE)

    Решение 2: Дополнителни празни места во колоната за пребарување

    Ако се појават дополнителни празни места во колоната за пребарување, таму не е лесен начин да се избегнат #N/A грешки во VLOOKUP. Наместо тоа, можете да користите комбинација од INDEX, MATCH и TRIM функции како формула за низа:

    =INDEX(B2:B10, MATCH(TRUE, TRIM(A$2:A$10)=TRIM(E1), 0))

    Бидејќи ова е формула за низа, не заборавајте да притиснете Ctrl + Shift + Enter за правилно да го комплетирате (во Excel 365 и Excel 2021 каде низите се природни, ова исто така функционира како редовна формула).

    Совет. Брза алтернатива е да ја стартувате алатката Trim Spaces што ќе ја елиминиравишокот празни места и во пребарувањето и во главните табели за секунди, што ги прави вашите формули VLOOKUP без грешки.

    #VALUE! грешка во формулите VLOOKUP

    Генерално, Microsoft Excel ја прикажува #VALUE! грешка ако вредноста што се користи во формулата е од погрешен тип на податоци. Во однос на VLOOKUP, постојат два заеднички извори на ВРЕДНОСТА! грешка.

    1. Вредноста на пребарувањето надминува 255 знаци

    Внимавајте дека VLOOKUP не може да бара вредности што содржат повеќе од 255 знаци. Ако вашите вредности за пребарување ја надминуваат оваа граница, #VALUE! ќе се прикаже грешка:

    Решение : Наместо тоа, користете формула INDEX MATCH. Во нашиот случај, оваа формула функционира совршено:

    =INDEX(B2:B7, MATCH(TRUE, INDEX(A2:A7= E1, 0), 0))

    2. Целосната патека до работната книга за пребарување не е обезбедена

    Ако влечете податоци од друга работна книга, мора да ја вклучите целосната патека до неа. Поточно, треба да го приложите името на работната книга вклучувајќи ја и наставката во [квадратни загради] и да го наведете името на листот проследено со извичник. Ако името на работната книга или името на листот, или и двете, содржат празни места или какви било знаци без азбука, патеката мора да биде затворена во единечни наводници.

    Еве ја структурата на аргументот table_array до Vlooup од друга работна книга:

    '[workbook name]sheet name'!range

    Реалната формула може да изгледа слично на ова:

    =VLOOKUP($A$2,'[New Prices.xls]Sheet1'!$B:$D, 3, FALSE)

    Горната формула ќе ја бара вредноста на A2 во колоната Б од Лист1 во НовоЦени работна книга и враќаат соодветна вредност од колоната D.

    Ако некој елемент од патеката недостасува, формулата VLOOKUP нема да работи и ќе ја врати грешката #VALUE (освен ако работната книга за пребарување е моментално отворено).

    За повеќе информации, погледнете:

    • Како да се повикате на друг лист или работна книга во Excel
    • Како да направите Vlookup од друга работна книга

    3. Аргументот col_index_num е помал од 1

    Тешко е да се замисли ситуација кога некој намерно внесува број помал од 1 за да ја одреди колоната од која ќе се вратат вредностите. Но, може да се случи ако овој аргумент се врати од некоја друга функција вгнездена во вашата формула VLOOKUP.

    Значи, ако аргументот col_index_num е од 1, вашата формула ќе ја врати #VALUE! грешка исто така.

    Ако col_index_num е поголем од бројот на колоните во низата на табелата, VLOOKUP го произведува #REF! грешка.

    Решавање на грешка во VLOOKUP #NAME

    Ова е најлесниот случај - #NAME? се појавува грешка ако случајно сте го напишале погрешно името на функцијата.

    Решението е очигледно - проверете го правописот :)

    Главните причини за грешки во Excel VLOOKUP

    Покрај имајќи прилично комплицирана синтакса, VLOOKUP има веројатно повеќе ограничувања од која било друга функција на Excel. Поради овие ограничувања, навидум точната формула често може да даде резултати различни од она што го очекувавте. Подолу ќе најдетерешенија за неколку типични сценарија кога VLOOKUP не успее.

    VLOOKUP е нечувствителен на букви

    Функцијата VLOOKUP не ги разликува буквите и ги наведува малите и големите букви како идентични.

    Решение : Користете VLOOKUP, XLOOKUP или INDEX MATCH во комбинација со функцијата EXACT што може да одговара на буквите на текстот. Деталните објаснувања и примери на формули можете да ги најдете во ова упатство: 5 начини да направите Vlookup чувствителен на големи букви во Excel.

    Вметната или отстранета нова колона од табелата

    За жал, VLOOKUP формулите престануваат да работат секој пат кога нова колона се брише или се додава на табелата за пребарување. Ова се случува затоа што синтаксата на функцијата VLOOKUP бара дефинирање на индексниот број на повратната колона. Кога нова колона се додава/отстранува од низата табели, очигледно тој број на индекс се менува.

    Решение : Формулата INDEX MATCH повторно доаѓа на помош : ) Со INDEX MATCH, вие наведете ги опсезите за пребарување и враќање одделно, така што можете слободно да избришете или вметнете онолку колони колку што сакате, без да се грижите за ажурирање на секоја поврзана формула.

    Референците на ќелиите се менуваат при копирање на формулата во други ќелии

    Насловот дава исцрпно објаснување за проблемот, нели?

    Решение : Секогаш користете апсолутни референци (со знакот $) за аргументот table_array , на пр. $A$2:$C$100 или$A: $C. Можете брзо да се префрлате помеѓу различни типови на референци со притискање на копчето F4.

    VLOOKUP ја враќа првата пронајдена вредност

    Како што веќе знаете, Excel VLOOKUP ја враќа првата вредност што ја наоѓа. Сепак, можете да го присилите да донесе 2-ра, 3-та, 4-та или која било друга појава што ја сакате. Исто така, постои начин да се добие последниот натпревар или сите пронајдени совпаѓања.

    Решенија : Примерите со формула се достапни овде:

    • VLOOKUP и враќање N-та појава
    • VLOOKUP повеќе вредности
    • XLOOKUP формула за да се добие последното совпаѓање

    Зошто мојот VLOOKUP работи за некои ќелии, но не и за други?

    Кога вашиот Формулата VLOOKUP ги враќа точните податоци во некои ќелии и #N/A грешки во други, може да има неколку можни причини зошто тоа се случува.

    1. Низата табели не е заклучена

    Да претпоставиме дека ја имате оваа формула во редот 2 (да речеме во E2), која работи убаво:

    =VLOOKUP(D2, A2:B10, 2, FALSE)

    Кога се копира во редот 3, формулата се менува во:

    =VLOOKUP(D3, A3:B11, 2, FALSE)

    Бидејќи се користи релативна референца за table_array , таа се менува врз основа на релативната позиција на редот каде што формулата е копирана , во нашиот случај од A2:B10 до A3:B11. Значи, ако совпаѓањето е во редот 2, нема да се најде!

    Решение : Кога користите формула VLOOKUP за повеќе од една ќелија, секогаш заклучете ја низата на табелата референца со знакот $ како $A$2:$B$10.

    2. Текстуалните вредности или типовите на податоци не се совпаѓаат

    Другочеста причина за неуспехот на VLOOKUP е разликата помеѓу вашата вредност за пребарување и слична вредност во колоната за пребарување. Во некои случаи, разликата е толку суптилна што е тешко да се забележи визуелно.

    Решение : Кога VLOOKUP враќа грешка #N/A додека јасно можете да ја видите вредноста за пребарување во колона за пребарување, и очигледно и двете се напишани точно исто, првото нешто што треба да направите е да ја одредите основната причина за проблемот - формулата или изворните податоци.

    За да видите дали двете вредности се исто или различно, направете директна споредба на овој начин:

    =E1=A4

    Каде што E1 е вашата вредност за пребарување, а A4 е идентична вредност во колоната за пребарување.

    Ако формулата враќа FALSE, тоа значи дека вредностите се разликуваат на некој начин, иако изгледаат апсолутно слично.

    Во случај на нумерички вредности , најможна причина се броевите форматирани како текст.

    Во случај на текстуални вредности , најверојатно проблемот е во вишокот празни места. За да го потврдите ова, дознајте ја вкупната должина на двете низи користејќи ја функцијата LEN:

    =LEN(E1)

    =LEN(A4)

    Ако добиените броеви се различни (како на сликата од екранот подолу ), тогаш точно го посочивте виновникот - дополнителни празни места:

    За да го решите проблемот, или отстранете ги дополнителните празни места или користете ја оваа формула INDEX MATCH TRIM како решение.

    Зошто мојот VLOOKUP влече погрешни податоци?

    Може да има уште повеќе причини зоштовашиот VLOOKUP враќа погрешна вредност:

    1. Неправилен режим на пребарување . Ако сакате точно совпаѓање, поставете го аргументот range_lookup на FALSE. Стандардно е ТОЧНО, па ако го испуштите овој аргумент, VLOOKUP ќе претпостави дека барате приближно совпаѓање и ќе ја барате најблиската вредност што е помала од вредноста за пребарување.
    2. Колоната за пребарување не е подредени . За приближно совпаѓање VLOOKUP ( range_lookup поставено на TRUE) да работи правилно, првата колона во низата табели мора да биде подредена во растечки редослед, од најмал до најголем.
    3. Дупликати во колоната за пребарување . Ако колоната за пребарување содржи две или повеќе дупликат вредности, VLOOKUP ќе го врати првото пронајдено совпаѓање, кое можеби не е она што го очекувате.
    4. Неточна повратна колона . Повторно проверете го бројот на индексот во третиот аргумент :)

    VLOOKUP не работи помеѓу два листа

    Прво, треба да се забележи дека вообичаените причини за #Не/не, Грешките #VALUE и #REF дискутирани погоре може да ги предизвикаат истите проблеми кога гледате од друг лист. Ако не е така, проверете ги следните точки:

    1. Проверете дали надворешната референца на друг лист или друга работна книга е точна.
    2. Кога правите Vlookup од друга работна книга која е затворена во моментот, проверете дали вашата формула ја содржи целосната патека до затворената работна книга.
    3. Ако

    Мајкл Браун е посветен технолошки ентузијаст со страст за поедноставување на сложените процеси користејќи софтверски алатки. Со повеќе од една деценија искуство во технолошката индустрија, тој ги усоврши своите вештини во Microsoft Excel и Outlook, како и Google Sheets и Docs. Блогот на Мајкл е посветен на споделување на своето знаење и експертиза со другите, обезбедувајќи лесни за следење совети и упатства за подобрување на продуктивноста и ефикасноста. Без разлика дали сте искусен професионалец или почетник, блогот на Мајкл нуди вредни сознанија и практични совети за да го извлечете максимумот од овие основни софтверски алатки.