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

Вход

Регистрация

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

 

= Мир MS Excel/Объем занимаемой памяти и скорость работы функции СТРОКА() - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Объем занимаемой памяти и скорость работы функции СТРОКА()
vikttur Дата: Вторник, 14.01.2014, 01:51 | Сообщение № 1
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

СТРОКА(1:15)
СТРОКА(A1:A15)

Есть ли принципиальная разница в написании ссылки в теле функции?


Сообщение отредактировал vikttur - Вторник, 14.01.2014, 22:07
 
Ответить
СообщениеСТРОКА(1:15)
СТРОКА(A1:A15)

Есть ли принципиальная разница в написании ссылки в теле функции?

Автор - vikttur
Дата добавления - 14.01.2014 в 01:51
vikttur Дата: Вторник, 14.01.2014, 01:53 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

[offtop]
Цитата
СТРОКА(1:15) сколько в память ячеек грузит?

Так удобнее с клавы заносить.
Об этом не думал раньше. Сейчас думаю: а грузит ли? Массив {1...15}... Кто просветит?[/offtop]
 
Ответить
Сообщение[offtop]
Цитата
СТРОКА(1:15) сколько в память ячеек грузит?

Так удобнее с клавы заносить.
Об этом не думал раньше. Сейчас думаю: а грузит ли? Массив {1...15}... Кто просветит?[/offtop]

Автор - vikttur
Дата добавления - 14.01.2014 в 01:53
Serge_007 Дата: Вторник, 14.01.2014, 01:53 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
[offtop]
Кто просветит?
F9 :)
Мы с тобой уже это обсуждали как-то, память забивается сильно, но ты сказал что со мной спорить бесполезно и от темы ушел :)[/offtop]


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение[offtop]
Кто просветит?
F9 :)
Мы с тобой уже это обсуждали как-то, память забивается сильно, но ты сказал что со мной спорить бесполезно и от темы ушел :)[/offtop]

Автор - Serge_007
Дата добавления - 14.01.2014 в 01:53
_Boroda_ Дата: Вторник, 14.01.2014, 01:53 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
А чего тут просвещать-то? Выдели 1:15, нажми F9 и посмотри на ругань.
И не
Массив {1...15}...

, а массив 1;1;1;1;1;1....;2;2;2;2;2....;...;15;15;15;15
каждого числа столько раз, столько столбцов в Excel


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеА чего тут просвещать-то? Выдели 1:15, нажми F9 и посмотри на ругань.
И не
Массив {1...15}...

, а массив 1;1;1;1;1;1....;2;2;2;2;2....;...;15;15;15;15
каждого числа столько раз, столько столбцов в Excel

Автор - _Boroda_
Дата добавления - 14.01.2014 в 01:53
vikttur Дата: Вторник, 14.01.2014, 01:53 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

[offtop]
Цитата
Мы с тобой уже это обсуждали как-то

Память дырявая. Не у меня :)
Ты тогда да, написал, что А1:А2 лучше, но потом следующее сообщение - ой, не то, это я Михаилу чего-то там писал (тут у меня дырка открылась, не помню)[/offtop]
Цитата
1:15, нажми F9 и посмотри на ругань

Не надо нас дурить. Выдели СТРОКА(1:15)
А также СТРОКА(А1:A15) и СТРОКА(А1:AAA15)
Потому и пишу, что сомневаюсь. А проверить лень.
СЧЕТЕСЛИ(А:А;...), например, сама определяет диапазон. Возможно, и СТРОКА() умнее.


Сообщение отредактировал vikttur - Воскресенье, 12.01.2014, 21:27
 
Ответить
Сообщение[offtop]
Цитата
Мы с тобой уже это обсуждали как-то

Память дырявая. Не у меня :)
Ты тогда да, написал, что А1:А2 лучше, но потом следующее сообщение - ой, не то, это я Михаилу чего-то там писал (тут у меня дырка открылась, не помню)[/offtop]
Цитата
1:15, нажми F9 и посмотри на ругань

Не надо нас дурить. Выдели СТРОКА(1:15)
А также СТРОКА(А1:A15) и СТРОКА(А1:AAA15)
Потому и пишу, что сомневаюсь. А проверить лень.
СЧЕТЕСЛИ(А:А;...), например, сама определяет диапазон. Возможно, и СТРОКА() умнее.

Автор - vikttur
Дата добавления - 14.01.2014 в 01:53
Serge_007 Дата: Вторник, 14.01.2014, 01:54 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Выдели СТРОКА(1:15)
Синюю линию видишь?



Ты тогда да, написал, что А1:А2 лучше, но потом следующее сообщение - ой, не то, это я Михаилу чего-то там писал
Хорош перевирать :)
Проще списать всё на то что я спорщик, чем разбираться в теме :)
Но так всегда, я уже привык...
К сообщению приложен файл: 0199583.gif (48.9 Kb)


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Выдели СТРОКА(1:15)
Синюю линию видишь?



Ты тогда да, написал, что А1:А2 лучше, но потом следующее сообщение - ой, не то, это я Михаилу чего-то там писал
Хорош перевирать :)
Проще списать всё на то что я спорщик, чем разбираться в теме :)
Но так всегда, я уже привык...

Автор - Serge_007
Дата добавления - 14.01.2014 в 01:54
vikttur Дата: Вторник, 14.01.2014, 01:54 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

[offtop]Не перевираю. И не спорю. Я так помню. Могу ошибаться.
Синюю линию видел и раньше. Выше написал:
Цитата
СЧЕТЕСЛИ(А:А;...), например, сама определяет диапазон. Возможно, и СТРОКА() умнее.

Опять же, не спорю и не утверждаю.
Со-мне-ва-юсь. Функция показывает массив. Это я вижу. Не массив всего по всем столбцам - только массив чисел, сответствующий номерам строк.
Да-а-йте чего-нибудь прочитать, меня Саня смутил вопросом :([/offtop]


Сообщение отредактировал vikttur - Вторник, 14.01.2014, 22:03
 
Ответить
Сообщение[offtop]Не перевираю. И не спорю. Я так помню. Могу ошибаться.
Синюю линию видел и раньше. Выше написал:
Цитата
СЧЕТЕСЛИ(А:А;...), например, сама определяет диапазон. Возможно, и СТРОКА() умнее.

Опять же, не спорю и не утверждаю.
Со-мне-ва-юсь. Функция показывает массив. Это я вижу. Не массив всего по всем столбцам - только массив чисел, сответствующий номерам строк.
Да-а-йте чего-нибудь прочитать, меня Саня смутил вопросом :([/offtop]

Автор - vikttur
Дата добавления - 14.01.2014 в 01:54
vikttur Дата: Вторник, 14.01.2014, 01:54 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

А можно это все в тему перенести? Отдельную. Могу создать. Или так перенесется?
А может, яйца выеденного не стоит и удалить все через время?
 
Ответить
СообщениеА можно это все в тему перенести? Отдельную. Могу создать. Или так перенесется?
А может, яйца выеденного не стоит и удалить все через время?

Автор - vikttur
Дата добавления - 14.01.2014 в 01:54
vikttur Дата: Вторник, 14.01.2014, 01:54 | Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

Цитата
Мы с тобой уже это обсуждали как-то, память забивается сильно, но ты сказал что со мной спорить бесполезно и от темы ушел :)

То, о чем я писал - по ссылке. И там ты писал совершенно противоположное.
http://www.excelworld.ru/forum/2-4981-1
Цитата
Мишель советовал использовать =СТРОКА(1:1)

Другого обсуждения не помню. Было? Где?


Сообщение отредактировал vikttur - Воскресенье, 12.01.2014, 22:47
 
Ответить
Сообщение
Цитата
Мы с тобой уже это обсуждали как-то, память забивается сильно, но ты сказал что со мной спорить бесполезно и от темы ушел :)

То, о чем я писал - по ссылке. И там ты писал совершенно противоположное.
http://www.excelworld.ru/forum/2-4981-1
Цитата
Мишель советовал использовать =СТРОКА(1:1)

Другого обсуждения не помню. Было? Где?

Автор - vikttur
Дата добавления - 14.01.2014 в 01:54
MCH Дата: Вторник, 14.01.2014, 01:54 | Сообщение № 10
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

СТРОКА(1:15) сколько в память ячеек грузит? А СТРОКА(A1:A15) сколько?

Интересный вопрос
Умозрительно СТРОКА(1:15) и СТРОКА(A1:A15) работают одинаково и возвращают одинаковый результат - вертикальный массив {1:2:3:4:5:6:7:8:9:10:11:12:13:14:15}
Совершенно необязательно, что СТРОКА(1:15) использует все 256*15 ячеек (в 2003XL) или 16384*15 ячеек (в 2007 и выше)
Могу предположить, что СТРОКА() и СТОЛБЕЦ() не оперируют значениями ячеек, а используют свойство Row и Column указанных в них диапазонов

Протестировал небольшим макросом:
[vba]
Код
Sub test()
     Dim t!, i&, n&
     n = 100000
     Application.ScreenUpdating = False
     Application.Calculation = xlCalculationManual
      
     'тест 1
     Range("A1").FormulaArray = "=ROW(A2:A65536)"
     t = Timer
     For i = 1 To n
         Range("A1").Calculate
     Next i
     Debug.Print Timer - t
      
     'тест 2
     Range("A1").FormulaArray = "=ROW(2:65536)"
     t = Timer
     For i = 1 To n
         Range("A1").Calculate
     Next i
     Debug.Print Timer - t

     Application.Calculation = xlCalculationAutomatic
     Application.ScreenUpdating = True
End Sub
[/vba]

Разницы по скорости не обнаружил, результаты примерно одинаковые, хотя выделение памяти для расчета формул должны были сказаться на скорости (а возможно дополнительного выделения и не было).

Недостатком использования целых строк может быть то, что формула ссылается на довольно большие диапазоны, и изменения в любой из ячеек данного диапазона приведет к пересчету формул, ссылающихся на них, формула становится более "летучей", поэтому предпочтительнее использовать СТРОКА(A1:A15) вместо СТРОКА(1:15), для снижения частоты пересчета формул
 
Ответить
Сообщение
СТРОКА(1:15) сколько в память ячеек грузит? А СТРОКА(A1:A15) сколько?

Интересный вопрос
Умозрительно СТРОКА(1:15) и СТРОКА(A1:A15) работают одинаково и возвращают одинаковый результат - вертикальный массив {1:2:3:4:5:6:7:8:9:10:11:12:13:14:15}
Совершенно необязательно, что СТРОКА(1:15) использует все 256*15 ячеек (в 2003XL) или 16384*15 ячеек (в 2007 и выше)
Могу предположить, что СТРОКА() и СТОЛБЕЦ() не оперируют значениями ячеек, а используют свойство Row и Column указанных в них диапазонов

Протестировал небольшим макросом:
[vba]
Код
Sub test()
     Dim t!, i&, n&
     n = 100000
     Application.ScreenUpdating = False
     Application.Calculation = xlCalculationManual
      
     'тест 1
     Range("A1").FormulaArray = "=ROW(A2:A65536)"
     t = Timer
     For i = 1 To n
         Range("A1").Calculate
     Next i
     Debug.Print Timer - t
      
     'тест 2
     Range("A1").FormulaArray = "=ROW(2:65536)"
     t = Timer
     For i = 1 To n
         Range("A1").Calculate
     Next i
     Debug.Print Timer - t

     Application.Calculation = xlCalculationAutomatic
     Application.ScreenUpdating = True
End Sub
[/vba]

Разницы по скорости не обнаружил, результаты примерно одинаковые, хотя выделение памяти для расчета формул должны были сказаться на скорости (а возможно дополнительного выделения и не было).

Недостатком использования целых строк может быть то, что формула ссылается на довольно большие диапазоны, и изменения в любой из ячеек данного диапазона приведет к пересчету формул, ссылающихся на них, формула становится более "летучей", поэтому предпочтительнее использовать СТРОКА(A1:A15) вместо СТРОКА(1:15), для снижения частоты пересчета формул

Автор - MCH
Дата добавления - 14.01.2014 в 01:54
vikttur Дата: Вторник, 14.01.2014, 01:54 | Сообщение № 11
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

Спасибо. Насчет пересчета - таки да!
 
Ответить
СообщениеСпасибо. Насчет пересчета - таки да!

Автор - vikttur
Дата добавления - 14.01.2014 в 01:54
Serge_007 Дата: Вторник, 14.01.2014, 01:55 | Сообщение № 12
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
там ты писал совершенно противоположное.
Там я писал о том что "советовал Мишель" :)

Другого обсуждения не помню. Было? Где?
Скорее всего на старой планете, потому что давно это было. Если бы помнил где именно - нашел бы ссылку...

СТРОКА() и СТОЛБЕЦ() не оперируют значениями ячеек, а используют свойство Row и Column указанных в них диапазонов
А ведь верно! И я ведь это знал! Но забыл за два года :(
И Виктор тоже знал, но видимо тоже забыл...

Цитата Serge_007
А к чему они, (функции СТРОКА, СТОЛБЕЦ, ЕССЫЛКА и т.д.) обращаются?
Например СТРОКА(A1), введенная в A1?...
Цитата KL
Они обращаются к свойствам объекта Range не зависящим от свойства .Value, а значит и от остальных формул, в то время как большинство функций работают лишь со свойством .Value, которое может находится в зависимости от значений других ячеек.

http://www.planetaexcel.ru/forum....e300700

можно это все в тему перенести? Отдельную. Могу создать
Можно (нужно). Создавай. Как назовем?

[offtop]Склеротики Excel? :([/offtop]


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
там ты писал совершенно противоположное.
Там я писал о том что "советовал Мишель" :)

Другого обсуждения не помню. Было? Где?
Скорее всего на старой планете, потому что давно это было. Если бы помнил где именно - нашел бы ссылку...

СТРОКА() и СТОЛБЕЦ() не оперируют значениями ячеек, а используют свойство Row и Column указанных в них диапазонов
А ведь верно! И я ведь это знал! Но забыл за два года :(
И Виктор тоже знал, но видимо тоже забыл...

Цитата Serge_007
А к чему они, (функции СТРОКА, СТОЛБЕЦ, ЕССЫЛКА и т.д.) обращаются?
Например СТРОКА(A1), введенная в A1?...
Цитата KL
Они обращаются к свойствам объекта Range не зависящим от свойства .Value, а значит и от остальных формул, в то время как большинство функций работают лишь со свойством .Value, которое может находится в зависимости от значений других ячеек.

http://www.planetaexcel.ru/forum....e300700

можно это все в тему перенести? Отдельную. Могу создать
Можно (нужно). Создавай. Как назовем?

[offtop]Склеротики Excel? :([/offtop]

Автор - Serge_007
Дата добавления - 14.01.2014 в 01:55
AndreTM Дата: Вторник, 14.01.2014, 01:55 | Сообщение № 13
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 501 ±
Замечаний: 0% ±

2003 & 2010
Так всё же, что по поводу пересчёта при использовании СТРОКА(1:15) ?

Прав Михаил Ч. или KL (XL) ? :)


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
СообщениеТак всё же, что по поводу пересчёта при использовании СТРОКА(1:15) ?

Прав Михаил Ч. или KL (XL) ? :)

Автор - AndreTM
Дата добавления - 14.01.2014 в 01:55
MCH Дата: Вторник, 14.01.2014, 01:55 | Сообщение № 14
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

ак всё же, что по поводу пересчёта при использовании СТРОКА(1:15) ?

Прежде чем писать ответ я протестировал формулы. При использовании СТРОКА, любое изменение в диапазонах, на которые ссылаются формулы, производится пересчет
 
Ответить
Сообщение
ак всё же, что по поводу пересчёта при использовании СТРОКА(1:15) ?

Прежде чем писать ответ я протестировал формулы. При использовании СТРОКА, любое изменение в диапазонах, на которые ссылаются формулы, производится пересчет

Автор - MCH
Дата добавления - 14.01.2014 в 01:55
  • Страница 1 из 1
  • 1
Поиск:

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