excel - 通过 INDEX MATCH 随机的另一个表的表头名称
问题描述
在 B 列上,我试图获取表 B 上不为空的功能的标题名称之一。我希望随机选择它。表 A 中项目的顺序可能与表 B 中项目的顺序不同,我在这里也需要某种 INDEX MATCH。
Excel 版本:Office 365
尝试的公式:我试图以此为基础制定我的公式:
=INDEX(datarange,RANDBETWEEN(1,COLUMNS(datarange)),1)
但是还有更多的事情需要考虑,比如如果相同水果的索引匹配不为空,则标题名称,所以我知道它更复杂。
任何帮助将不胜感激。
解决方案
假设您有 Excel 365 并且可以接受不稳定的结果:
=LET(
Fruits, Table_B[Fruit],
Properties, Table_B[[Red]:[Green]],
PropertiesHeaders, Table_B[[#Headers],[Red]:[Green]],
ThisFruit, [@Fruits],
ThisProperties, FILTER(Properties, Fruits = ThisFruit),
ThisPropertiesFiltered, FILTER(PropertiesHeaders, ThisProperties <> 0),
ThisPropertiesCount, COUNTA(ThisPropertiesFiltered),
IndexRand, RANDBETWEEN(1,ThisPropertiesCount),
IFERROR(INDEX(ThisPropertiesFiltered,IndexRand),"-")
)
ThisProperties
是Table_B
你的水果的行。我省略了水果名称的列。
ThisPropertiesFiltered
是水果所具有的属性的名称。我根据水果行是否具有非零值来过滤标题名称。
IndexRand
获取一个介于 1 和可用属性数之间的随机数。请注意,如果可用属性为零,则ThisPropertiesFiltered
返回#CALC!
所以ThisPropertiesCount
将返回 1。这将在稍后处理。
最后我们INDEX
用来获取随机属性名称。IFERROR
如果没有可用的属性,则返回“-”。
以下是表格:
表_A:
水果 | 结果 |
---|---|
西瓜 | 重的 |
瓜 | 绿 |
香蕉 | 热带 |
桃 | 红色的 |
苹果 | 绿 |
表_B:
水果 | 红色的 | 黄色的 | 热带 | 重的 | 绿 |
---|---|---|---|---|---|
苹果 | X | X | |||
香蕉 | X | X | |||
桃 | X | ||||
瓜 | X | ||||
西瓜 | X | X |
推荐阅读
- java - 从收藏夹工具栏 java.lang.ClassNotFoundException 启动 Eclipse 时出错:org.eclipse.core.runtime.adaptor.EclipseStarter
- c# - Web 应用程序按钮未在 UI 表中更新
- mysql - 为什么这个 INSERT 语句需要 SELECT 授权?
- angular - 具有以下参数的页面的角度路由
- c# - 为什么 DataBinder Eval 值在 aspx 页面上四舍五入?
- algorithm - 将索引镜像到数组中
- node.js - 使用cheerio 选择嵌套节点
- arrays - 绘图的意外输出
- python - 在 urlpatterns 中为 MEDIA_URL 提供一个视图
- javascript - Bootstrap 4 工具提示/弹出框使用自动放置作为后备(两个放置值)