Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Конвертировать формулы в Excel - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Конвертировать формулы в Excel
der_loony Дата: Четверг, 21.06.2012, 18:58 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Итак, есть большая книга Excel в которой более 1000 строк, во многих из них содержаться формулы типа: =СУММ(F19;F20;F37;F38) или =СУММ(F40:F59).
Необходимо их преобразовать к простому виду: =F19+F20+F37+F38 или =F40+F41+F42+...+F59
Т.е. необходимо "развернуть" диапазоны, чтобы в формуле были перечислены ВСЕ ячейки без, сокращений (ну в моем случае ещё и без перечисления через ; )
Какие есть варианты решения данной проблемы? (средствами самого Excel или при помощи макроса)
p.s. вручную все переделывать не вариант(
 
Ответить
СообщениеИтак, есть большая книга Excel в которой более 1000 строк, во многих из них содержаться формулы типа: =СУММ(F19;F20;F37;F38) или =СУММ(F40:F59).
Необходимо их преобразовать к простому виду: =F19+F20+F37+F38 или =F40+F41+F42+...+F59
Т.е. необходимо "развернуть" диапазоны, чтобы в формуле были перечислены ВСЕ ячейки без, сокращений (ну в моем случае ещё и без перечисления через ; )
Какие есть варианты решения данной проблемы? (средствами самого Excel или при помощи макроса)
p.s. вручную все переделывать не вариант(

Автор - der_loony
Дата добавления - 21.06.2012 в 18:58
Michael_S Дата: Четверг, 21.06.2012, 19:02 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
Может и есть варианты.
Вопрос - на фига такое извращение?
 
Ответить
СообщениеМожет и есть варианты.
Вопрос - на фига такое извращение?

Автор - Michael_S
Дата добавления - 21.06.2012 в 19:02
Serge_007 Дата: Четверг, 21.06.2012, 19:47 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
А если будет не СУММ?


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеА если будет не СУММ?

Автор - Serge_007
Дата добавления - 21.06.2012 в 19:47
der_loony Дата: Четверг, 21.06.2012, 20:20 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Serge_007, В моём случае необходимо решение только функции СУММ.

Michael_S, Отчёт из Excel будет в дальнейшем конвертироваться в xml с учётом определённой схемы данных, но проблема в том что ковертор не понимает сложные формулы, где используются функции и знаки : ;
 
Ответить
СообщениеSerge_007, В моём случае необходимо решение только функции СУММ.

Michael_S, Отчёт из Excel будет в дальнейшем конвертироваться в xml с учётом определённой схемы данных, но проблема в том что ковертор не понимает сложные формулы, где используются функции и знаки : ;

Автор - der_loony
Дата добавления - 21.06.2012 в 20:20
Serge_007 Дата: Четверг, 21.06.2012, 20:32 | Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (der_loony)
В моём случае необходимо решение только функции СУММ

Тогда так (см. вложение, макросы должны быть включены).

ЗЫ Но =СУММ(F40:F59) в =F40+F41+F42+...+F59 - это нереально, думаю, без макросов
К сообщению приложен файл: der_loony.xls (23.5 Kb)


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (der_loony)
В моём случае необходимо решение только функции СУММ

Тогда так (см. вложение, макросы должны быть включены).

ЗЫ Но =СУММ(F40:F59) в =F40+F41+F42+...+F59 - это нереально, думаю, без макросов

Автор - Serge_007
Дата добавления - 21.06.2012 в 20:32
der_loony Дата: Четверг, 21.06.2012, 20:44 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Открыл файл, макросов там не обнаружил, а то что есть работать отказывается(

Сорри тупанул, с в случае с ; Всё работает,, но получается перед всеми формулами надо одинарную ковычку ставить? Оо


Сообщение отредактировал der_loony - Четверг, 21.06.2012, 20:51
 
Ответить
СообщениеОткрыл файл, макросов там не обнаружил, а то что есть работать отказывается(

Сорри тупанул, с в случае с ; Всё работает,, но получается перед всеми формулами надо одинарную ковычку ставить? Оо

Автор - der_loony
Дата добавления - 21.06.2012 в 20:44
Serge_007 Дата: Четверг, 21.06.2012, 20:54 | Сообщение № 7
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (der_loony)
Открыл файл, макросов там не обнаружил

Неудивительно, их и нет в файле

Quote (der_loony)
то что есть работать отказывается

Что это значит? Если макросы разрешены - то всё работать будет

Quote (der_loony)
получается перед всеми формулами надо одинарную ковычку ставить?

Вообще не понял о чём речь...
Зачем?! Я кавычку (на самом деле это апостроф) поставил, что б Вы видели какая формула преобразуется ( текст в С1 можно вообще удалить, он не принимает участия в вычислениях)

ЗЫ
Quote (der_loony)
перед всеми формулами надо одинарную ковычку ставить? Оо
Кстати, даже если бы это было необходимо, то заняло бы это не более пары секунд. Ctrl+H, найти "=", заменить на "'=", заменить все, ОК


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (der_loony)
Открыл файл, макросов там не обнаружил

Неудивительно, их и нет в файле

Quote (der_loony)
то что есть работать отказывается

Что это значит? Если макросы разрешены - то всё работать будет

Quote (der_loony)
получается перед всеми формулами надо одинарную ковычку ставить?

Вообще не понял о чём речь...
Зачем?! Я кавычку (на самом деле это апостроф) поставил, что б Вы видели какая формула преобразуется ( текст в С1 можно вообще удалить, он не принимает участия в вычислениях)

ЗЫ
Quote (der_loony)
перед всеми формулами надо одинарную ковычку ставить? Оо
Кстати, даже если бы это было необходимо, то заняло бы это не более пары секунд. Ctrl+H, найти "=", заменить на "'=", заменить все, ОК

Автор - Serge_007
Дата добавления - 21.06.2012 в 20:54
der_loony Дата: Четверг, 21.06.2012, 21:13 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Спасибо, вроде разобрался
Но вот не понял: что значит в тексте значение "формула", т.е. что оно ссылается на ячейку А1, но как этот шайтан механизм притянуть ко всем остальным случаям?
 
Ответить
СообщениеСпасибо, вроде разобрался
Но вот не понял: что значит в тексте значение "формула", т.е. что оно ссылается на ячейку А1, но как этот шайтан механизм притянуть ко всем остальным случаям?

Автор - der_loony
Дата добавления - 21.06.2012 в 21:13
Serge_007 Дата: Четверг, 21.06.2012, 21:14 | Сообщение № 9
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (der_loony)
как этот шайтан механизм притянуть ко всем остальным случаям?

Смотрите Ctrl+F3


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (der_loony)
как этот шайтан механизм притянуть ко всем остальным случаям?

Смотрите Ctrl+F3

Автор - Serge_007
Дата добавления - 21.06.2012 в 21:14
Саня Дата: Четверг, 21.06.2012, 21:17 | Сообщение № 10
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация: 560 ±
Замечаний: 0% ±

XL 2016
решить эту задачу формулами можно только при условии конкретного вида "СУММ", причем только с несвязанными одиночными ячейками.
можно сделать макросами, но, навскидку, не совсем просто - имеется ввиду макрос, который бы обрабатывал абсолютно любой вид "СУММ".
 
Ответить
Сообщениерешить эту задачу формулами можно только при условии конкретного вида "СУММ", причем только с несвязанными одиночными ячейками.
можно сделать макросами, но, навскидку, не совсем просто - имеется ввиду макрос, который бы обрабатывал абсолютно любой вид "СУММ".

Автор - Саня
Дата добавления - 21.06.2012 в 21:17
der_loony Дата: Четверг, 21.06.2012, 21:27 | Сообщение № 11
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Quote (Саня)
можно сделать макросами


[vba]
Code
Sub Macros()
For Each cell In Range("A1:A10") 'A1:A10 диапазон с формулами
aa = cell.Formula
s1 = InStr(aa, "(") + 1
s2 = InStr(aa, ")")
IRange = Mid(aa, s1, s2 - s1)
rr = ""
If InStr(aa, ":") Then
For Each icell In Range(IRange)
rr = rr & "+" & Application.ConvertFormula(icell.Address, xlA1, xlA1, xlRelative)
Next
Else
rr = "+" & Replace(IRange, ",", "+")
End If
cell.Formula = "=" & Mid(rr, 2)
Next
End Sub
[/vba]

Мне на гугло-ответах предложили такой вариант, только либо он не рабочий, либо у меня его отладить не получается(
 
Ответить
Сообщение
Quote (Саня)
можно сделать макросами


[vba]
Code
Sub Macros()
For Each cell In Range("A1:A10") 'A1:A10 диапазон с формулами
aa = cell.Formula
s1 = InStr(aa, "(") + 1
s2 = InStr(aa, ")")
IRange = Mid(aa, s1, s2 - s1)
rr = ""
If InStr(aa, ":") Then
For Each icell In Range(IRange)
rr = rr & "+" & Application.ConvertFormula(icell.Address, xlA1, xlA1, xlRelative)
Next
Else
rr = "+" & Replace(IRange, ",", "+")
End If
cell.Formula = "=" & Mid(rr, 2)
Next
End Sub
[/vba]

Мне на гугло-ответах предложили такой вариант, только либо он не рабочий, либо у меня его отладить не получается(

Автор - der_loony
Дата добавления - 21.06.2012 в 21:27
Michael_S Дата: Четверг, 21.06.2012, 21:32 | Сообщение № 12
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
Такой вариант, без "прически"
К сообщению приложен файл: der_loony_1.xls (36.0 Kb)
 
Ответить
СообщениеТакой вариант, без "прически"

Автор - Michael_S
Дата добавления - 21.06.2012 в 21:32
der_loony Дата: Четверг, 21.06.2012, 21:45 | Сообщение № 13
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Всем спасибо за помощь, буду адаптировать последний исходник, под конкретную задачу
 
Ответить
СообщениеВсем спасибо за помощь, буду адаптировать последний исходник, под конкретную задачу

Автор - der_loony
Дата добавления - 21.06.2012 в 21:45
Michael_S Дата: Четверг, 21.06.2012, 23:19 | Сообщение № 14
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
Вопрос в личке:
Quote
А что нужно изменить в коде, чтобы в результате были не абсолютные, а относительные ссылки?


см. файл

Зы. такие вопросы лучше задавать не в личку, а в теме.
К сообщению приложен файл: der_loony_2.xls (49.5 Kb)


Сообщение отредактировал Michael_S - Пятница, 22.06.2012, 00:05
 
Ответить
СообщениеВопрос в личке:
Quote
А что нужно изменить в коде, чтобы в результате были не абсолютные, а относительные ссылки?


см. файл

Зы. такие вопросы лучше задавать не в личку, а в теме.

Автор - Michael_S
Дата добавления - 21.06.2012 в 23:19
der_loony Дата: Пятница, 22.06.2012, 13:54 | Сообщение № 15
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Отлично, всё работает, правда есть одно НО(
Как только цикл натыкается на пустую строку, то он останавливается

Можно ли в коде задать диапазон для просмотра/замены?
 
Ответить
СообщениеОтлично, всё работает, правда есть одно НО(
Как только цикл натыкается на пустую строку, то он останавливается

Можно ли в коде задать диапазон для просмотра/замены?

Автор - der_loony
Дата добавления - 22.06.2012 в 13:54
Michael_S Дата: Пятница, 22.06.2012, 14:16 | Сообщение № 16
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
Так пойдет?

зы. А вообще-то, надо давать свой пример, того, что есть и что хочется получить..
К сообщению приложен файл: der_loony_3.xls (31.5 Kb)


Сообщение отредактировал Michael_S - Пятница, 22.06.2012, 14:18
 
Ответить
СообщениеТак пойдет?

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

Автор - Michael_S
Дата добавления - 22.06.2012 в 14:16
der_loony Дата: Пятница, 29.06.2012, 18:19 | Сообщение № 17
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Вообще отлично)

К сожалению не могу выложить исходный файл из-за вопроса его конфиденциальности
До этого решал проблему тем, что руками в коде задавал просматриваемый диапазон ячеек и диапазон их замены) (коряво конечно, но как способ)
ЗЫ. Сорри за долгое молчание и корявые формулировки
 
Ответить
СообщениеВообще отлично)

К сожалению не могу выложить исходный файл из-за вопроса его конфиденциальности
До этого решал проблему тем, что руками в коде задавал просматриваемый диапазон ячеек и диапазон их замены) (коряво конечно, но как способ)
ЗЫ. Сорри за долгое молчание и корявые формулировки

Автор - der_loony
Дата добавления - 29.06.2012 в 18:19
Serge_007 Дата: Пятница, 29.06.2012, 20:07 | Сообщение № 18
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (der_loony)
не могу выложить исходный файл из-за вопроса его конфиденциальности

Вы правила читали? В них чётко написано, что надо делать в таком случае


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (der_loony)
не могу выложить исходный файл из-за вопроса его конфиденциальности

Вы правила читали? В них чётко написано, что надо делать в таком случае

Автор - Serge_007
Дата добавления - 29.06.2012 в 20:07
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!