我有一张表,如下图所示。我想计算自上一个条目以来列Leg中的单元格数,给定列类型的特定分类。 例如,仅对于KFT类型,自Leg的最后一个条目以来,Legendary列中有多少个空白条目?
我知道如何解决此问题创建帮助列。但鉴于我有太多类型,我将不得不为每种类型创建一个帮助列,使我的表太大,因为我有多少行。有什么方法可以创建一个VBA函数来为我执行这个任务,这样我每个类型只需要一个单元格让我知道自每个类型的最后一个Leg条目以来空白单元格的数量?以下是我的表格外观的简短示例,仅使用了两种类型:
在这个例子中,我需要一个输出为MSG的公式,因为自从MSG的最后一个Leg以来它已经是0个条目,而UNG的输出是2,因为它是自UNG的最后一个Leg以来的2个条目。 / p>
非常感谢你的帮助!
答案 0 :(得分:0)
好吧。我认为你的问题的最佳解决方案是使用辅助列或VBA,但如果你真的只想使用一个公式,我会为你找到一些东西。这个公式非常非常可怕,有人可能会给你更好的解决方案,但这个公式确实有效。
在下面的公式中,我假设数据在A2:F100
范围内。将100
更改为您的数据行数。 (更改所有100个,最好的方法是在空白工作表中复制没有=
的公式,然后FIND
100
和REPLACE ALL
复制到您的行号
如果您从Types
开始在Column H
列出Cell H2
,则在Cell I2
中输入以下表格,根据需要拖放/复制。
=COUNTIFS(INDIRECT("F" & INDEX($A$2:$A$100,MAX(IF(($B$2:$B$100=H2)*($F$2:$F$100=1),ROW($B$2:$B$100)-ROW(INDEX($B$2:$B$100,1,1))+1)))+1 & ":F" & IF(INDEX($A$2:$A$100,MAX(IF(($B$2:$B$100=H2)*($F$2:$F$100=1),ROW($B$2:$B$100)-ROW(INDEX($B$2:$B$100,1,1))+1)))+1>INDEX($A$2:$A$100,MAX(IF(($B$2:$B$100=H2)*($F$2:$F$100=""),ROW($B$2:$B$100)-ROW(INDEX($B$2:$B$100,1,1))+1)))+1,100,INDEX($A$2:$A$100,MAX(IF(($B$2:$B$100=H2)*($F$2:$F$100=""),ROW($B$2:$B$100)-ROW(INDEX($B$2:$B$100,1,1))+1)))+1)),"",INDIRECT("B" & INDEX($A$2:$A$100,MAX(IF(($B$2:$B$100=H2)*($F$2:$F$100=1),ROW($B$2:$B$100)-ROW(INDEX($B$2:$B$100,1,1))+1)))+1 & ":B" & IF(INDEX($A$2:$A$100,MAX(IF(($B$2:$B$100=H2)*($F$2:$F$100=1),ROW($B$2:$B$100)-ROW(INDEX($B$2:$B$100,1,1))+1)))+1>INDEX($A$2:$A$100,MAX(IF(($B$2:$B$100=H2)*($F$2:$F$100=""),ROW($B$2:$B$100)-ROW(INDEX($B$2:$B$100,1,1))+1)))+1,100,INDEX($A$2:$A$100,MAX(IF(($B$2:$B$100=H2)*($F$2:$F$100=""),ROW($B$2:$B$100)-ROW(INDEX($B$2:$B$100,1,1))+1)))+1)),H2)
这是一个数组公式,所以按 Ctrl + Shift + Enter 提交它。
假设您从Types
开始列出Column H
中的所有Cell H2
,然后在Cell I2
中输入以下数组公式以获取最后一行Type
和Column H
Leg =1
的数据
=INDEX($A$2:$A$11,MAX(IF(($B$2:$B$11=H2)*($F$2:$F$11=1),ROW($B$2:$B$11)-ROW(INDEX($B$2:$B$11,1,1))+1)))+1
然后在Cell J2
中输入以下数组公式,以获取Type
和Column H
<中相应Leg ="" (blank)
的数据的最后一行/ p>
=INDEX($A$2:$A$11,MAX(IF(($B$2:$B$11=H2)*($F$2:$F$11=""),ROW($B$2:$B$11)-ROW(INDEX($B$2:$B$11,1,1))+1)))+1
接下来,在Cell K2
中,如果没有与行空白的特定类型相对应的行,请输入以下公式来设置最后一行(例如,在我的示例数据中ABC
没有空{ {1}})
Leg
最后,在=IF(I2>J2,11,J2)
中输入以下公式以获取Cell E2
Count