Excel VLOOKUP не працуе - выпраўленне памылак #N/A і #VALUE

  • Падзяліцца Гэтым
Michael Brown

Змест

Ваша функцыя VLOOKUP атрымлівае няправільныя даныя ці вы наогул не можаце прымусіць яе працаваць? Гэты падручнік паказвае, як можна хутка выправіць агульныя памылкі VLOOKUP і пераадолець яго асноўныя абмежаванні.

У некалькіх папярэдніх артыкулах мы даследавалі розныя аспекты функцыі VLOOKUP Excel. Калі вы ўважліва сочыце за намі, то зараз вы павінны стаць экспертам у гэтай галіне :)

Аднак недарэмна многія спецыялісты па Excel лічаць VLOOKUP адной з самых складаных функцый Excel. Ён мае масу абмежаванняў, якія з'яўляюцца крыніцай розных праблем і памылак.

У гэтым артыкуле вы знойдзеце простыя тлумачэнні асноўных прычын памылак VLOOKUP, такіх як #N/A, #NAME і #VALUE, а таксама іх рашэнні і выпраўленні. Мы пачнем з найбольш відавочных прычын, па якіх VLOOKUP не працуе, таму было б добрай ідэяй па парадку азнаёміцца ​​з прыведзенымі ніжэй крокамі па ліквідацыі непаладак.

    Выпраўленне памылкі #N/A у VLOOKUP

    У формулах VLOOKUP паведамленне пра памылку #N/A (што азначае "недаступна") адлюстроўваецца, калі Excel не можа знайсці пошукавае значэнне. Можа быць некалькі прычын, чаму гэта можа адбыцца.

    1. Пошукавае значэнне напісана з арфаграфічнай памылкай

    Заўсёды добра спачатку праверыць самае відавочнае : ) Памылкі друку часта здараюцца, калі вы працуеце з вельмі вялікімі наборамі даных, якія складаюцца з тысяч радкоў, або калі ўводзіцца пошукавае значэнне непасрэдна ў формуле.

    2.VLOOKUP не можа выбраць таблічны масіў на іншым працоўным аркушы (гэта значыць, калі вы вылучаеце дыяпазон на аркушы пошуку, нічога не з'яўляецца ў table_array аргументу ў формуле або ў адпаведным полі формулы майстар), то, хутчэй за ўсё, два аркушы адкрыты ў асобных асобніках Excel і не могуць звязвацца адзін з адным. Для атрымання дадатковай інфармацыі, калі ласка, гл. Як вызначыць, якія файлы Excel знаходзяцца ў якім асобніку. Каб выправіць гэта, проста зачыніце ўсе вокны Excel, а затым паўторна адкрыйце аркушы/рабочыя кнігі ў тым жа экзэмпляры (паводзіны па змаўчанні).

    Як зрабіць ВПР без памылак у 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 - відэаўрок

    #Н/Д у прыблізным супадзенні VLOOKUP

    Калі ваша формула шукае найбольш блізкае супадзенне ( range_lookup аргумент усталяваны ў TRUE або апушчаны), памылка #Н/Д можа з'явіцца ў двух выпадках :

    • Значэнне пошуку меншае за найменшае значэнне ў масіве пошуку.
    • Слупок пошуку не адсартаваны ў парадку ўзрастання.

    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 без памылак.

    #ЗНАЧЭННЕ! памылка ў формулах VLOOKUP

    Увогуле, Microsoft Excel адлюстроўвае #VALUE! памылка, калі значэнне, якое выкарыстоўваецца ў формуле, мае няправільны тып дадзеных. У дачыненні да VLOOKUP ёсць дзве агульныя крыніцы VALUE! памылка.

    1. Пошукавае значэнне перавышае 255 сімвалаў

    Звярніце ўвагу, што VLOOKUP не можа шукаць значэнні, якія змяшчаюць больш за 255 сімвалаў. Калі значэнні пошуку перавышаюць гэты ліміт, #VALUE! будзе адлюстроўвацца памылка:

    Рашэнне : замест гэтага выкарыстоўвайце формулу INDEX MATCH. У нашым выпадку гэтая формула працуе ідэальна:

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

    2. Поўны шлях да кнігі пошуку не падаецца

    Калі вы чэрпаеце даныя з іншай кнігі, вы павінны ўключыць поўны шлях да яе. Дакладней, вы павінны ўключыць назву працоўнай кнігі, уключаючы пашырэнне, у [квадратныя дужкі] і ўказаць назву аркуша, за якой варта клічнік. Калі імя працоўнай кнігі або імя аркуша, або абодва, утрымліваюць прабелы або любыя неалфавітныя сімвалы, шлях павінен быць заключаны ў адзінарныя двукоссе.

    Вось структура аргумента table_array для Пошук з іншай працоўнай кнігі:

    '[workbook name]sheet name'!range

    Сапраўдная формула можа выглядаць прыкладна так:

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

    Вышэйзгаданая формула будзе шукаць значэнне A2 у слупку B ліста1 у НовыPrices працоўнай кнігі і вяртае адпаведнае значэнне са слупка D.

    Калі які-небудзь элемент шляху адсутнічае, ваша формула VLOOKUP не будзе працаваць і вяртае памылку #VALUE (калі толькі рабочая кніга пошуку не працуе адкрыць).

    Для атрымання дадатковай інфармацыі, калі ласка, глядзіце:

    • Як звярнуцца да іншага аркуша або працоўнай кнігі ў Excel
    • Як зрабіць ВПР з іншай працоўнай кнігі

    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 не адрознівае рэгістр літар і лічыць малыя і вялікія сімвалы аднолькавымі.

    <0 Рашэнне : выкарыстоўвайце 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. Значэнне па змаўчанні - TRUE, таму, калі вы прапусціце гэты аргумент, VLOOKUP будзе лічыць, што вы шукаеце прыблізнае супадзенне, і будзе шукаць бліжэйшае значэнне, меншае за значэнне пошуку.
    2. Слупок пошуку не з'яўляецца адсартавана . Каб прыблізнае супадзенне VLOOKUP ( range_lookup усталявана ў TRUE) працавала карэктна, першы слупок у таблічным масіве павінен быць адсартаваны ў парадку ўзрастання, ад найменшага да вялікага.
    3. Дублікаты ў слупок пошуку . Калі слупок пошуку змяшчае два ці больш паўтаральных значэнняў, VLOOKUP верне першае знойдзенае супадзенне, якое можа быць не тым, што вы чакаеце.
    4. Няправільны слупок вяртання . Яшчэ раз праверце нумар індэкса ў 3-м аргументе :)

    VLOOKUP не працуе паміж двума аркушамі

    Па-першае, трэба адзначыць, што агульныя прычыны #N/A, Памылкі #VALUE і #REF, разгледжаныя вышэй, могуць выклікаць тыя ж праблемы пры пошуку з іншага аркуша. Калі гэта не так, праверце наступныя пункты:

    1. Пераканайцеся, што знешняя спасылка на іншы аркуш або іншую кнігу правільная.
    2. Пры выкананні VLookup з іншай працоўнай кнігі, якая зачынена ў дадзены момант, пераканайцеся, што ваша формула змяшчае поўны шлях да закрытай кнігі.
    3. Калі

    Майкл Браўн - адданы энтузіяст тэхналогій, які любіць спрашчэнне складаных працэсаў з дапамогай праграмных інструментаў. Маючы больш чым дзесяцігадовы досвед працы ў індустрыі тэхналогій, ён удасканальваў свае навыкі ў Microsoft Excel і Outlook, а таксама ў Google Sheets і Docs. Блог Майкла прысвечаны таму, каб падзяліцца сваімі ведамі і вопытам з іншымі, даючы простыя ў выкананні парады і падручнікі для павышэння прадукцыйнасці і эфектыўнасці. Незалежна ад таго, з'яўляецеся вы дасведчаным прафесіяналам або пачаткоўцам, блог Майкла прапануе каштоўную інфармацыю і практычныя парады, каб атрымаць максімальную аддачу ад гэтых неабходных праграмных інструментаў.