参考表头的公式(因子列表)

Formula with reference to header (factor list)

我想做这样的事情 (Formula to find the header index of the first non blank cell of a range in Excel?) 除了我想捕获所有非空白单元格。

应用我所期望的会产生列 "prod"

    2   3   5   7   11  13      | prod |                    
2   1                            2^1
3       1                        3^1
4   2                            2^2
5           1                    5^1
6   1   1                        2^1 3^1
7               1                7^1
8   3                            2^3
9       2                        3^2
10  1       1                    2^1 5^1
11                  1            11^1
12  2   1                        2^2 3^1
13                      1        13^1
14  1           1                2^1 7^1
15      1   1                    3^1 5^1
16  4                            2^4 

我不介意使用多个分隔符的结果,即。 6= 2^1*3^1**** ,因为它们可以被删除。

此用户定义函数会将 header 值与范围值拼接在一起。

在标准 public 模块代码中 sheet:

Option Explicit

Function prodJoin(rng As Range, hdr As Range, _
                  Optional op As String = "^", _
                  Optional delim As String = " ")
    Dim tmp As String, i As Long

    For i = 1 To rng.Count
        If Not IsEmpty(rng.Cells(i)) Then
            tmp = tmp & delim & hdr.Cells(i).Text & op & rng.Cells(i).Text
        End If
    Next i

    prodJoin = Mid(tmp, Len(delim) + 1)
End Function

关于工作sheet作为,

如果您绝对必须使用 worksheet 函数,则将 6 个条件连接拼接在一起。

=TRIM(IF(B2, B&"^"&B2&" ", TEXT(,))&
      IF(C2, C&"^"&C2&" ", TEXT(,))&
      IF(D2, D&"^"&D2&" ", TEXT(,))&
      IF(E2, E&"^"&E2&" ", TEXT(,))&
      IF(F2, F&"^"&F2&" ", TEXT(,))&
      IF(G2, G&"^"&G2&" ", TEXT(,)))