【问题标题】:Excel: Use formula longer that 255 charactersExcel:使用超过 255 个字符的公式
【发布时间】:2012-09-12 10:43:45
【问题描述】:

我在excel中有以下公式

=CONCATENATE("insert into #UpdateData (mondayopenhour, mondayopenmin,mondayclosehour, mondayclosemin,tuesdayopenhour, tuesdayopenmin,tuesdayclosehour, tuesdayclosemin,wednesdayopenhour, wednesdayopenmin, wednesdayclosehour, wednesdayclosemin,thursdayopenhour, thursdayopenmin,thursdayclosehour, thursdayclosemin, fridayopenhour, fridayopenmin, fridayclosehour, fridayclosemin, saturdayopenhour, saturdayopenmin, saturdayclosehour, saturdayclosemin, sundayopenhour, sundayopenmin, sundayclosehour, sundayclosemin values ('",TRIM(A2),"',",MID(B2,1,2),",",MID(B2,3,2),",",MID(C2,1,2),",",MID(C2,3,2),",",MID(D2,1,2),",",MID(D2,3,2),",",(MID(E2,1,2),",",MID(E2,3,2),",",MID(F2,1,2),",",MID(F2,3,2),",",MID(G2,1,2),",",MID(G2,3,2),",",MID(H2,1,2),",",MID(H2,3,2),",",MID(I2,1,2),",",MID(I2,3,2),",",MID(J2,1,2),",",MID(J2,3,2),",",MID(K2,1,2),",",MID(K2,3,2),",",MID(L2,1,2),",",MID(L2,3,2),",",MID(M2,1,2),",",MID(M2,3,2),",",MID(N2,1,2),",",MID(N2,3,2),",",MID(O2,1,2),",",MID(O2,3,2),")")

当我尝试运行它时,我收到以下错误

公式中的文本值限制为 255 个字符。创建文本 公式中超过 255 个字符的值,请使用 CONCATENATE 函数或连接运算符 (&)。

我一直在网上查找此问题,但没有真正的解决方案!有人知道怎么解决吗?

【问题讨论】:

    标签: string excel excel-formula


    【解决方案1】:

    我也遇到了这个问题……但这并不是一个真正的问题。一个单元格中只能有 255 个字符,但在公式中是无限的。您的公式将导致错误,因此 excel 将其作为文本而不是公式读取。 找出你的错误,你的公式就会起作用。

    【讨论】:

      【解决方案2】:

      现在这是一个混乱的功能。您必须将您的输入单独发送到CONCATENATE

      现在你只有一个非常大的字符串,从 "insert ..." 开始,以 "....MID(O2,3,2),")" 结束 - 或者至少,我认为这是这结束了,因为所有的“,”,这真的很难通过。

      这里是你应该如何使用CONCATENATE

      =CONCATENATE("insert into #UpdateData (mondayopenhour,","mondayopenmin,")
      

      您可以扩展它,因此您不会有一个长度超过 255 个字符的字符串。

      编辑:顺便说一句 - 您当前的字符串大约有 972 个字符。

      你可以使用这个公式来缓解分离:

      =MID("insert into #UpdateData (mondayopenhour, mondayopenmin,mondayclosehour, mondayclosemin,tuesdayopenhour, tuesdayopenmin,tuesdayclosehour, tuesdayclosemin,wednesdayopenhour, wednesdayopenmin, wednesdayclosehour, wednesdayclosemin,thursdayopenhour, thursdayopenmin,thursdayclosehour, thursdayclosemin, fridayopenhour, fridayopenmin, fridayclosehour, fridayclosemin, saturdayopenhour, saturdayopenmin, saturdayclosehour, saturdayclosemin, sundayopenhour, sundayopenmin, sundayclosehour, sundayclosemin values ('",TRIM(A2),"',",MID(B2,1,2),",",MID(B2,3,2),",",MID(C2,1,2),",",MID(C2,3,2),",",MID(D2,1,2),",",MID(D2,3,2),",",(MID(E2,1,2),",",MID(E2,3,2),",",MID(F2,1,2),",",MID(F2,3,2),",",MID(G2,1,2),",",MID(G2,3,2),",",MID(H2,1,2),",",MID(H2,3,2),",",MID(I2,1,2),",",MID(I2,3,2),",",MID(J2,1,2),",",MID(J2,3,2),",",MID(K2,1,2),",",MID(K2,3,2),",",MID(L2,1,2),",",MID(L2,3,2),",",MID(M2,1,2),",",MID(M2,3,2),",",MID(N2,1,2),",",MID(N2,3,2),",",MID(O2,1,2),",",MID(O2,3,2),")",2,255)
      

      【讨论】:

      • 我不确定 =PART 是否有效,但我设法通过将文本分解成碎片然后使用 = C2 & C3 & C4 & C5 将其逐个单元格地拼凑在一起来解决它
      • @HipHipArray 是的 - 您也可以使用 &,但您不必将文本分成单个单元格,您也可以将 & 与字符串一起使用。但我确信,分离将有助于进一步审查。您还可以命名您的单元格(例如 MONDAYS 而不是 C2),这可能会帮助您进一步了解 C2 背后的内容。
      • 很久没问这个问题了,“=PART()”函数是什么?我在任何地方都找不到它的定义...?
      • @Sancarn:抱歉,我猜错了翻译,它的 MID 或 MIDB:de.excel-translator.de/teil
      • 哦,对了(笑)。老实说,我很惊讶微软现在还没有改变这个功能......
      【解决方案3】:

      对于我对同一问题的解决方案,我将那些长文本放在一个单独的单元格上,而不是我的公式本身的一部分。 示例:

      =CONCATENATE("INSERT INTO CAS_ACD (ACD_NUMBER, WAGON_WHEEL_INDEX, WAGON_WHEEL_COUNT, WAGON_WHEEL_COUNT_MAX, WAIT_TIME, MAX_WAIT_TIME,
      MON_TIME, TUE_TIME, WED_TIME, THU_TIME, FRI_TIME, SAT_TIME, SUN_TIME, DATE_CLOSED1,
      DATE_CLOSED2, DATE_CLOSED3, DATE_CLOSED4, DATE_CLOSED5, DATE_CLOSED6, DATE_CLOSED7, DATE_CLOSED8,
      DATE_CLOSED9, DATE_CLOSED10, DATE_CLOSED11, DATE_CLOSED12, DATE_CLOSED13, DATE_CLOSED14,
      DATE_CLOSED15, DATE_CLOSED16, DATE_CLOSED17, DATE_CLOSED18, DATE_CLOSED19, DATE_CLOSED20,
      CTI_SERVER_ADDR, PROGRAM_NUM, VERSION_NUM, COMMENTS, TOD_VOICE_DIR, TOD_VS, ACD_NAME) 
      VALUES ("B2, C2,");")
      

      相反,我将其存储到单元格 A2 之一

      Cell A2 now contains=
      INSERT INTO CAS_ACD (ACD_NUMBER, WAGON_WHEEL_INDEX, WAGON_WHEEL_COUNT, WAGON_WHEEL_COUNT_MAX, WAIT_TIME, MAX_WAIT_TIME,
      MON_TIME, TUE_TIME, WED_TIME, THU_TIME, FRI_TIME, SAT_TIME, SUN_TIME, DATE_CLOSED1,
      DATE_CLOSED2, DATE_CLOSED3, DATE_CLOSED4, DATE_CLOSED5, DATE_CLOSED6, DATE_CLOSED7, DATE_CLOSED8,
      DATE_CLOSED9, DATE_CLOSED10, DATE_CLOSED11, DATE_CLOSED12, DATE_CLOSED13, DATE_CLOSED14,
      DATE_CLOSED15, DATE_CLOSED16, DATE_CLOSED17, DATE_CLOSED18, DATE_CLOSED19, DATE_CLOSED20,
      CTI_SERVER_ADDR, PROGRAM_NUM, VERSION_NUM, COMMENTS, TOD_VOICE_DIR, TOD_VS, ACD_NAME) 
      VALUES ('
      

      所以我现在的公式是

      =CONCATENATE( A2, B2, C2)
      

      【讨论】:

        【解决方案4】:

        解决此问题的最简单方法是使用一些单元格来构建字符串的单独元素,然后使用 continate 将它们合并到一个单元格中。 它为错误解决提供了更多空间——也许你的陈述有错误,但它们几乎是不可见的。

        【讨论】:

          【解决方案5】:

          我遇到了“超过 255 个字符”的问题,并且在没有 CONCATENATE 的情况下轻松解决了这个问题:

          我将一长串值放入单元格T1。 然后我的公式如下:

          ="INSERT INTO sql_table_name ("&T1&") VALUES ('"&A40&"','"&B40&"','"&C40&"','"&D40&"','"&E40&"','"&F40&"','"&G40&"','"&H40&"','"&I40&"','"&J40&"','"&K40&"','"&L40&"','"&M40&"','"&N40&"','"&O40&"','"&P40&"','"&Q40&"','"&R40&"','"&S40&"');"
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-11-05
            相关资源
            最近更新 更多