如果在Excel中连续给出了一系列值。该特定的每个单元可以具有类型编号的内容,或者它们可以是空白的。是否有Excel中的函数/非组合函数(非VBA)将打印该类型编号单元格的相应标题(带逗号)。
此外,如果单元格不包含类型编号的内容,则不要打印相应的标题并转到下一个单元格。如果它是范围中的最后一个值,则不要在末尾打印逗号。我希望它能以某种方式在一个单元格中查看一系列单元格,然后确定要打印的标题和要忽略的标题。
我正在使用Excel 2013
我想在没有VBA的情况下这样做。以下是一个例子:
答案 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