EXCEL中的VLOOKUP函数,大家使用的比较多,它实际是个查询函数,依据查询的条件,找到对应的行,可以返回该行某个指定列的单元格,但是它有个缺点,只能实现“一对一”查询,不能实现“一对多”查询,即如果有多个满足条件的结果,VLOOKUP函数只能返回第一个。

如何处理“一对多”的情况,经过我的一番尝试,找到了解决方案。我的解决方案是IF函数+自定义聚合函数。首先来看IF函数,IF函数判断是否满足某个条件,如果满足返回一个值,如果不满足则返回另一个值。巧妙地设置判断条件,就能实现VLOOKUP的功能,在条件判断中,输入一个公式,一个值与一个区域比较是否相等,如不相等,返回空;如相等,返回值为另外一个区域。

举例如下:IF(D4=$A$2:$A$9,$B$2:$B$9,"")

用IF函数进行了尝试,结果参见看上面的图片。实际返回一个数组,就是满足条件对应行另外一列的数值,满足条件返回对应单元格的数值,不满足返回空,基本实现了VLOOKUP的功能,而且是返回了所有的结果,实现了“一对多”。因返回的是数组,而一个单元格无法接收一个数组,单元格无法显示,需要想其它的办法。对于返回的数组,如果有一个聚合函数实现信息收集,就能在一个单元格显示,我突然想到了TEXTJOIN函数,该函数实现了字符连接功能,就是一个很好的聚合函数,但是抠门的微软只在OFFICE 365和部分EXCEL 2016版本中提供这个函数,其它的就没有了,没关系,既然你不提供,我就自己写一个,命名为TEXTJOINA函数,代码如下:

Public Function TextjoinA(str1)

Dim str2 As String

str2 = ""

For Each Data1 In str1

If Data1 <> "" Then

str2 = str2 & "\" & Data1

End If

Next

TextjoinA = str2

End Function

自定义的函数+IF函数运行结果如下,多个结果之间用分隔符"\"隔开,之后用分列就可以了。”

用自定义函数联合IF函数实现“一对多”查询相关推荐

  1. php 二维数组排序函数,php自定义二维数组排序函数array

    这次给大家带来php自定义二维数组排序函数array,php自定义二维数组排序函数array的注意事项有哪些,下面就是实战案例,一起来看一下. 这篇文章主要介绍了php自定义二维数组排序函数array ...

  2. pandas编写自定义函数计算多个数据列的加和(sum)、使用groupby函数和apply函数聚合计算分组内多个数据列的加和

    pandas编写自定义函数计算多个数据列的加和(sum).使用groupby函数和apply函数聚合计算分组内多个数据列的加和 目录

  3. R语言使用magick包的image_border函数和image_background函数自定义图像的边界和背景(Change image border and background)

    R语言使用magick包的image_border函数和image_background函数自定义图像的边界和背景(Change image border and background) 目录

  4. R语言用户自定义函数的语法结构、编写自定义统计值计算函数(使用ifelse结构计算均值和标准差等)、编写自定义日期格式化(format)函数(switch函数使用不同分枝格式化日期数据)、应用自定函数

    R语言用户自定义函数的语法结构.编写自定义统计值计算函数(使用ifelse结构计算均值和标准差等).编写自定义日期格式化(format)函数(switch函数使用不同分枝格式化日期数据).应用自定函数 ...

  5. R语言ggplot2可视化分组散点图、使用scale_shape_manual函数、scale_color_manual函数、scale_size_manual函自定义设置分组散点的形状、大小、颜色

    R语言ggplot2可视化分组散点图.使用scale_shape_manual函数.scale_color_manual函数.scale_size_manual函数自定义设置分组散点的形状.大小.颜色 ...

  6. R语言编写自定义函数、创建使用ggplot2生成图标(icon)的主题(theme)函数、使用ggplot2以及自定义的图标主题函数创建箱图(boxplot)图标、ggsave保存图标(png、svg

    R语言编写自定义函数.创建使用ggplot2生成图标(icon)的主题(theme)函数.使用ggplot2以及自定义的图标主题函数创建箱图(boxplot)图标.ggsave保存图标(png.svg ...

  7. R语言编写自定义函数基于ggsumarystats函数计算每个分组的统计值、自定义可视化分组分面条形图,并在X轴标签下方添加分组对应的统计值(样本数N、中位数median、四分位数的间距iqr)

    R语言编写自定义函数基于ggsumarystats函数计算每个分组的统计值.自定义可视化分组分面条形图,并在X轴标签下方添加分组对应的统计值(样本数N.中位数median.四分位数的间距iqr) 目录

  8. R语言head函数和tail函数获取dataframe、列表list、向量vector的头部和尾部数据:tail提取数据对象的尾部数据、head提取数据对象的头部数据、默认6条数据、自定义设置返回条数

    R语言head函数和tail函数获取dataframe.列表list.向量vector的头部和尾部数据:tail提取数据对象的尾部数据.head提取数据对象的头部数据.默认6条数据.自定义设置返回条数 ...

  9. Python matplotlib可视化:自定义轴标签格式化函数(在轴刻度上添加自定义的数值以及符号形式)、使用自定义函数在Matplotlib中为坐标轴刻度添加自定义符号(例如,货币符号¥$等)

    Python matplotlib可视化:自定义轴标签格式化函数(在轴刻度上添加自定义的数值以及符号形式).使用自定义函数在Matplotlib中为坐标轴刻度添加自定义符号(例如,货币符号¥$等) 目 ...

最新文章

  1. 嵌入式定制开发合作伙伴应该这样选择
  2. Android中SQLite的使用
  3. 每日一皮:今天在公司听到一句惨绝人寰骂人的话
  4. POJ 3525/UVA 1396 Most Distant Point from the Sea(二分+半平面交)
  5. 利用多线程实现报表的高效导出
  6. Arduino数字引脚作为GPIO的使用
  7. C++有哪些性质(面向对象特点)
  8. Linux基本目录结构
  9. 最简便的Revit信息导出到数据库本地SQL SERVER
  10. fckeditor异常总结---org.apache.commons.fileupload.FileUploadException
  11. Angular 导致公司损失数十亿美元!
  12. 【快报】程序员,别再埋头学Python了!
  13. fx-1s可以用c语言,AX-1S 系列微型可编程控制器100兼容三菱FX-1S系列PLC)
  14. [USACO06NOV]玉米田Corn Fields (状压$dp$)
  15. GPT-J 自然语言处理 AI 模型
  16. CDOJ 485 UESTC 485 Game (八数码变形,映射,逆cantor展开)
  17. vba编写的出库单(可添加出库项目记录、生成、打印出库单)
  18. vscode-JS代码段(JavaScript Snippet Pack)
  19. 【通信】基于量子密钥分发密钥率仿真含Matlab源码
  20. C#轻量级 restful http 服务实践初探

热门文章

  1. 【转】Java 项目UML反向工程转化工具
  2. ODrive踩坑(二)3508电机和TLE5012B磁编码器参数配置、校准、位置闭环模式转动电机(TLE5012B-E1000)
  3. CleanCodeHandbook Chapter 3: Linked List(20-24)
  4. 关于Python、Anaconda、Jupyter
  5. 【阅读】所谓情商高,就是会说话
  6. ApplicationEventMulticaster not initialized - call 'refresh' before
  7. TWaver初学实战——基于HTML5的交互式地铁图
  8. HDU #5733 tetrahedron
  9. jmeter脚本录制作业_399
  10. Drupal的登陆用户Cache功能