2012-09-12 37 views
2

我在Excel中的Excel:使用公式长于255个字符

=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 函数或连接运算符(&)。

我一直在网上寻找这个,但没有得到真正的解决方案!有谁知道如何解决这个问题?

回答

3

现在这是一个凌乱的功能。你必须分开你的输入CONCATENATE

现在你在那里只有一个非常大的字符串,以“insert ...”开头,结尾是“.... MID(O2,3,2),”)“ - 或者至少,这就是我认为这结束,因为,所有的“”这是非常艰难的步骤通过这个

这里是你应该如何使用CONCATENATE

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

您可以扩展这一点,所以你不会有单个字符串长度超过255个字符

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

您可以通过使用这个公式缓解分拆:

=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) 
+0

林不知道如果'= PART'工作,但我设法打破文本块,然后通过使用'= C2&C3细胞拼凑回来一起细胞来解决这个问题&C4&C5' –

+0

@HipHipArray yes - 您也可以使用'&',但不必将文本分隔为单个单元格,也可以在字符串中使用'&'。但我相信,分离将有助于进一步审查。你也可以命名你的单元格(例如'MONDAYS'而不是'C2'),这可能会帮助你进一步了解'C2'的背后。 – Jook

+0

这个问题被问到很长时间了,但什么是“= PART()”函数?我无法在任何地方找到它......? – Sancarn

3

解决这个问题最简单的方法是使用一些单元格来构建单独的字符串元素,并使用concetanate将它们合并到一个单元格中。 它为解决错误提供了更多的空间 - 也许你的陈述有错误,但它们将会是无形的doe。

7

我正好碰到这个问题太...但它不是一个真正的问题。一个单元格中只能有255个字符,但在公式中无限制。你的公式会导致一个错误,所以Excel将它作为文本而不是公式读取。 找到你的错误,你的公式将起作用。

1

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

=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) 
0

我有这个问题, “超过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&"');" 
相关问题