我有一个如下所示的电子表格:
A B C D
------------------------------------
1 | Yes | No | | | |
2 | 1 | 1 | 0 | 1 | 0 |
------------------------------------
------------------------------------
12| Yes | No | | Yes | Yes |
13| Yes | Yes | No | No | |
14| Yes | No | | No | Yes |
15| No | Yes | No | No | |
...
我想根据几个标准用1或0填充第2行中的单元格。如果满足以下所有条件,则该值应为1(使用单元格D2作为参考):
如果这些条件中的任何一个失败,则单元格值应为0.在单元格D2中,我们的值为1,因为算法在第12行和第14行中找到匹配,在D12和D14中找到非空单元格。
我需要能够跨多个列动态应用它,所以我试图避免编写特定于列的函数。我意识到我可能会写一个UDF来执行此操作,但我想尽可能避免走这条路。
答案 0 :(得分:2)
因为这是一个挑战,所以我想了解并提出了
=SIGN(SUM(--(MMULT(($A1:A1=$A12:A15)*(B12:B15<>""),TRANSPOSE(COLUMN($A12:A15)^0))=COLUMNS($A1:A1))))
进入B2并拉过来。必须使用 Ctrl Shift 输入
作为数组公式输入A2我认为只是
=sign(counta(a12:a15))
因为除非整列都是空的,否则它将为1。
答案 1 :(得分:0)
我不确定你的问题有完整的答案,如所述没有一个UDF,但我会对该方法提出一些问题并说“为什么复杂'并且这个列不是空白(但可以是任何其他值)?“
为什么不向后寻找该字段的行匹配?在我看来,它只是按列移动,事实上,这正是你在A2中所做的,因为在A之前没有任何东西。所以在重复行上匹配,例如,D2将包含基本相同的信息你的例子在C2中。
要在字段中查找重复项,您可以使用类似于C2中的公式:=IF(SUMPRODUCT((A3:A15=A1)*1,(B3:B15=B1)*1,(C3:C15=C1)*1)>1,1,0)
在D2中,您将复制该公式并添加(D3:D15=D1)*1
等