如果某个值范围内的Cell包含类型编号,则打印相应的标题

时间:2017-08-18 04:25:50

标签: excel

如果在Excel中连续给出了一系列值。该特定的每个单元可以具有类型编号的内容,或者它们可以是空白的。是否有Excel中的函数/非组合函数(非VBA)将打印该类型编号单元格的相应标题(带逗号)。

此外,如果单元格不包含类型编号的内容,则不要打印相应的标题并转到下一个单元格。如果它是范围中的最后一个值,则不要在末尾打印逗号。我希望它能以某种方式在一个单元格中查看一系列单元格,然后确定要打印的标题和要忽略的标题。

我正在使用Excel 2013

我想在没有VBA的情况下这样做。以下是一个例子:

Example Excel result

4 个答案:

答案 0 :(得分:0)

有一种简单的方法, IF 第一列始终是一个数字,或者如果第一列不是数字,你可以使用以逗号开头的字符串。< / p>

  

= IF(ISNUMBER(F5); F4&安培; IF(ISNUMBER(G5);&#34;&#34;&安培; G4;&#34;&#34;)及IF(ISNUMBER(H5) ;&#34;&#34;&安培; H4;&#34;&#34;)及IF(ISNUMBER(I5);&#34;&#34;&安培; I4;&#34;& #34;)及IF(ISNUMBER(J5);&#34;&#34;&安培; J4;&#34;&#34;)及IF(ISNUMBER(K5);&#34;,& #34;&安培; K4;&#34;&#34;)及IF(ISNUMBER(L5);&#34;&#34;&安培; L4;&#34;&#34))

如果完全随机哪个列包含第一个数字公式,则必须扩展公式以包含与此公式中的第一个ISNUMBER语句类似的第二个单元格。然后将它放在两个右括号之间的末端,如:

  

.....&安培; IF(ISNUMBER(L5);&#34;&#34;&安培; L4;&#34;&#34); IF(ISNUMBER(G5); G4&安培; IF (ISNUMBER(H5 .......)

答案 1 :(得分:0)

使用中间行来保存复制和粘贴值的地狱。

在中间行6中,输入此公式并将其拖过:

=IF(ISNUMBER(B3),B1&",","")

然后,在中间结果单元格B8中,输入:

=CONCATENATE(B6,C6,D6,E6,F6,G6,H6,I6)

现在,删除最后一个逗号:

=left(B8,Len(b8)-1)

请注意,在Excel 2016中,这更容易:Concat()函数意味着您可以输入单元格以进入范围:=concat(B6:AZ6)或其他任何内容。

答案 2 :(得分:0)

所以我最初想出了这个解决方案,稍微改进了一下。我只是希望它不那么乏味,而且如果我有超过8列的话就会更加适应。

  

= IFERROR(IF(M243 = 0,LEFT(IF(D243> = 1,D $ 1&amp;“,”,“”)&amp; IF(E243> = 1,E $ 1&amp;“,”,“ “)及IF(F243&GT; = 1,F $ 1和;”, “”, “)及IF(G243&GT; = 1,G $ 1和;”, “”,“)及IF(H243&GT; = 1 ,H $ 1和;”, “”, “)及IF(I243&GT; = 1,I $ 1和;”, “”, “)及IF(J243&GT; = 1,J $ 1和;”, “” “)及IF(K243&GT; = 1,K $ 1和;”, “”, “)及IF(L243&GT; = 1,L $ 1和;”, “”,“)及IF(M243&GT; = 1 ,M $ 1, “”),LEN(IF(D243&GT; = 1,d $ 1和;”,   “ ”“)及IF(E243&GT; = 1,E $ 1和;”, “”, “)及IF(F243&GT; = 1,F $ 1和;”, “”,“)及IF(G243&GT ; = 1,G $ 1和;”, “”, “)及IF(H243&GT; = 1,H $ 1和;”, “”, “)及IF(I243&GT; = 1,I $ 1和;”, “ ”“)及IF(J243&GT; = 1,J $ 1和;”, “”, “)及IF(K243&GT; = 1,K $ 1和;”, “”,“)及IF(L243&GT = 1,L $ 1和;”, “”, “)及IF(M243&GT; = 1,M $ 1,” “)) - 1),LEFT(IF(D243&GT; = 1,d $ 1和;”,   “ ”“)及IF(E243&GT; = 1,E $ 1和;”, “”, “)及IF(F243&GT; = 1,F $ 1和;”, “”,“)及IF(G243&GT ; = 1,G $ 1和;”, “”, “)及IF(H243&GT; = 1,H $ 1和;”, “”, “)及IF(I243&GT; = 1,I $ 1和;”, “ ”“)及IF(J243&GT; = 1,J $ 1和;”, “”, “)及IF(K243&GT; = 1,K $ 1和;”, “”,“)及IF(L243&GT = 1,L $ 1和;”, “”, “)及IF(M243&GT; = 1,M $ 1,” “),LEN(IF(D243&GT; = 1,d $ 1和;”,   “ ”“)及IF(E243&GT; = 1,E $ 1和;”, “”, “)及IF(F243&GT; = 1,F $ 1和;”, “”,“)及IF(G243&GT ; = 1,G $ 1和;”, “”, “)及IF(H243&GT; = 1,H $ 1和;”, “”, “)及IF(I243&GT; = 1,I $ 1和;”, “ ”“)及IF(J243&GT; = 1,J $ 1和;”, “”, “)及IF(K243&GT; = 1,K $ 1和;”, “”,“)及IF(L243&GT = 1,L $ 1和; “ ”“, ”)及IF(M243&GT; = 1,M $ 1,“ ”)))),“”)

它需要输出的长度并在结尾处取消最后一个逗号。我将行更改为零,而不是将单元格留空。

虽然上面的内容很难看,但如果没有VBA,这显然不是最好的解决方案,但它是我能够提出的唯一使用Excel功能的解决方案。

答案 3 :(得分:0)

对于它的价值,使用VBA很容易做到这一点:

Public Function Concatenate_if(valuesToConcatenate As Range, cellsToCheck As Range) As String
Dim i As Long
Dim sOutput As String
For i = 1 To valuesToConcatenate.Columns.Count
    If IsNumeric(cellsToCheck(1, i).Value) Then
        sOutput = sOutput & valuesToConcatenate(1, i) & ","
    End If
Next i
Concatenate_if = Left(sOutput, Len(sOutput) - 1)
End Function