If statement 如果所有非空值都相同,则返回值的公式,否则返回空值?

If statement 如果所有非空值都相同,则返回值的公式,否则返回空值?,if-statement,google-sheets,filter,google-sheets-formula,distinct-values,If Statement,Google Sheets,Filter,Google Sheets Formula,Distinct Values,我有一张谷歌表格,上面有很多(很多,很多)以下情况: A B C D E 1 a b1 e1 2 a 3 b2 d e2 4 a e2 基本上,每一行都列出了从不同位置收集的内容(关于研究论文的信息);理论上,每一行中的值应该是相同的,但由于某些位置缺少一些信息,有时信息在某些次要(但可能很重要)方面有所不同,因此并非完全一致 如果该

我有一张谷歌表格,上面有很多(很多,很多)以下情况:

  A    B    C    D    E
1 a    b1             e1
2 a                   
3      b2        d    e2
4 a                   e2
基本上,每一行都列出了从不同位置收集的内容(关于研究论文的信息);理论上,每一行中的值应该是相同的,但由于某些位置缺少一些信息,有时信息在某些次要(但可能很重要)方面有所不同,因此并非完全一致

如果该列中的所有非空值相同,我希望该组下面的每个单元格显示一个值,如果非空值之间存在差异,则不显示任何值。见下文第5行:

  A    B    C    D    E
1 a    b1             e1
2 a                   
3      b2        d    e2
4 a                   e2

5 a              d     
这基本上是第一次程序清理,以协助进一步的体力劳动(这是不可避免的)

有一个示例表-真实的东西将有大约18组值(标题、作者、ISBN、出版物、URL、关键字等)和270列(每个列用于另一个出版物)。底部的橙色行只是手动粘贴的,但显示了我希望通过公式在蓝色行中获得的值

我意识到这可以通过大量的假设来实现,但是。。。肯定有办法写出一个公式,从一个数组或一组单元格中提取所有非空值,相互比较,如果它们都相等,则返回一个值


不幸的是,我画了一个空白…

这肯定不是一个最佳的解决方案,但它是有效的

=IF(COUNTIF(A1:A7,第一个非空单元格)=COUNTA(A1:A7,第一个非空单元格“”)

您可以考虑替换<代码> FixtIn非Ipple Type Cys<代码>

LOWER(索引(A1:A7,匹配(1,索引((A1:A70),0),0))

或者与包含要用于比较的值的单元格一起使用。

Countunique应该可以:

=if(countunique(A1:A4)=1,sortn(A1:A4,1),"")
我使用sortn是因为我想在显示单个非空值之前从值列表中删除任何空单元格,这是一种方法(空单元格被排序到最后,因此不会出现)

编辑

如果数据中包含#N/A,那么处理它们的最短方法可能是使用(对我来说有点模糊)函数countuniqueifs

=if(countuniqueifs(A1:A4,A1:A4,"<>#N/A")=1,sortn(A1:A4,1),"")
=if(countuniqueifs(A1:A4,A1:A4,“#N/A”)=1,sortn(A1:A4,1),”)
空白单元格和#N/A仍然排在其他所有单元格之后,因此我认为排序部分仍然有效

但这还有一个问题-如果范围包含从公式返回的空字符串,sortn部分将无法正常工作,因此必须依靠筛选:

=if(countuniqueifs(C1:C4,C1:C4,"<>#N/A",C1:C4,"<>")=1,filter(C1:C4,C1:C4<>"#N/A",C1:C4<>""),"")
=if(countuniqueifs(C1:C4,C1:C4,“#N/A”,C1:C4,”)=1,过滤器(C1:C4,C1:C4“#N/A”,C1:C4“),”)
=IFERROR(如果(计数A(唯一)(过滤器(B2:B5,B2:B5“”,B2:B5“#N/A”))>1,
唯一(过滤器(B2:B5,B2:B5“”,B2:B5“#不适用”))

或更短:

=IF(COUNTUNIQUE(FILTER(D2:D5, D2:D5<>"", D2:D5<>"#N/A"))>1, ,
 UNIQUE(FILTER(D2:D5, D2:D5<>"", D2:D5<>"#N/A")))
=IF(COUNTUNIQUE(过滤器(D2:D5,D2:D5“”,D2:D5“#N/A”)>1,
唯一(筛选器(D2:D5,D2:D5“”,D2:D5“#不适用”))

请您共享一份电子表格。您对数据的呈现方式以及用于制定成功结果的逻辑的解释是缺乏的。您已经描述了“许多、许多等”案例,但没有描述它们在电子表格中的布局;是否每个案例都是一个单独的表格,是否有多个电子表格和多个表格,是否有多行,每个“组”是否由一个空行分隔;是否将解决方案插入“空白行”;是否需要一个新的空行。@Tedinoz希望我作为链接添加的电子表格示例可以作为解释!谢谢,但这似乎不起作用。。。?它似乎总是返回一个空值。这比我接受的解决方案更优雅,但它似乎不能处理潜在的值(我意识到post factum将是一个很好的特惠)。然而,我将来可能会使用这种方法,这样我就可以用一个更简单的公式解决问题。谢谢直到现在,我才意识到有一个countuniqueifs可以处理“N/a”问题,这将增加我的答案。
=IF(COUNTUNIQUE(FILTER(D2:D5, D2:D5<>"", D2:D5<>"#N/A"))>1, ,
 UNIQUE(FILTER(D2:D5, D2:D5<>"", D2:D5<>"#N/A")))