Maison > Article > Les sujets > [Organisation et partage] 4 façons d'utiliser les fonctions RECHERCHEV et RECHERCHE pour effectuer une recherche floue
La plupart du temps, nous devons effectuer des recherches précises, mais il arrive aussi que des recherches floues soient nécessaires. Par exemple, rechercher le nom complet en fonction de l'abréviation ou classer le nom en fonction de valeurs numériques, etc. La recherche floue n'est pas la même chose qu'un aveugle essayant de comprendre un éléphant. Voici 4 façons d'utiliser les fonctions RECHERCHEV et RECHERCHE pour effectuer une recherche floue.
Aujourd'hui, je vais partager avec vous plusieurs méthodes de recherche floue.
La recherche floue conventionnelle est divisée en deux situations, l'une est une valeur numérique ; l'autre est un texte.
Tout d'abord, nous partageons sur la recherche floue numérique.
Exemple :
Une entreprise doit personnaliser les vêtements de travail pour les nouveaux employés. Elle doit désormais adapter la taille des vêtements en fonction de la taille réelle des employés.
Dans ce cas, il est nécessaire d'utiliser la recherche floue pour renvoyer la taille correspondant à la taille de chaque salarié. Il existe deux façons de procéder.
Méthode 1 : RECHERCHE
Formule de fonction : =LOOKUP(B2,{0;165;170;175;180;185;190},{"S";"M";"L ";"XL";"XXL";"XXXL";"XXXXL"})
=LOOKUP(B2,{0;165;170;175;180;185;190},{"S";"M";"L";"XL";"XXL";"XXXL";"XXXXL"})
公式解析:
这是通过LOOKUP向量形式来完成模糊查找。可以理解为查找B2单元格处于{0;165;170;175;180;185;190}哪个区间,如果在某个区间内就返回对应{"S";"M";"L";"XL";"XXL";"XXXL";"XXXXL"}的文本信息。
譬如169位于165-170之间,那么就返回“M”文本信息。
这里的区间对应关系如下。0到小于165的属于S尺寸;165到小于170的属于M尺寸,依次类推,直到大于等于190的属于XXXXL尺寸。
如果对此处看不懂的可以查看教程《Excel函数学习之LOOKUP函数的5种用法》的第四节“按区间查找的套路”。
方法二:VLOOKUP
函数公式:=IFERROR(VLOOKUP(B2+5,F:G,2,1),"S")
日常工作中我们使用VLOOKUP函数时第四个参数都是输入0,表示精确查找,此处第四参数为1,表示近似查找。
公式解析:
1.通过函数公式=VLOOKUP(B2,F:G,2,1)即可返回目标区域中小于等于查找值的最大值所对应的尺码。注意:在使用VLOOKUP函数进行模糊查找之前必须要将查找范围F:G处的数据按查找内容(此处为身高)进行升序排序。
例如,我们查找172,那么就返回目标区域中小于等于172的最大值即170,对应的尺码为M。由于服装的尺寸是就高不就低,身高172的员工必须定制身高175的L码的衣服,所以我们在查找匹配时需要在员工身高基础上加5,这样就能返回大于身高的最小尺寸了。
2.员工中有部分身高即使加5后仍小于165,因为F列165就是最小的了,所以这部分数据无法在F列查找到所需值,VLOOKUP函数返回错误值#N/A。我们希望小于165的员工都定制S号,就通过IFERROR函数将VLOOKUP错误结果重定向为文本字符“S”。
下面分享文本的模糊查找,例如,通过查找AB返回查找区域中包含AB的AAAABBB单元格所对应的值。
举例:
下表为各公司2018年度营业额数据,公司名称为全称。现在我们在另外一个表中需要根据公司简称来匹配相关的营业额数据。
方法一:VLOOKUP+通配符
函数公式:=VLOOKUP("*"&E2&"*",A:B,2,0)
Analyse de formule :
Il s'agit de compléter la recherche floue sous forme de vecteur de RECHERCHE. Cela peut être compris comme la recherche de l'intervalle dans lequel se trouve la cellule B2 : {0;165;170;175;180;185;190}. Si elle se trouve dans un certain intervalle, le {"S";"M";"L correspondant. ";"XL sera renvoyé ";"XXL";"XXXL";"XXXXL"} informations textuelles.
Par exemple, si 169 est compris entre 165 et 170, les informations textuelles « M » seront renvoyées.
🎜La relation correspondante entre les intervalles ici est la suivante. 0 à moins de 165 appartient à la taille S ; 165 à moins de 170 appartient à la taille M, et ainsi de suite, jusqu'à ce que 190 ou plus appartienne à la taille XXXXL. 🎜🎜🎜🎜Si vous aimez ceci Si vous ne comprenez rien, vous pouvez consulter le tutoriel "5 façons d'utiliser le Fonction RECHERCHE dans l'apprentissage des fonctions Excel Section 4 de a>》"Routine de recherche par intervalle". 🎜🎜🎜🎜Méthode 2 : RECHERCHEV🎜🎜🎜🎜Formule de fonction :=SIERREUR(RECHERCHEV(B2+5,F:G,2,1),"S")
🎜🎜🎜🎜Lorsque nous utilisons la fonction RECHERCHEV dans le travail quotidien, le quatrième paramètre entre toujours 0, ce qui signifie recherche précise. Le quatrième paramètre ici est 1, ce qui signifie recherche approximative. 🎜🎜Analyse de formule : 🎜🎜1. Utilisez la formule de fonction =VLOOKUP(B2,F:G,2,1) pour renvoyer la taille correspondant à la valeur maximale dans la zone cible qui est inférieure ou égale à la valeur de recherche. Remarque : Avant d'utiliser la fonction RECHERCHEV pour la recherche floue, les données dans la plage de recherche F:G doivent être triées par ordre croissant en fonction du contenu de la recherche (ici, la hauteur). 🎜🎜 🎜🎜Par exemple, si nous recherchons 172, alors la valeur maximale inférieure ou égale à 172 dans la zone cible est renvoyée, qui est 170, et la taille correspondante est M. Étant donné que la taille des vêtements est haute plutôt que basse, un employé mesurant 172 doit personnaliser des vêtements de taille L avec une hauteur de 175. Ainsi, lorsque nous recherchons une correspondance, nous devons ajouter 5 à la taille de l'employé, afin que le une taille minimale supérieure à la hauteur peut être renvoyée. 🎜🎜2. La taille de certains employés est toujours inférieure à 165 même après avoir ajouté 5. Comme 165 est la plus petite de la colonne F, la valeur requise ne peut pas être trouvée dans la colonne F pour cette partie des données, et la fonction RECHERCHEV renvoie l'erreur. valeur #N/A. Nous espérons que tous les employés de moins de 165 ans personnaliseront les numéros S, nous utilisons donc la fonction SIERREUR pour rediriger le résultat de l'erreur RECHERCHEV vers le caractère de texte « S ». 🎜🎜🎜2. Recherche floue de caractères de texte🎜🎜🎜Ce qui suit est une recherche floue de texte Par exemple, en recherchant AB, la valeur correspondant à la cellule AAAABBB contenant AB dans la zone de recherche est renvoyée. 🎜🎜Exemple : 🎜🎜Le tableau suivant présente les données de chiffre d'affaires annuel 2018 de chaque entreprise. Le nom de l'entreprise est le nom complet. Nous devons maintenant faire correspondre les données de chiffre d’affaires pertinentes en fonction de l’abréviation de l’entreprise dans un autre tableau. 🎜🎜 🎜🎜🎜🎜Méthode 1 : RECHERCHEV+caractère générique🎜🎜🎜🎜Formule de fonction : =RECHERCHEV("*"&E2&"*",A:B,2,0)
🎜🎜🎜🎜🎜Explication de la formule : 🎜🎜* représente tous les caractères, "*"&E2&"*" représente tout, y compris le contenu textuel de la cellule E2. 🎜Méthode 2 : RECHERCHE+FIND
Formule de fonction : =LOOKUP(1,0/FIND(E2,A$2:A$8),B$2:B$8)
=LOOKUP(1,0/FIND(E2,A:A),B:B)
公式解释:
公式用了LOOKUP查找套路。通过FIND函数判断E2单元格中文本处于A:A单元格中的位置,如果存在则返回大于0的数值,否则返回错误值;然后0/FIND(),则得到一组0和错误值的数组;最后LOOKUP函数出手,在数组中找到最大的不大于1的值,0,并根据0所在位置,返回对应的B:B中的值。
顺便说一嘴:如果你只想通过简称查到全称,则公式可以改成=LOOKUP(1,0/FIND(E2,A:A),
A:A)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!