Excel - 在表格中查找值并根据以前的数据填充空白单元格
Posted
技术标签:
【中文标题】Excel - 在表格中查找值并根据以前的数据填充空白单元格【英文标题】:Excel - Lookup values in table and fill blank cells based on previous data 【发布时间】:2019-02-23 12:23:46 【问题描述】:我有下表,其中第一列中的每个 ID 在第二列中都有对应的水果,无论如何。
<pre><strong>ID Fruit</strong><hr>
142 Apple<br>
223 Banana<br>
342 Lemon<br>
223<br>
142 Apple<br>
342<br>
142<br>
462 Apple<br>
我希望根据第一列中的 ID 自动填充水果列中的空白单元格。添加一个扭曲,每个 ID 只能附加一个水果,但一个水果可以有多个 ID(例如,Apple 可以有 ID 142 和 462,但 142 只能有 APPLE 作为值)。
起初这似乎是一个非常简单的问题,但我似乎无法弄清楚。我已经尝试过 IF、VLOOKUP 和 INDEX&MATCH,但没有一个代码起作用,所以我没有任何东西可以粘贴来显示我在哪里,因为直到现在我还没有得到任何结果。
与此同时,我也在探索使用 VBA 的解决方案,虽然我对它不是很熟悉,所以可能需要一段时间。
提前致谢。
【问题讨论】:
你的意思是说第二列被部分填满了,你自动要填充空白单元格,而不改变已经填满的单元格吗? 一个简单的 vlookup 应该可以做到这一点,除非我遗漏了什么。只需确保您的查找表单独列出 id 并重复值即可。 【参考方案1】:在C2
中,这个公式应该有效,然后将其向下拖动:
=INDEX($B$2:$B$9,MATCH(1,(A2=$A$2:$A$9)*($B$2:$B$9<>0),0))
注意:这是一个数组函数!
为了方便起见,另一种选择是使用=AGGREGATE()
:
=IF(B2=0,INDEX($B$1:$B$9,AGGREGATE(15,3,((($A$1:$A$9=A2)/($A$1:$A$9=A2))*(($B$1:$B$9<>0)/($B$1:$B$9<>0)))*ROW($A$1:$A$9),1)),B2)
注意:它被包裹在=IF()
中,以防止不必要的计算发生
还有更多方法…… :)
【讨论】:
它甚至可以更简单,如果您的陈述“基于以前的数据”真的是您的意思,那么简单的 vlookup 应该比@Qharr 状态更简单。哦,公式可以很有趣:) + 用于上述内容!以上是关于Excel - 在表格中查找值并根据以前的数据填充空白单元格的主要内容,如果未能解决你的问题,请参考以下文章