Длина формулы в excel не может превышать 8192 знака

Длина формулы превышает 8192 знака

Almost

Дата: Понедельник, 30.12.2019, 16:18 |
Сообщение № 1

Группа: Пользователи

Ранг: Новичок

Сообщений: 40


Репутация:

2

±

Замечаний:
0% ±


Excel 2016

Уважаемые форумчане,

имеется древняя относительно большая (4М) сложная двоичная книга на 45 листов, с кучей имён, объектов, макросов, проверкой данных, с условным и специальным форматированием, группировками и пр. Не было разве что внешних связей. Вдруг понадобилось подружить её с другой системой и для этого конвертировать в *.xlsm, но пациент туда не хочет. Ошибка:

«Длина одной или нескольких формул в данной книге превышает допустимую длину, равную 8192 знакам. Чтобы обойти это ограничение, следует сохранить данную книгу в формате двоичной книги Excel»

В поисках источника файл раздербанен до 1 листа, причём вновь созданного. Удалены все родные листы, имена (в т.ч. скрытые), макросы. Но даже эта культя чем-то упирается и не идёт в *.xlsm. Осталось подозрение на содержимое папки External Links, но если его убрать, Excel падает на колени при попытке открыть и восстановить.

Есть идеи?

К сообщению приложен файл:

test.xlsb
(88.5 Kb)

Сообщение отредактировал AlmostПонедельник, 30.12.2019, 16:19

 

Ответить

bmv98rus

Дата: Понедельник, 30.12.2019, 20:11 |
Сообщение № 2

Группа: Друзья

Ранг: Участник клуба

Сообщений: 4009


Репутация:

760

±

Замечаний:
0% ±


Excel 2013/2016

значит нужно просто перенести листы в другую книгу, ну и макросы тоже.


Замечательный Временно просто медведь , процентов на 20.

 

Ответить

Almost

Дата: Четверг, 09.01.2020, 10:30 |
Сообщение № 3

Группа: Пользователи

Ранг: Новичок

Сообщений: 40


Репутация:

2

±

Замечаний:
0% ±


Excel 2016

Тоже не помогло. Даже если один любой лист переношу в новую книгу, она уже не сохраняется в формате xlsm и выдаёт ту же ошибку.

 

Ответить

Nic70y

Дата: Четверг, 09.01.2020, 10:36 |
Сообщение № 4

Группа: Друзья

Ранг: Экселист

Сообщений: 8136


Репутация:

1999

±

Замечаний:
0% ±


Excel 2010

сохранил как .xls
.xls сохранил как .xlsm


ЮMoney 41001841029809

 

Ответить

Almost

Дата: Среда, 29.01.2020, 15:45 |
Сообщение № 5

Группа: Пользователи

Ранг: Новичок

Сообщений: 40


Репутация:

2

±

Замечаний:
0% ±


Excel 2016

Это прокатывало с обрезанным примером, но не сработало на большом исходнике.

В итоге помогло:

1. Изменить расширение на *.zip
2. Открыть файл архиватором
3. Удалить файлы внешних ссылок в папке «ExternalLinks» и подпапке «rels», не удаляя сами папки (иначе Excel рухнет)
4. Вернуть оригинальное расширение
5. Открыть в Excel и разрешить восстановление

 

Ответить

_Boroda_

Дата: Среда, 29.01.2020, 21:30 |
Сообщение № 6

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

Удалены все родные … имена (в т.ч. скрытые)

Вообще-то у Вас в этом файле 3140 скрытых имен :D
Вот такой макрос делает все имена видимыми и на листе выводит те, длина которых более 8192 знаков
[vba]

Код

Sub tt()
    With ThisWorkbook
        m_ = .Names.Count
‘        MsgBox «Кол-во имен — » & m_
        For i = 1 To m_
            .Names(i).Visible = 1
            l_ = .Names(i).RefersToLocal
            If Len(l_) > 8192 Then
                k_ = k_ + 1
                Cells(k_, 1) = .Names(i).NameLocal
                Cells(k_, 2) = «‘» & l_
                Cells(k_, 3) = Len(l_)
            End If
        Next i
    End With
End Sub

[/vba]
А вот такой удаляет те имена, которые можно (оставшиеся 9 штук можно удалить руками, а можно и не трогать, они не мешают)
[vba]

Код

Sub ttt()
    With ThisWorkbook
        On Error Resume Next
        For i = .Names.Count To 1 Step -1
            .Names(i).Delete
        Next i
    End With
End Sub

[/vba]
Итог в файле _3


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

Almost

Дата: Четверг, 30.01.2020, 14:39 |
Сообщение № 7

Группа: Пользователи

Ранг: Новичок

Сообщений: 40


Репутация:

2

±

Замечаний:
0% ±


Excel 2016

_Boroda_, Офигеть, спасибо большое. Я прогонял такой макрос, думал что он удалит все скрытые имена:

[vba]

Код

Sub tt2tt()

    For Each nm In ActiveWorkbook.Names

        If Not nm.Visible Then nm.Delete

    Next nm

End Sub

[/vba]

 

Ответить

 

George L

Пользователь

Сообщений: 23
Регистрация: 24.12.2022

вопрос собственно в теме… возможно ли как нибудь увеличить в ячейке длину формулы…?!  а то длина в 8192 символа не помешается…  (8192 это где то 2.5 страницы в ворд , а нужно что бы 7 было )  

Изменено: БМВ06.02.2023 20:04:17

 

Тимофеев

Пользователь

Сообщений: 1497
Регистрация: 01.09.2020

делите на 3 формулы по 8192 и четвертой собирайте итог

Изменено: Тимофеев06.02.2023 14:03:00

 

Юрий М

Модератор

Сообщений: 60577
Регистрация: 14.09.2012

Контакты см. в профиле

#3

06.02.2023 14:07:26

Цитата
George L написал:
возможно ли как нибудь увеличить в ячейке длину формулы

например, так: добавить апостроф и посчитать функцией ДЛСТР()

 

George L

Пользователь

Сообщений: 23
Регистрация: 24.12.2022

#4

06.02.2023 14:09:12

Цитата
написал:
делите на 3 формулы по 8192 и четвертой собирайте итог

вопрос то не про три -четыре ячейки, а про одну.
вообще зачем ограничение сделали такое (

 

George L

Пользователь

Сообщений: 23
Регистрация: 24.12.2022

#5

06.02.2023 14:11:28

Цитата
написал:
например, так: добавить апостроф и посчитать функцией ДЛСТР()

спасибо, но длина текста в ячейке не актуальна…

просто формула очень длинная получается  

 

Юрий М

Модератор

Сообщений: 60577
Регистрация: 14.09.2012

Контакты см. в профиле

#6

06.02.2023 14:19:44

Цитата
George L написал:
длина текста в ячейке не актуальна..

А что актуально? Мой ответ конкретно на Ваш вопрос в названии темы.
Если Вас интересует, каким образом можно обойти ограничения на длину формулы в ячейке, то и название нужно формулировать соответственно.

 

George L

Пользователь

Сообщений: 23
Регистрация: 24.12.2022

#7

06.02.2023 14:22:29

Цитата
написал:
А что актуально? Мой ответ конкретно на Ваш вопрос в названии темы.Если Вас интересует, каким образом можно обойти ограничения на длину формулы в ячейке, то и название нужно формулировать соответственно.

поэтому в Теме и стоят многоточия, а в самом первом посте раскрывается тема детальнее, по аналогии с экселем и темой, тогда бы все вместо первого сообщения и писали сам вопрос именно в «теме»..

 

БМВ

Модератор

Сообщений: 21380
Регистрация: 28.12.2016

Excel 2013, 2016

#8

06.02.2023 14:24:21

Цитата
George L написал:
вообще зачем ограничение сделали такое (

сделали для того чтоб не появлялось таких формул.
на форуме масса тем в которых монстры превращались в достаточно короткие формулы.

По вопросам из тем форума, личку не читаю.

 

Юрий М

Модератор

Сообщений: 60577
Регистрация: 14.09.2012

Контакты см. в профиле

George L,  я Вам про название темы, а Вы про стартовое сообщение.
Впредь формулируйте так, чтобы уже из названия темы была понятна задача. А по Вашей логике получается, что задача скрывается в этих трёх точках.

 

George L

Пользователь

Сообщений: 23
Регистрация: 24.12.2022

#10

06.02.2023 14:36:04

Цитата
написал:
сделали для того чтоб не появлялось таких формул.на форуме масса тем в которых монстры превращались в достаточно короткие формулы.

тоже логично.
хотя по факту вот
СЧЁТЕСЛИМН (три условия) выдает значение и суммирует с подобными тремя условиями, только где «Субъект ознакомлен», и далее меняется только переменная А16 на другие поля (с другими названиями документов)
ну допустим текст «Субъект ознакомлен» и «Субъект НЕ ознакомился» я вставлю в ячейку и потом к ним буду обращаться.. это уменьшит длину где то на 35 символов в каждом цикле..

=(СЧЁТЕСЛИМН(‘[Копия
Процессуальные_документы_для_ознакомления_.xlsx]data’!$I:$I;D14;'[Копия
Процессуальные_документы_для_ознакомления_.xlsx]data’!$J:$J;db!A16;'[Копия
Процессуальные_документы_для_ознакомления_.xlsx]data’!$D:$D;»Субъект
НЕ ознакомился»))+(СЧЁТЕСЛИМН(‘[Копия
Процессуальные_документы_для_ознакомления_.xlsx]data’!$I:$I;D14;'[Копия
Процессуальные_документы_для_ознакомления_.xlsx]data’!$J:$J;db!A16;'[Копия
Процессуальные_документы_для_ознакомления_.xlsx]data’!$D:$D;»Субъект
ознакомлен»))

 

George L

Пользователь

Сообщений: 23
Регистрация: 24.12.2022

#11

06.02.2023 14:44:31

Цитата
написал:
George L,  я Вам про название темы, а Вы про стартовое сообщение.
Впредь формулируйте так, чтобы уже из названия темы была понятна  задача . А по Вашей логике получается, что задача скрывается в этих трёх точках.

Уважаемый Юрий, ваше сообщение не относится к теме обсуждения в рамках проблематики excel, и это ведь немного лишнее будет обсуждение, тем более если вы отвечая на вопрос использовали кнопку «цитировать» и выделили именно вопрос не из темы, а именно из первого поста, что собственно говорит о том, что Вы прочли именно вопрос, а не тему.

А согласно моей логике я же и написал, что если опираться на озвученное Вами, ТОЛЬКО на текст в «Теме» тогда в первом посте вообще можно не писать ничего…

Ps. я благодарен Вам за желание помочь
Ps2. касательно «не актуальности» это было как раз о ДЛСТР  

Изменено: George L06.02.2023 14:51:00

 

Юрий М

Модератор

Сообщений: 60577
Регистрация: 14.09.2012

Контакты см. в профиле

George L,  не вставляйте скопированное — прикрепляйте рисунок файлом. Правда,  в рисунках формулы не работают.

 

George L

Пользователь

Сообщений: 23
Регистрация: 24.12.2022

#13

06.02.2023 14:53:31

Цитата
написал:
George L ,  не вставляйте скопированное — прикрепляйте рисунок файлом. Правда,  в рисунках формулы не работают.

Юрий посмотрите чуть выше, я изменил уже сразу , когда рисунок вставился не корректно, а если говорить все таки про excel, а не про «цитирование» то, пример формулы приведен еще чуть выше и если обратите внимание не рисунком… :)

 

Юрий М

Модератор

Сообщений: 60577
Регистрация: 14.09.2012

Контакты см. в профиле

#14

06.02.2023 14:54:18

Цитата
George L написал:
Уважаемый Юрий, ваше сообщение не относится к теме обсуждения в рамках проблематики excel,

Замечания модераторов по оформлению, по названию, соблюдению правил относятся к ЛЮБОЙ теме. И Вы глубоко ошибаетесь, если считаете, что в теме должны быть только ответы на Ваш вопрос.
И давайте прекратим препираться, пока медведь своей лапой не закрыл тему.

 

George L

Пользователь

Сообщений: 23
Регистрация: 24.12.2022

#15

06.02.2023 15:01:02

:idea: Юрий М,

Цитата
написал:
хотя по факту вот СЧЁТЕСЛИМН (три условия) выдает значение и суммирует с подобными тремя условиями, только где «Субъект ознакомлен», и далее меняется только переменная А16 на другие поля (с другими названиями документов) ну допустим текст «Субъект ознакомлен» и «Субъект НЕ ознакомился» я вставлю в ячейку и потом к ним буду обращаться.. это уменьшит длину где то на 35 символов в каждом цикле..=(СЧЁТЕСЛИМН(‘[КопияПроцессуальные_документы_для_ознакомления_.xlsx]data’!$I:$I;D14;'[КопияПроцессуальные_документы_для_ознакомления_.xlsx]data’!$J:$J;db!A16;'[КопияПроцессуальные_документы_для_ознакомления_.xlsx]data’!$D:$D;»Субъект НЕ ознакомился»))+(СЧЁТЕСЛИМН(‘[КопияПроцессуальные_документы_для_ознакомления_.xlsx]data’!$I:$I;D14;'[КопияПроцессуальные_документы_для_ознакомления_.xlsx]data’!$J:$J;db!A16;'[КопияПроцессуальные_документы_для_ознакомления_.xlsx]data’!$D:$D;»Субъект ознакомлен»))
 

_Boroda_

Пользователь

Сообщений: 1496
Регистрация: 27.07.2013

Контакты см. в профиле

Вы пример файла приложите наконец или одно из двух?

Скажи мне, кудесник, любимец ба’гов…

 

George L

Пользователь

Сообщений: 23
Регистрация: 24.12.2022

#17

06.02.2023 16:03:21

Цитата
написал:
Вы пример файла приложите наконец или одно из двух?

Прикрепленные файлы

  • пример1.xlsx (11.07 КБ)

 

Ігор Гончаренко

Пользователь

Сообщений: 13746
Регистрация: 01.01.1970

#18

06.02.2023 16:38:59

Код
=СУММПРОИЗВ(($F$3:$F$11=K3)*(СЧЁТЕСЛИ($L$1:$L$2;$E$3:$E$11)>0)*(СЧЁТЕСЛИ($N$3:$N$6;$G$3:$G$11)>0))

Прикрепленные файлы

  • пример1 (5).xlsx (10.99 КБ)

Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!

 

memo

Пользователь

Сообщений: 1422
Регистрация: 28.02.2018

Excel 2013/2016

#19

06.02.2023 17:28:53

Для разнообразия. Формула массива.

Код
=COUNT(SIGN(MATCH(IF(($F$3:$F$11=K3)*(MATCH($E$3:$E$11;$L$1:$L$2;));$G$3:$G$11);$N$3:$N$6;)))

З.Ы. пара скобок лишняя, можете убрать сами)

Прикрепленные файлы

  • пример1 (5).xlsx (10.45 КБ)

Изменено: memo06.02.2023 17:30:32

 

George L

Пользователь

Сообщений: 23
Регистрация: 24.12.2022

 

БМВ

Модератор

Сообщений: 21380
Регистрация: 28.12.2016

Excel 2013, 2016

#21

06.02.2023 19:54:31

Цитата
Юрий М написал:
А по Вашей логике получается, что задача скрывается в этих трёх точках.

ну если честно, то читая я думаю как раз о том, что есть короткая формула, и её нужно увеличить, сделать из нее длинную, а не справится с ограничением еxcel или сократить формулу.

Изменено: БМВ06.02.2023 19:56:17

По вопросам из тем форума, личку не читаю.

 

George L

Пользователь

Сообщений: 23
Регистрация: 24.12.2022

#22

06.02.2023 20:00:53

Цитата
написал:

Цитата
Юрий М написал:
А по Вашей логике получается, что задача скрывается в этих трёх точках.

ну если честно, то читая я думаю как раз о том, что есть короткая формула, и её нужно увеличить, сделать из нее длинную, а не справится с ограничением еxcel или сократить формулу.

согласен,
и вообще после того как Юрий отмодерировал название темы) есть впечатление что есть какая формула которая увеличивает кол-во данных в ячейке) либо как делается более длинная формула :)

 

George L

Пользователь

Сообщений: 23
Регистрация: 24.12.2022

в добавлении к теме:) тогда — либо как еще оптимизировать монстроподобную формулу — в нормальную :)

ps. БМВ спасибо)

Изменено: George L06.02.2023 20:18:33

 

Юрий М

Модератор

Сообщений: 60577
Регистрация: 14.09.2012

Контакты см. в профиле

#24

06.02.2023 20:36:55

Цитата
George L написал:
после того как Юрий отмодерировал название темы)

Я ничего не менял.

 

БМВ

Модератор

Сообщений: 21380
Регистрация: 28.12.2016

Excel 2013, 2016

массивка
=SUM(COUNTIFS(F:F;K3;G:G;$N$3:$N$6;E:E;TRANSPOSE($Q$3:$Q$4)))
но при данном количестве ок, а так, сountifs на весь столбец лучше не использовать.

По вопросам из тем форума, личку не читаю.

 

George L

Пользователь

Сообщений: 23
Регистрация: 24.12.2022

#26

07.02.2023 08:51:07

Цитата
написал:
Я ничего не менял.

сорри тогда, значит другой, просто тоже не менял.

Цитата
написал:
массивка =SUM(COUNTIFS(F:F;K3;G:G;$N$3:$N$6;E:E;TRANSPOSE($Q$3:$Q$4)))но при данном количестве ок, а так, сountifs на весь столбец лучше не использовать.

первые три столбца точно столбцы по полной будут использоваться.. там более 10к строк

 

БМВ

Модератор

Сообщений: 21380
Регистрация: 28.12.2016

Excel 2013, 2016

#27

07.02.2023 20:11:40

Цитата
George L написал:
первые три столбца точно столбцы по полной будут использоваться.. там более 10к строк

10К строк это 1% от допустимого миллиона — это называется по поной?

По вопросам из тем форума, личку не читаю.

 

George L

Пользователь

Сообщений: 23
Регистрация: 24.12.2022

#28

08.02.2023 14:39:56

Цитата
написал:
10К строк это 1% от допустимого миллиона — это называется по поной?

по сравнению с миллионом конечно нет, но в данном случае же не выделять каждый раз меняя в формуле диапазон (начальный и  конечный *фиксированный*)  

 

БМВ

Модератор

Сообщений: 21380
Регистрация: 28.12.2016

Excel 2013, 2016

сделайте с запасом, даже 100К строк это 10% от того объема что функция  просматривает при обработке всего столбца. Это касается именно СЧЁТЕСЛИМН, в отличии от подобных, и видимо её писал непутевый программист, она работает именно так, хотя СУМЕСЛИМН уже обрабатывает только используемый диапазон.

По вопросам из тем форума, личку не читаю.

 

George L

Пользователь

Сообщений: 23
Регистрация: 24.12.2022

#30

16.02.2023 09:34:47

Цитата
написал:
сделайте с запасом, даже 100К строк это 10% от того объема что функция  просматривает при обработке всего столбца. Это касается именно СЧЁТЕСЛИМН, в отличии от подобных, и видимо её писал непутевый программист, она работает именно так, хотя СУМЕСЛИМН уже обрабатывает только используемый диапазон.

только время вышло написать..
кстати ..парадокс.. что к примеру взяв на 10к строчек с запасом 40к — все сработало, при уменьшении запаса до 30к выдает н/д , хотя строк проверил реально 10к .. хз почему .. тут же интервал в формуле меняю на 40к.. все опять ок..

(кстати сам файлик после внесения изменений начал грузиться дольше где то секунд 10 из-за вычисления потоков)

hello guys

I am using office 2019

I tried to maintain our work activity progress in the project by making a tracking plane depending on the entry data we have provided it in another sheet table

for an example:

I have a finished work along alignment from

station : 0+300 to 0+500

and from 

station : 0+700 to 0+900

i would like highlight the cells under my station’s dividing in the sheet

alexanderjaml_0-1613557486362.png

I have used this formula and it was successful:

=IF(OR(AND(A$1>=BEDDING!$A$1,A$1<=BEDDING!$B$1),AND(A$1>=BEDDING!$A$2,A$1<=BEDDING!$B$2),AND(A$1>=BEDDING!$A$3,A$1<=BEDDING!$B$3),AND(A$1>=BEDDING!$A$4,A$1<=BEDDING!$B$4),AND(A$1>=BEDDING!$A$5,A$1<=BEDDING!$B$5),AND(A$1>=BEDDING!$A$6,A$1<=BEDDING!$B$6),AND(A$1>=BEDDING!$A$7,A$1<=BEDDING!$B$7),AND(A$1>=BEDDING!$A$8,A$1<=BEDDING!$B$8),AND(A$1>=BEDDING!$A$9,A$1<=BEDDING!$B$9),AND(A$1>=BEDDING!$A$10,A$1<=BEDDING!$B$10),AND(A$1>=BEDDING!$A$11,A$1<=BEDDING!$B$11),AND(A$1>=BEDDING!$A$12,A$1<=BEDDING!$B$12),AND(A$1>=BEDDING!$A$13,A$1<=BEDDING!$B$13),AND(A$1>=BEDDING!$A$14,A$1<=BEDDING!$B$14),AND(A$1>=BEDDING!$A$15,A$1<=BEDDING!$B$15),AND(A$1>=BEDDING!$A$16,A$1<=BEDDING!$B$16),AND(A$1>=BEDDING!$A$17,A$1<=BEDDING!$B$17),AND(A$1>=BEDDING!$A$18,A$1<=BEDDING!$B$18),AND(A$1>=BEDDING!$A$19,A$1<=BEDDING!$B$19),AND(A$1>=BEDDING!$A$20,A$1<=BEDDING!$B$20),AND(A$1>=BEDDING!$A$21,A$1<=BEDDING!$B$21),AND(A$1>=BEDDING!$A$22,A$1<=BEDDING!$B$22),AND(A$1>=BEDDING!$A$23,A$1<=BEDDING!$B$23),AND(A$1>=BEDDING!$A$24,A$1<=BEDDING!$B$24),AND(A$1>=BEDDING!$A$25,A$1<=BEDDING!$B$25),AND(A$1>=BEDDING!$A$26,A$1<=BEDDING!$B$26),AND(A$1>=BEDDING!$A$27,A$1<=BEDDING!$B$27),AND(A$1>=BEDDING!$A$28,A$1<=BEDDING!$B$28),AND(A$1>=BEDDING!$A$29,A$1<=BEDDING!$B$29),AND(A$1>=BEDDING!$A$30,A$1<=BEDDING!$B$30),AND(A$1>=BEDDING!$A$31,A$1<=BEDDING!$B$31),AND(A$1>=BEDDING!$A$32,A$1<=BEDDING!$B$32),AND(A$1>=BEDDING!$A$33,A$1<=BEDDING!$B$33),AND(A$1>=BEDDING!$A$34,A$1<=BEDDING!$B$34),AND(A$1>=BEDDING!$A$35,A$1<=BEDDING!$B$35),AND(A$1>=BEDDING!$A$36,A$1<=BEDDING!$B$36),AND(A$1>=BEDDING!$A$37,A$1<=BEDDING!$B$37),AND(A$1>=BEDDING!$A$38,A$1<=BEDDING!$B$38),AND(A$1>=BEDDING!$A$39,A$1<=BEDDING!$B$39),AND(A$1>=BEDDING!$A$40,A$1<=BEDDING!$B$40),AND(A$1>=BEDDING!$A$41,A$1<=BEDDING!$B$41),AND(A$1>=BEDDING!$A$42,A$1<=BEDDING!$B$42),AND(A$1>=BEDDING!$A$43,A$1<=BEDDING!$B$43),AND(A$1>=BEDDING!$A$44,A$1<=BEDDING!$B$44),AND(A$1>=BEDDING!$A$45,A$1<=BEDDING!$B$45),AND(A$1>=BEDDING!$A$46,A$1<=BEDDING!$B$46),AND(A$1>=BEDDING!$A$47,A$1<=BEDDING!$B$47),AND(A$1>=BEDDING!$A$48,A$1<=BEDDING!$B$48),AND(A$1>=BEDDING!$A$49,A$1<=BEDDING!$B$49),AND(A$1>=BEDDING!$A$50,A$1<=BEDDING!$B$50),AND(A$1>=BEDDING!$A$51,A$1<=BEDDING!$B$51),AND(A$1>=BEDDING!$A$52,A$1<=BEDDING!$B$52),AND(A$1>=BEDDING!$A$53,A$1<=BEDDING!$B$53),AND(A$1>=BEDDING!$A$54,A$1<=BEDDING!$B$54),AND(A$1>=BEDDING!$A$55,A$1<=BEDDING!$B$55),AND(A$1>=BEDDING!$A$56,A$1<=BEDDING!$B$56),AND(A$1>=BEDDING!$A$57,A$1<=BEDDING!$B$57),AND(A$1>=BEDDING!$A$58,A$1<=BEDDING!$B$58),AND(A$1>=BEDDING!$A$59,A$1<=BEDDING!$B$59),AND(A$1>=BEDDING!$A$60,A$1<=BEDDING!$B$60),AND(A$1>=BEDDING!$A$61,A$1<=BEDDING!$B$61),AND(A$1>=BEDDING!$A$62,A$1<=BEDDING!$B$62),AND(A$1>=BEDDING!$A$63,A$1<=BEDDING!$B$63),AND(A$1>=BEDDING!$A$64,A$1<=BEDDING!$B$64),AND(A$1>=BEDDING!$A$65,A$1<=BEDDING!$B$65),AND(A$1>=BEDDING!$A$66,A$1<=BEDDING!$B$66),AND(A$1>=BEDDING!$A$67,A$1<=BEDDING!$B$67),AND(A$1>=BEDDING!$A$68,A$1<=BEDDING!$B$68),AND(A$1>=BEDDING!$A$69,A$1<=BEDDING!$B$69),AND(A$1>=BEDDING!$A$70,A$1<=BEDDING!$B$70),AND(A$1>=BEDDING!$A$71,A$1<=BEDDING!$B$71),AND(A$1>=BEDDING!$A$72,A$1<=BEDDING!$B$72),AND(A$1>=BEDDING!$A$73,A$1<=BEDDING!$B$73),AND(A$1>=BEDDING!$A$74,A$1<=BEDDING!$B$74),AND(A$1>=BEDDING!$A$75,A$1<=BEDDING!$B$75),AND(A$1>=BEDDING!$A$76,A$1<=BEDDING!$B$76),AND(A$1>=BEDDING!$A$77,A$1<=BEDDING!$B$77),AND(A$1>=BEDDING!$A$78,A$1<=BEDDING!$B$78),AND(A$1>=BEDDING!$A$79,A$1<=BEDDING!$B$79),AND(A$1>=BEDDING!$A$80,A$1<=BEDDING!$B$80),AND(A$1>=BEDDING!$A$81,A$1<=BEDDING!$B$81),AND(A$1>=BEDDING!$A$82,A$1<=BEDDING!$B$82),AND(A$1>=BEDDING!$A$83,A$1<=BEDDING!$B$83),AND(A$1>=BEDDING!$A$84,A$1<=BEDDING!$B$84),AND(A$1>=BEDDING!$A$85,A$1<=BEDDING!$B$85),AND(A$1>=BEDDING!$A$86,A$1<=BEDDING!$B$86),AND(A$1>=BEDDING!$A$87,A$1<=BEDDING!$B$87),AND(A$1>=BEDDING!$A$88,A$1<=BEDDING!$B$88),AND(A$1>=BEDDING!$A$89,A$1<=BEDDING!$B$89),AND(A$1>=BEDDING!$A$90,A$1<=BEDDING!$B$90),AND(A$1>=BEDDING!$A$91,A$1<=BEDDING!$B$91),AND(A$1>=BEDDING!$A$92,A$1<=BEDDING!$B$92),AND(A$1>=BEDDING!$A$93,A$1<=BEDDING!$B$93),AND(A$1>=BEDDING!$A$94,A$1<=BEDDING!$B$94),AND(A$1>=BEDDING!$A$95,A$1<=BEDDING!$B$95),AND(A$1>=BEDDING!$A$96,A$1<=BEDDING!$B$96),AND(A$1>=BEDDING!$A$97,A$1<=BEDDING!$B$97),AND(A$1>=BEDDING!$A$98,A$1<=BEDDING!$B$98),AND(A$1>=BEDDING!$A$99,A$1<=BEDDING!$B$99),AND(A$1>=BEDDING!$A$100,A$1<=BEDDING!$B$100)),1,0)

but I can’t enter character more than 8192

alexanderjaml_1-1613557919973.png

so is there any solution for it or other way to solve it

best regards

Уважаемые специалисты,
есть файл на 60 листов (сборник пустых бланков). На каждом листе — несложные таблицы БЕЗ формул. Цифр практически нет. Ссылок на другие файлы НЕТ. Есть только заголовки таблиц, названия столбцов и строк. Кое где применяется объединение ячеек и форматирование. К сожалению, сам файл выложить не могу.
В определённый момент, после выполнения нескольких обычных операций (ввод данных в ячейки, удаление или добавление строк), файл вдруг перестал сохраняться в формате XLSX с надписью: «Длина одной или нескольких формул данной книги превышает допустимую длину, равную 8192 знакам. Чтобы обойти это ограничение, следует сохранить данную книгу в формате двоичной книги Excel». Далее, сохраняю в XLSB и могу работать дальше, но данный формат мне не подходит, так как отдавать людям этот файл я должен строго в XLSX или XLS. Нигде в файле нет настолько огромной ячейки, и нет ни одной формулы. Имена в файле вычищены все через «Диспетчер имён». Сохранение в XLS приводит к потере всех форматов.
Вопрос: Как найти ту самую ячейку, где есть превышение символов? При сохранении в старом формате есть сообщение о потере точности, есть упоминание о превышении количества символов, но НЕТ ссылки на причину.


Добавим проблему в копилку неустранимых глюков Экселя……


Может, есть скрытые имена или формулы или еще что-нибудь скрытое? :)
Попробуйте залить файлик, а ссылку в личку, например. Посмотрим.


Вот пример. Попробуйте сохранить его как XLSX.
Именно этот файл удаётся «вылечить» пересохранением в 2003 и обратно, но данный фокус не срабатывает с рабочим файлом, так как, при этом, очищаются форматы.
Так что задача — найти источник проблемы.


Видимо, дело не в длине формул, а в длине имен. Попробуйте запустить такой макрос

Sub tt()
Dim nm As Name
For Each nm In ActiveWorkbook.Names
    nm.Visible = True
Next
End Sub

После этого в диспетчере имен посмотрите какие имена есть в Вашем файле.
В примере просто удалил все имена

Sub ttt()
Dim nm As Name
For Each nm In ActiveWorkbook.Names
    nm.Delete
Next
End Sub

и все отлично сохранилось.


Спасибо! Сработало! :)
Вот только тот факт, что косячные имена не были видны в диспетчере не является ли багом Экселя? И вообще, почему программа хранит весь этот мусор? Все именованные диапазоны давно удалены, а имена остались.


Цитата: Димычч от 26.03.2012, 13:02
Нигде в файле нет настолько огромной ячейки, и нет ни одной формулы.

У Вас их в файле 230 штук. И дело всё-таки в формулах, которым присвоены имена.

ЗЫ Скрытые имена — это не баг, а возможность excel

ЗЫЗЫ Порадовали имена типа «ж()п@» :)


Я в шоке…. использовал макрос «отобразить имена» на других рабочих файлах (в которых до этого почистил до тысячи левых имён), а там….. ещё по 2 тысячи в каждом. Когда-то, лет 5 назад, вставил листик с простенькой табличкой из чужого файла в свой рабочий файл, и эта безобидная операция принесла в мой файл эту кучу г….. Абсолютно никому не нужную, кроме Экселя, разумеется.


Serge 007,
я понимаю, возможность скрытия имён — хорошая возможность Экселя, но откуда берутся все эти тысячи скрытых имён, если их никто не прописывал? Например, я почистил все имена их файла, в том числе, скрытые. Через неделю снова заглянул в диспетчер, а там их 30 штук, все начинаются с буквы Z (как большинство в файле-примере). То есть, просто работая с файлом несколько лет, мы получаем снова неработающий файл с тысячами ненужных имен, который можно вылечить только с помощью недокументированной возможности через макрос отображения скрытых имен?


Цитата: Димычч от 02.04.2012, 09:39
…откуда берутся все эти тысячи скрытых имён, если их никто не прописывал?

Да много откуда. Простой пример: Вы создаёте таблицу XL 2007/2010 — Excel САМ создаёт именованный диапазон. Или Вы сами можете, не зная об этом, скопировать его из другой книги.

Цитата: Димычч от 02.04.2012, 09:39
…можно вылечить только с помощью недокументированной возможности через макрос отображения скрытых имен?

Это документированная возможность. Но не Excel, а VBA.

ЗЫ У меня например, за годы работы в Excel, никогда проблем с именами в файлах не возникало…


  • Профессиональные приемы работы в Microsoft Excel

  • Обмен опытом

  • Microsoft Excel

  • EXCEL 2010 не даёт сохранить файл из-за превышения количества символов в ячейке

0 / 0 / 0

Регистрация: 03.06.2012

Сообщений: 31

1

Обход ограничения «Слишком длинная формула»

09.11.2012, 16:55. Показов 19494. Ответов 8


Студворк — интернет-сервис помощи студентам

Приветствую всех специалистов по EXСEL. Периодически возникают сложности с длинными формулами — которые программа отказывается обрабатывать. В этих случаях я решаю эту проблему тем, что дописываю новые условия в рядом находящуюся ячейку — что не совсем удобно. Вопрос: существует ли возможность снять ограничение на длину формул?.. Формулы, длину которых я ищу возможность увеличить, состоят из алгоритмов сравнения (ЕСЛИ/И/ИЛИ) динамических данных двух ячеек. Буду очень признателен за ответ.



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

09.11.2012, 16:55

8

956 / 596 / 11

Регистрация: 11.06.2010

Сообщений: 1,345

09.11.2012, 17:01

2

Цитата
Сообщение от CC
Посмотреть сообщение

существует ли возможность снять ограничение на длину формул?

Нет. В каждой версии есть свои ограничения

Цитата
Сообщение от CC
Посмотреть сообщение

Формулы, длину которых я ищу возможность увеличить, состоят из алгоритмов сравнения (ЕСЛИ/И/ИЛИ) динамических данных двух ячеек

Эти формулы легко «укоротить». Способов много, о некоторых из них даже написано в справке Excel



1



0 / 0 / 0

Регистрация: 03.06.2012

Сообщений: 31

09.11.2012, 18:35

 [ТС]

3

Добрый вечер, уважаемый Serge 007 .
1) Если в какой-либо из версий EXCEL есть возможность радикально удлинить формулу по сравнению с моей ‘2003 версией — подскажите, пожалуйста, как она называется.
2) Подскажите, пожалуйста, направление поиска решения задачи сравнения 500 различных значений одной ячейки с 500 различными значениями другой ячейки — с записью результата сопоставления в третью ячейку (с учетом того, что в некоторых случаях сопоставляются не только чистые значения, а и математические операции над элементами этих значений).
Спасибо за ответ.



0



2633 / 1333 / 255

Регистрация: 25.10.2010

Сообщений: 2,194

09.11.2012, 19:02

4

Цитата
Сообщение от CC
Посмотреть сообщение

возможность радикально удлинить формулу

Наверное, здесь вопрос даже не в длине формулы, а в ограничении количества вложений функций, в частности ЕСЛИ

Цитата
Сообщение от CC
Посмотреть сообщение

направление поиска решения задачи

Без конкретного примера трудно угадать, но возможно, если правильно организовать данные, помогут функции ПРОСМОТР, ВПР, ГПР, ИНДЕКС+ПОИСКПОЗ
Можно пользовательскую функцию написать



1



956 / 596 / 11

Регистрация: 11.06.2010

Сообщений: 1,345

09.11.2012, 20:54

5

Цитата
Сообщение от CC
Посмотреть сообщение

1) Если в какой-либо из версий EXCEL есть возможность радикально удлинить формулу по сравнению с моей ‘2003 версией — подскажите, пожалуйста, как она называется.

Каждая последующая версия Excel (2007,2010,2013) обладает всё большими возможностями для некоторых функций. Например количество вложений функций ЕСЛИ() в
2003 — 7
2007 — 64
2010 — 128

Цитата
Сообщение от CC
Посмотреть сообщение

направление поиска решения задачи

Надо видеть эту задачу. Универсальных решений не бывает



1



0 / 0 / 0

Регистрация: 03.06.2012

Сообщений: 31

09.11.2012, 21:50

 [ТС]

6

Уважаемые Serge 007 и Pelena, в приведенном мною примере (во вложенном файле) ячейка А3 содержит всего несколько формул — но реально их может быть 500 и более, аналогичных этим по контексту. Вычисления происходят исключительно в плоскости двух ячеек. К сожалению, унифицированных алгоритмов вычисления для значений ячеек А1 и А2 нет — исключая случаи точного соответствия.
Сейчас сделаю резервную копию оси и попробую установить EXCEL-2014.. ))



0



2633 / 1333 / 255

Регистрация: 25.10.2010

Сообщений: 2,194

09.11.2012, 23:04

7

Ничего не поняла
По всей видимости числа из A1 и A2 тоже как-то формируются из определенных цифр, но логику не уловила

Кстати, условие ПСТР(A2;1;2)<>СУММ(ПСТР(A2;2;1)+ПРАВСИМВ(A2)) будет всегда истинным (если только первая цифра числа не ноль)



0



0 / 0 / 0

Регистрация: 03.06.2012

Сообщений: 31

10.11.2012, 03:00

 [ТС]

8

Цитата
Сообщение от Pelena
Посмотреть сообщение

Ничего не поняла

Да я тоже пока мало чего понимаю — поэтому здесь и консультируюсь.. (шутка, ессно).
Значения в ячейках А1 и А2 берутся из других ячеек, все значения живые и с периодичностью раз в час шевелятся.
Насчёт перманентной истинности приведённого в моём примере условия — да, возможно Вы и правы. Но ведь это всего лишь пример, обозначающий приблизительную структуру моих вычислений.



0



6875 / 2807 / 533

Регистрация: 19.10.2012

Сообщений: 8,562

11.11.2012, 02:29

9

Я думаю чем городить такую многоэтажность, проще написать UDF, где нет в общем никаких ограничений.
А что именно нужно — из формулы вычитывать совершенно неохота.
Вы словами можете написать, что и как там анализируется?



0



Понравилась статья? Поделить с друзьями:
  • Длина строки ячейки excel
  • Диспетчер сценариев в excel для чего
  • Длина слова в excel функция
  • Диспетчер правил условного форматирования excel где находится
  • Длина символов в ячейке excel