match - Excel - 如何在另一个工作表中引用带有 x 的单元格旁边的单元格?
问题描述
在表 1 中,第 1 列是一个垂直的单词列表(例如 A1:A25)。
在表 1 第 2 列中,我想随机放置一个 X(例如,在 B1:B25 之间的一个单元格中)
在表 2 中,我想返回表 1 中 X 左侧的任何单词。我该怎么做?
解决方案
如果“X”在左边,你可以使用 VLOOKUP 找到它右边的单词,但如果“X”在右边,那么你需要 INDEX 和 MATCH:
=INDEX(Sheet1!$A$1:$A$25,MATCH("X",Sheet1!$B$1:$B$25,0))
如果您需要找到第 N 个“X”,则不能使用该方法,因为 MATCH 返回它找到的第一个匹配项的行号。因此,您需要 SMALL 来获得包含“X”的第 N 个最小行:
=INDEX(Sheet1!$A$1:$A$25,SMALL(IF(Sheet1!$B$1:$B$25="X",ROW(Sheet1!$B$1:$B$25)-ROW(INDEX(Sheet1!$B$1:$B$25,1,1))+1),N))
将公式中的最后一个“N”设置为您要查找的项目 - 如果它是 1,那么它会找到第一个带有“X”的项目,如果它是 2,它会找到第二个,等等。
所以对于第一个“X”:
=INDEX(Sheet1!$A$1:$A$25,SMALL(IF(Sheet1!$B$1:$B$25="X",ROW(Sheet1!$B$1:$B$25)-ROW(INDEX(Sheet1!$B$1:$B$25,1,1))+1),1))
对于第二个:
=INDEX(Sheet1!$A$1:$A$25,SMALL(IF(Sheet1!$B$1:$B$25="X",ROW(Sheet1!$B$1:$B$25)-ROW(INDEX(Sheet1!$B$1:$B$25,1,1))+1),2))
这是一个数组公式,因此当您输入它时,您需要按 Control-Shift-Enter 而不是单独按 Enter。输入后,它会用括号括起来显示。
我从https://exceljet.net/formula/get-nth-match-with-index-match改编了这个公式 ,他们对它的工作原理进行了深入的描述。
推荐阅读
- apache-beam - 知道在 apache Beam 直接运行器中运行的线程数
- python - 使用 django rest 框架有效地在数据库中保存 60K 记录
- text-classification - fasttext 监督学习中的 args wordNgrams、minn 和 maxn 有什么区别?
- flutter - 如何在 Draggable 中获得滑动方向?
- r - ggplotly- 绘图标题与图形重叠
- reactjs - 我怎样才能摆脱这个不需要的重新渲染循环?
- python - 使用列表在python中从头开始创建哈希函数
- javascript - 如何将 hegel.js 与 React 应用程序(create-react-app)一起使用?
- excel - 按日期对行进行排序
- cmake - 使用 CMake 和 Visual Studio 将文件包含在外部目标中