【问题标题】:Formula with reference to header (factor list)参考标题的公式(因子列表)
【发布时间】:2018-04-01 00:36:38
【问题描述】:

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

我期望的应用程序会产生列“prod”

2 3 5 7 11 13 |产品 | 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**** ,因为它们可以被删除。

【问题讨论】:

    标签: join reference formula spreadsheet


    【解决方案1】:

    此用户定义的函数将标题值与范围值拼接在一起。

    在标准的公共模块代码表中:

    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
    

    在工作表上,

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

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

    【讨论】:

    • 谢谢(非常清楚,一切都已参数化)。不可能在公式中做到这一点吗? (为什么)
    • 您可以将 6 个公式拼接成一个长公式,但 udf 更简洁。
    • 嗯,是的,每个单元格 1 个公式,这将无法扩展,正如本示例所要求的那样。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-16
    • 2018-12-16
    • 2022-06-15
    • 2017-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多