excel - 使用索引/匹配时处理平局
问题描述
我目前正在从一张纸中提取前 (5) 个数值并将它们输入到另一张纸中。每个数字都在它自己的列中,并且有一个与该列匹配的名称,EX:
因此,与我正在处理的数据有联系是很常见的,所以它几乎不赞成我的公式。
获取名称:
=INDEX('Total Cases by Categories'!$B$18:$B$50, MATCH(LARGE('Total Cases by Categories'!$H$18:$H$50, A39),'Total Cases by Categories'!$H$18:$H$50, 0))
获取与名称关联的数值:
=LARGE('Total Cases by Categories'!$H$18:$H, A39)
因此,当一个类别中有 2 个具有相同数值的人时,那个人会出现两次,我假设是因为他们在工作表中的位置。
因此,如果出现平局,我想列出两个具有相同点数的名称,而不是显示重复值的名字。
任何帮助,将不胜感激!
解决方案
实际上,LARGE 会给你两个并列的名字。这是 MATCH 不能超越第一个。据我所知,没有办法解决这个问题(困难的是不使用 MATCH)。因此,解决方案是没有联系。
这是通过不包含相同数字的辅助列来实现的。这可以通过添加一个无关紧要的小数来实现。由于您正在处理整数,因此添加 0.1 对于您的目的来说是微不足道的,但 13.1 与 13.2 不同。如果您需要从中提取“真实”数字,请使用 INT(13.2)。
为此,使用行号生成微不足道的小数很流行。在第 1 行,ROW()/10将返回 0.1。但在第 10 行,ROW()/10将返回 1.0,这不再是一个微不足道的数字。因此,您必须使用ROW()/100或更大的除数,具体取决于您拥有的行数。尝试ROW()/10^6 - 任何小数都可以完成平局工作。
您可能不喜欢使用 ROW() 会按照他们在工作表中出现的顺序列出绑定的参与者。可以通过任何其他本身不会产生联系的方式来创建微分小数。
通常,添加小数的辅助列将被隐藏。它们包含一个=D23 + (ROW()/10000)
管理自身的公式。然后,您可以将该列用于 MATCH 函数,使用辅助列或原始列按 LARGE 的顺序列出所有参与者。只需确保 MATCH 引用辅助列即可。
推荐阅读
- amazon-web-services - 通过 pyspark 中的 UDF 读取文本文件返回意外输出
- firebase - 在 Xamarin 表单中实现 FirebasePushNotificationPlugin 与本地通知相结合
- macos - 在 macOS Catalina 上检测屏幕录制设置
- c++ - 在 C++ 中使用多重函数合并两个链表
- node.js - 为所有人获得相同的 id 结果
- algorithm - 使用给定属性有效地划分图
- c# - 将 IEnumerable(使用 yield return)与自身进行比较时,Assert.Equal() 失败
- c - 如何正确填写我的结构表而不会导致程序崩溃?
- angular - 如何使导入组件函数中的变量反映到它们的当前值而不是它们在 angular8 中的初始值?
- azure - 容器环境变量发生变化时如何强制重启pod