【问题标题】:Work around for Excel maximum characters for formula解决 Excel 公式的最大字符数
【发布时间】:2019-05-08 11:46:47
【问题描述】:

我在公式栏中的最大字符已达到,我正在寻找解决方法。 这是我多次使用不同城市名称和部门的公式。

我有 4 个部门,每个部门大约 9 个城市,数据扩展 2000 个单元格。

=IF(ISNUMBER(SEARCH("ATLANTA",F3:F2002)),"SW",IF(ISNUMBER(SEARCH("BIRMINGHAM",F3:F2002)),"SW",IF(ISNUMBER(SEARCH("CHATTANOOGA",F3:F2002)),"SW",

这只是其中的一部分,我可以将它们分开,但我想有一种更简单的方法可以在一列中搜索多个名称,并根据名称在另一个单元格中应用除法,,, s sw ne nw

我将附上一张图片以查看它的工作原理,但由于字符限制,除非有解决方法,否则我必须将工作表分开。

【问题讨论】:

    标签: excel


    【解决方案1】:

    我无法重新创建您正在使用的确切逻辑(我不知道您的州/城市),但也许您可以应用此解决方法:

    样本数据:

    A2中的公式:

    =CHOOSE(SUMPRODUCT((ISNUMBER(SEARCH({"BIRMINGHAM","ATLANTA","CUMBERLAND","BALTIMORE"},B2)))*ROW($1:$4)),"BH","ATL","CL","BM")
    

    显然你可以按照你想要的方式扩展它

    【讨论】:

    • 谢谢你,我能够稍微使用这两个建议并让它按照我的需要工作。对于迟到的回复,我深表歉意。
    【解决方案2】:

    如果我是你,我会冒险进入 VBA。按 Alt+F11 并插入以下内容。应该很简单,i 逐行递增,我们将范围 F1 的值分配给变量 cellValue,然后检查每个城市是否在字符串 (inStr) cellValue 中。您必须为您想要的每个城市复制并粘贴每个 If 语句。

    Public Sub searchCities()
    Dim cellValue As String
    
    For i = 1 To 2000
        cellValue = Range("F" & i).Value
        If InStr(1, cellValue, "Birmingham", vbTextCompare) Then
            Range("B" & i).Value = "SW"
        End If
        If InStr(1, cellValue, "Mobile", vbTextCompare) Then
            Range("B" & i).Value = "SW"
        End If
    Next i
    
    End Sub
    

    【讨论】:

      猜你喜欢
      • 2020-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-14
      • 1970-01-01
      • 1970-01-01
      • 2018-09-14
      • 1970-01-01
      相关资源
      最近更新 更多