Dynamic 具有多个条件的动态检查表

Dynamic 具有多个条件的动态检查表,dynamic,lookup,Dynamic,Lookup,我有一个动态清单,可以根据多个标准更改显示的问题。这是可行的,但我希望有一种更有效的方法,特别是在标准提高的情况下 例如: 假设有两个标准可以是“Y”或“N”。检查表A上的参数设置为仅显示Criteria1=Y和Criteria2=N的问题 问题1是[Y,N],应该显示 问题2不是[Y,N],不应显示 问题3不是[Y,N],不应显示 问题4是[Y,N],应该显示 因此,清单A显示: 问题1 问题4 一个接一个的问题,如问题2和问题3并不存在 目前,我使用helper列计数(参数匹配)为每个可能性

我有一个动态清单,可以根据多个标准更改显示的问题。这是可行的,但我希望有一种更有效的方法,特别是在标准提高的情况下

例如:

假设有两个标准可以是“Y”或“N”。检查表A上的参数设置为仅显示Criteria1=Y和Criteria2=N的问题

问题1是[Y,N],应该显示

问题2不是[Y,N],不应显示

问题3不是[Y,N],不应显示

问题4是[Y,N],应该显示

因此,清单A显示:

问题1

问题4

一个接一个的问题,如问题2和问题3并不存在

目前,我使用helper列计数(参数匹配)为每个可能性(Y/Y,Y/N,N/Y,N/N)工作。然后对每一行执行查找。(在上面的示例中,对于清单A中的第二个问题,它基于“2”在“是/否”列上进行查找,并为第二个“显示”问题提取问题4)

它运行良好,可立即“制造”或根据参数更改200行检查表。然而,我希望有一种比创建列更好的方法来计算所有可能的组合

是否有公式组合确定第二个Y/N组合为第4行?这几乎就像=>COUNTIFS(对于指定参数)=2是哪一行


也许是行/列的组合?一些数组公式/SUMPRODUCT?

我使用索引、小和CountIf计算出来:

IF(A13=0,“”,索引(MAIND,SMALL)(IF(COUNTIFS(A13,索引(MAIND,MATCH(A13,NCT,0)),B13,索引(MAIND,MATCH(B13,NCT,0)),C13,索引(MAIND,MATCH(C13,NCT,0)),基本问题!$A$1:$A$316,”),COUNTIF(B$12:B13,B13))+行(CAQ)-1,列(IQ)))

参数位于A、B、C和D列中,从第13行开始。MAIND是一个范围名称,其中存在问题和包括/排除切换。NCT是用于确定要查看MainD中的哪个列的标题。CAQ是问题列表的第一位。IC是包含问题的列


CountIf统计MainD中的行,其中toggle列表中的所有行都与A、B、C和D列中的参数相匹配。toggle列表中的每一列都包含参数值(如果它应该显示该问题)或“xx”(实际上可以是参数值的任何值)。然后,小函数选择与所有条件匹配的第n个问题(A-D中的参数),其中n是A-D匹配中的参数数。因此,在动态问卷的第9行中,它显示了MainD中第9行与A-D匹配的问题。

我使用索引、小和CountIf计算出:

IF(A13=0,“”,索引(MAIND,SMALL)(IF(COUNTIFS(A13,索引(MAIND,MATCH(A13,NCT,0)),B13,索引(MAIND,MATCH(B13,NCT,0)),C13,索引(MAIND,MATCH(C13,NCT,0)),基本问题!$A$1:$A$316,”),COUNTIF(B$12:B13,B13))+行(CAQ)-1,列(IQ)))

参数位于A、B、C和D列中,从第13行开始。MAIND是一个范围名称,其中存在问题和包括/排除切换。NCT是用于确定要查看MainD中的哪个列的标题。CAQ是问题列表的第一位。IC是包含问题的列


CountIf统计MainD中的行,其中toggle列表中的所有行都与A、B、C和D列中的参数相匹配。toggle列表中的每一列都包含参数值(如果它应该显示该问题)或“xx”(实际上可以是参数值的任何值)。然后,小函数选择与所有条件匹配的第n个问题(A-D中的参数),其中n是A-D匹配中的参数数。因此,在动态调查问卷的第9行中,它显示了MAIN中与A-D匹配的第9行MAIN中的问题。

您可以显示一些代码吗?没有任何代码,只有Excel函数(主要是查找函数)。更多的是关于结构(使用辅助列来确定多个条件匹配计数)。我正在寻找一种优雅的方法来确定第n个匹配(多个条件)的位置,它不需要helper列。似乎SUMPRODUCT应该能够做到这一点,但我还没有弄清楚如何做到。请您展示一下您的一些代码好吗?这里没有任何代码,只有Excel函数(主要是查找函数)。更多的是关于结构(使用辅助列来确定多个条件匹配计数)。我正在寻找一种优雅的方法来确定第n个匹配(多个条件)的位置,它不需要helper列。看起来SUMPRODUCT应该能做到,但我还没弄明白怎么做。