我试图以一种方式提出一个传统系统,我可以在不使用VBA宏的情况下执行if语句来实现数据填充名称列表。这将使用IF语句来查看列D是否具有名称的值,如果是,则将其放入已完成的列表中,如果不存在,则不执行任何操作,并在其具有值时将下一个名称放在那里。未完成列表中将始终有8个项目,因为它是固定/永久名称(E中的值将更改),并且在已完成列表中为4个或更少。
预期输出:
Fulfilled List UnFulfilled List
A B D E
Apples 50 Apples 50
Oranges 75 Peanuts
Grapes 60 Oranges 75
Avacados 100 Grapes 60
Carrots
Avacados 100
这是我的想法。它会检查值,如果有值,则放置值,然后放置名称,如果不存在值,则检查下一个单元格。然而,这将失败,因为无论如何,当我们只希望它采取有效物品时,它将需要e2。
Cell B1 = =if(e1="",e2,e1)
Cell A1 = =if(b1="Apples,d1,d2) nested if statement possibly?
任何帮助将不胜感激我如何能够解决这个问题。谢谢!
答案 0 :(得分:2)
如果我理解正确,你可以使用数据透视表或在A1中使用如下的数组公式:
=IFERROR(INDEX($D$1:$D$3,SMALL(IF($E$1:$E$3>0,ROW($E$1:$E$3)),ROW())),"")
注意:按Ctrl + Shift + Enter,然后根据需要向下拖动
Note2 :在这种情况下使用了行1,如果数据低于那个(例如带有标题的tbale),其中ROW()变为 - > ROW() - ROW(对标题单元格的引用)
您需要更改:
$ D $ 1:$ D $ 3 - 这应该是D栏中的完整项目清单
$ E $ 1:$ E $ 3 - 类似地,这应该是E列中的计数的完整列表(两个地方的变化 - 在IF旁边和ROWS旁边)
然后在B列中,您可以使用vlookup公式,例如:
=IF(LEN(A1)>0,VLOOKUP(A1,$D$1:$E$3,2,FALSE),"")
注意:这假设您在D列中没有重复
再次,您需要更改$ D $ 1:$ E $ 3,以便它包含这些列中的所有内容
希望有所帮助