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

Вход

Регистрация

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

 

= Мир MS Excel/Игры с массивами - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena 
Мир MS Excel » Работа и общение » Мозговой штурм » Игры с массивами
Игры с массивами
Нравится вопрос?
ZORRO2005 Дата: Пятница, 28.04.2017, 18:24 | Сообщение № 1
Группа: Друзья
Ранг: Обитатель
Сообщений: 368
Репутация: 141 ±
Замечаний: 0% ±

Excel2010
Есть вертикальный одномерный именованный массив Z. Размер может быть любой. Например {5:2:"s":4}.
Надо с помощью формулы получить вертикальный одномерный массив:
1. С нулем в начале - {0:5:2:"s":4}
2. C нулем в конце - {5:2:"s":4:0}
3. Продублировать значения - {5:5:2:2:"s":"s":4:4}
4. Прорядить массив нулями -{0:5:0:2:0:"s":0:4}

В формуле используем имя Z.

P.S. В качестве примера привел смешанный массив.
Интересно будет увидеть варианты также чисто для числовых массивов.


Сообщение отредактировал ZORRO2005 - Пятница, 28.04.2017, 20:56
 
Ответить
СообщениеЕсть вертикальный одномерный именованный массив Z. Размер может быть любой. Например {5:2:"s":4}.
Надо с помощью формулы получить вертикальный одномерный массив:
1. С нулем в начале - {0:5:2:"s":4}
2. C нулем в конце - {5:2:"s":4:0}
3. Продублировать значения - {5:5:2:2:"s":"s":4:4}
4. Прорядить массив нулями -{0:5:0:2:0:"s":0:4}

В формуле используем имя Z.

P.S. В качестве примера привел смешанный массив.
Интересно будет увидеть варианты также чисто для числовых массивов.

Автор - ZORRO2005
Дата добавления - 28.04.2017 в 18:24
buchlotnik Дата: Пятница, 28.04.2017, 19:47 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2742
Репутация: 782 ±
Замечаний: 0% ±

2010, 2013, 2016 RUS / ENG
а вариант преобразования (из предложенных четырёх) задаётся вторым аргументом?


каждому For - Next!
платная помощь:
ЯД: 410012595572239
buchlotnik@mail.ru
 
Ответить
Сообщениеа вариант преобразования (из предложенных четырёх) задаётся вторым аргументом?

Автор - buchlotnik
Дата добавления - 28.04.2017 в 19:47
ZORRO2005 Дата: Пятница, 28.04.2017, 20:43 | Сообщение № 3
Группа: Друзья
Ранг: Обитатель
Сообщений: 368
Репутация: 141 ±
Замечаний: 0% ±

Excel2010
а вариант преобразования (из предложенных четырёх) задаётся вторым аргументом?

Не обязательно. Главное получить массив.
 
Ответить
Сообщение
а вариант преобразования (из предложенных четырёх) задаётся вторым аргументом?

Не обязательно. Главное получить массив.

Автор - ZORRO2005
Дата добавления - 28.04.2017 в 20:43
Светлый Дата: Пятница, 28.04.2017, 21:29 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 284
Репутация: 67 ±
Замечаний: 0% ±

Excel 2007
С разбегу: 56 52, 23 22 20, 41 35, 69 67 61 59 символов.


Программировать проще, чем писать стихи.

Сообщение отредактировал Светлый - Суббота, 29.04.2017, 08:37
 
Ответить
СообщениеС разбегу: 56 52, 23 22 20, 41 35, 69 67 61 59 символов.

Автор - Светлый
Дата добавления - 28.04.2017 в 21:29
Светлый Дата: Пятница, 05.05.2017, 22:35 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 284
Репутация: 67 ±
Замечаний: 0% ±

Excel 2007
Кто-то будет участвовать? Или мне вскрываться?


Программировать проще, чем писать стихи.
 
Ответить
СообщениеКто-то будет участвовать? Или мне вскрываться?

Автор - Светлый
Дата добавления - 05.05.2017 в 22:35
buchlotnik Дата: Пятница, 05.05.2017, 22:51 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2742
Репутация: 782 ±
Замечаний: 0% ±

2010, 2013, 2016 RUS / ENG
Честно, я вот даже правил не понял (это одна задача, или четыре, или что?). И
Цитата
Главное ГДЕ получить массив
Судя по активности в теме - не только я такой...


каждому For - Next!
платная помощь:
ЯД: 410012595572239
buchlotnik@mail.ru
 
Ответить
СообщениеЧестно, я вот даже правил не понял (это одна задача, или четыре, или что?). И
Цитата
Главное ГДЕ получить массив
Судя по активности в теме - не только я такой...

Автор - buchlotnik
Дата добавления - 05.05.2017 в 22:51
Светлый Дата: Суббота, 06.05.2017, 07:33 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 284
Репутация: 67 ±
Замечаний: 0% ±

Excel 2007
Есть вертикальный одномерный именованный массив Z. Размер может быть любой. Например {5:2:"s":4}.

За автора вкладываю файл.
К сообщению приложен файл: Igry.xlsx(9Kb)


Программировать проще, чем писать стихи.
 
Ответить
Сообщение
Есть вертикальный одномерный именованный массив Z. Размер может быть любой. Например {5:2:"s":4}.

За автора вкладываю файл.

Автор - Светлый
Дата добавления - 06.05.2017 в 07:33
ZORRO2005 Дата: Воскресенье, 07.05.2017, 11:06 | Сообщение № 8
Группа: Друзья
Ранг: Обитатель
Сообщений: 368
Репутация: 141 ±
Замечаний: 0% ±

Excel2010
Цитата Светлый, 06.05.2017 в 07:33, в сообщении № 7 ()
За автора вкладываю файл.

Все верно, Сергей
Цитата Светлый, 06.05.2017 в 07:33, в сообщении № 7 ()
Кто-то будет участвовать? Или мне вскрываться?

Пока рано. С примером, может появятся еще решения.
У меня намного длиннее формулы:
1. 99
2. 67
3. 62
4. 124


Сообщение отредактировал ZORRO2005 - Воскресенье, 07.05.2017, 11:17
 
Ответить
Сообщение
Цитата Светлый, 06.05.2017 в 07:33, в сообщении № 7 ()
За автора вкладываю файл.

Все верно, Сергей
Цитата Светлый, 06.05.2017 в 07:33, в сообщении № 7 ()
Кто-то будет участвовать? Или мне вскрываться?

Пока рано. С примером, может появятся еще решения.
У меня намного длиннее формулы:
1. 99
2. 67
3. 62
4. 124

Автор - ZORRO2005
Дата добавления - 07.05.2017 в 11:06
Светлый Дата: Воскресенье, 07.05.2017, 17:56 | Сообщение № 9
Группа: Проверенные
Ранг: Обитатель
Сообщений: 284
Репутация: 67 ±
Замечаний: 0% ±

Excel 2007
У меня намного длиннее формулы

В своих формулах я длину массива не вычисляю. Беру как в задании 4 элемента.
Будем вычислять?
94 (23), 50 (21), 54, 97 символов. В () зависит от размещения массива Z.


Программировать проще, чем писать стихи.

Сообщение отредактировал Светлый - Воскресенье, 07.05.2017, 19:13
 
Ответить
Сообщение
У меня намного длиннее формулы

В своих формулах я длину массива не вычисляю. Беру как в задании 4 элемента.
Будем вычислять?
94 (23), 50 (21), 54, 97 символов. В () зависит от размещения массива Z.

Автор - Светлый
Дата добавления - 07.05.2017 в 17:56
ZORRO2005 Дата: Понедельник, 08.05.2017, 15:22 | Сообщение № 10
Группа: Друзья
Ранг: Обитатель
Сообщений: 368
Репутация: 141 ±
Замечаний: 0% ±

Excel2010
В формуле используем имя Z

Длина массива Z = 1.
 
Ответить
Сообщение
В формуле используем имя Z

Длина массива Z = 1.

Автор - ZORRO2005
Дата добавления - 08.05.2017 в 15:22
Светлый Дата: Понедельник, 08.05.2017, 19:41 | Сообщение № 11
Группа: Проверенные
Ранг: Обитатель
Сообщений: 284
Репутация: 67 ±
Замечаний: 0% ±

Excel 2007
Длина массива Z = 1.

Длина массива или имени массива? О чём речь?


Программировать проще, чем писать стихи.
 
Ответить
Сообщение
Длина массива Z = 1.

Длина массива или имени массива? О чём речь?

Автор - Светлый
Дата добавления - 08.05.2017 в 19:41
ZORRO2005 Дата: Понедельник, 08.05.2017, 22:05 | Сообщение № 12
Группа: Друзья
Ранг: Обитатель
Сообщений: 368
Репутация: 141 ±
Замечаний: 0% ±

Excel2010
Цитата Светлый, 08.05.2017 в 19:41, в сообщении № 11 ()
Длина массива или имени массива? О чём речь?

Длина имени массива. В формуле используем имя Z. Массив может быть любой длины.
Если формула
Код
=Z*2
то длина формулы будет 3 без равно.
 
Ответить
Сообщение
Цитата Светлый, 08.05.2017 в 19:41, в сообщении № 11 ()
Длина массива или имени массива? О чём речь?

Длина имени массива. В формуле используем имя Z. Массив может быть любой длины.
Если формула
Код
=Z*2
то длина формулы будет 3 без равно.

Автор - ZORRO2005
Дата добавления - 08.05.2017 в 22:05
ZORRO2005 Дата: Суббота, 13.05.2017, 21:59 | Сообщение № 13
Группа: Друзья
Ранг: Обитатель
Сообщений: 368
Репутация: 141 ±
Замечаний: 0% ±

Excel2010
Выкладываю свои формулы
1.
Код
=ЕСЛИ(СТРОКА(СМЕЩ(A1;;;СЧЁТЗ(Z)+1))-1;ИНДЕКС(Z;Ч(ИНДЕКС(СТРОКА(СМЕЩ(A1;;;СЧЁТЗ(Z)+1))-1;))))

2.
Код
=ЕСЛИОШИБКА(ЕСЛИ(СТРОКА(СМЕЩ(A1;;;СЧЁТЗ(Z)+1));Z);)

ЕНД() не сработал
3.
Код
=ИНДЕКС(Z;Ч(ИНДЕКС(СТРОКА(СМЕЩ(A1;1;;СЧЁТЗ(Z)*2))/2;)))

4.
Код
=ЕСЛИ(ЕЧЁТН(СТРОКА(СМЕЩ(A1;;;СЧЁТЗ(Z)*2)));ИНДЕКС(Z;Ч(ИНДЕКС(СТРОКА(СМЕЩ(A1;1;;СЧЁТЗ(Z)*2))/2;)));)

5.
Перевертыш, как бонус.
Код
=ИНДЕКС(Z;Ч(ИНДЕКС(СЧЁТЗ(Z)+1-СТРОКА(СМЕЩ(A1;;;СЧЁТЗ(Z)));)))
К сообщению приложен файл: 6149256.xlsx(10Kb)
 
Ответить
СообщениеВыкладываю свои формулы
1.
Код
=ЕСЛИ(СТРОКА(СМЕЩ(A1;;;СЧЁТЗ(Z)+1))-1;ИНДЕКС(Z;Ч(ИНДЕКС(СТРОКА(СМЕЩ(A1;;;СЧЁТЗ(Z)+1))-1;))))

2.
Код
=ЕСЛИОШИБКА(ЕСЛИ(СТРОКА(СМЕЩ(A1;;;СЧЁТЗ(Z)+1));Z);)

ЕНД() не сработал
3.
Код
=ИНДЕКС(Z;Ч(ИНДЕКС(СТРОКА(СМЕЩ(A1;1;;СЧЁТЗ(Z)*2))/2;)))

4.
Код
=ЕСЛИ(ЕЧЁТН(СТРОКА(СМЕЩ(A1;;;СЧЁТЗ(Z)*2)));ИНДЕКС(Z;Ч(ИНДЕКС(СТРОКА(СМЕЩ(A1;1;;СЧЁТЗ(Z)*2))/2;)));)

5.
Перевертыш, как бонус.
Код
=ИНДЕКС(Z;Ч(ИНДЕКС(СЧЁТЗ(Z)+1-СТРОКА(СМЕЩ(A1;;;СЧЁТЗ(Z)));)))

Автор - ZORRO2005
Дата добавления - 13.05.2017 в 21:59
Светлый Дата: Суббота, 13.05.2017, 22:38 | Сообщение № 14
Группа: Проверенные
Ранг: Обитатель
Сообщений: 284
Репутация: 67 ±
Замечаний: 0% ±

Excel 2007
1.
Код
=ЕСЛИ(СТРОКА(СМЕЩ(A1;;;ЧСТРОК(Z)+1))-1;ИНДЕКС(Z;Ч(ИНДЕКС(СТРОКА(СМЕЩ(A1;;;ЧСТРОК(Z)+1))-1;)));)

или
Код
=СМЕЩ(Z;-1;;ЧСТРОК(Z)+1)

2.
Код
ЕСЛИ(СТРОКА(СМЕЩ(A1;;;ЧСТРОК(Z)+1))<=ЧСТРОК(Z);Z;)

или
Код
=СМЕЩ(Z;;;ЧСТРОК(Z)+1)

3.
Код
=ИНДЕКС(Z;Ч(ИНДЕКС(СТРОКА(СМЕЩ(A2;;;ЧСТРОК(Z)*2))/2;)))

4.
Код
=ЕСЛИ(-1^СТРОКА(СМЕЩ(A2;;;ЧСТРОК(Z)*2))>0;;ИНДЕКС(Z;Ч(ИНДЕКС(СТРОКА(СМЕЩ(A2;;;ЧСТРОК(Z)*2))/2;))))

Если заменить ЧСТРОК(Z) на СЧЁТЗ(Z) формулы на 1-2 символа укорачиваются.
92 (22), 48 (20), 53, 95

ZORRO2005, в 1. у Вас выдаёт ЛОЖЬ вместо 0.


Программировать проще, чем писать стихи.
 
Ответить
Сообщение1.
Код
=ЕСЛИ(СТРОКА(СМЕЩ(A1;;;ЧСТРОК(Z)+1))-1;ИНДЕКС(Z;Ч(ИНДЕКС(СТРОКА(СМЕЩ(A1;;;ЧСТРОК(Z)+1))-1;)));)

или
Код
=СМЕЩ(Z;-1;;ЧСТРОК(Z)+1)

2.
Код
ЕСЛИ(СТРОКА(СМЕЩ(A1;;;ЧСТРОК(Z)+1))<=ЧСТРОК(Z);Z;)

или
Код
=СМЕЩ(Z;;;ЧСТРОК(Z)+1)

3.
Код
=ИНДЕКС(Z;Ч(ИНДЕКС(СТРОКА(СМЕЩ(A2;;;ЧСТРОК(Z)*2))/2;)))

4.
Код
=ЕСЛИ(-1^СТРОКА(СМЕЩ(A2;;;ЧСТРОК(Z)*2))>0;;ИНДЕКС(Z;Ч(ИНДЕКС(СТРОКА(СМЕЩ(A2;;;ЧСТРОК(Z)*2))/2;))))

Если заменить ЧСТРОК(Z) на СЧЁТЗ(Z) формулы на 1-2 символа укорачиваются.
92 (22), 48 (20), 53, 95

ZORRO2005, в 1. у Вас выдаёт ЛОЖЬ вместо 0.

Автор - Светлый
Дата добавления - 13.05.2017 в 22:38
ZORRO2005 Дата: Суббота, 13.05.2017, 23:09 | Сообщение № 15
Группа: Друзья
Ранг: Обитатель
Сообщений: 368
Репутация: 141 ±
Замечаний: 0% ±

Excel2010
Цитата Светлый, 13.05.2017 в 22:38, в сообщении № 14 ()
ZORRO2005, в 1. у Вас выдаёт ЛОЖЬ вместо 0.

Добавил ";"
Код
=ЕСЛИ(СТРОКА(СМЕЩ(A1;;;СЧЁТЗ(Z)+1))-1;ИНДЕКС(Z;Ч(ИНДЕКС(СТРОКА(СМЕЩ(A1;;;СЧЁТЗ(Z)+1))-1;)));)

Я про короткие формулы не понял. Где их надо разместить, чтобы получить нужный результат?


Сообщение отредактировал ZORRO2005 - Суббота, 13.05.2017, 23:10
 
Ответить
Сообщение
Цитата Светлый, 13.05.2017 в 22:38, в сообщении № 14 ()
ZORRO2005, в 1. у Вас выдаёт ЛОЖЬ вместо 0.

Добавил ";"
Код
=ЕСЛИ(СТРОКА(СМЕЩ(A1;;;СЧЁТЗ(Z)+1))-1;ИНДЕКС(Z;Ч(ИНДЕКС(СТРОКА(СМЕЩ(A1;;;СЧЁТЗ(Z)+1))-1;)));)

Я про короткие формулы не понял. Где их надо разместить, чтобы получить нужный результат?

Автор - ZORRO2005
Дата добавления - 13.05.2017 в 23:09
Светлый Дата: Воскресенье, 14.05.2017, 07:35 | Сообщение № 16
Группа: Проверенные
Ранг: Обитатель
Сообщений: 284
Репутация: 67 ±
Замечаний: 0% ±

Excel 2007
Формулы где угодно, а массив Z НЕ с первой строки. Выше массива и ниже должны быть пустые ячейки.


Программировать проще, чем писать стихи.
 
Ответить
СообщениеФормулы где угодно, а массив Z НЕ с первой строки. Выше массива и ниже должны быть пустые ячейки.

Автор - Светлый
Дата добавления - 14.05.2017 в 07:35
sboy Дата: Понедельник, 15.05.2017, 13:05 | Сообщение № 17
Группа: Проверенные
Ранг: Ветеран
Сообщений: 673
Репутация: 178 ±
Замечаний: 0% ±

Excel 2010
Добрый день.
Не уверен, что мои решения соответствуют поставленной задаче (не уверен, что правильно понял условия). в МШ первый раз пишу
Код
=ЕСЛИ(СТРОКА(A1)-1;ИНДЕКС(Z;СТРОКА(A1)-1);)

Код
=ЕСЛИ(СТРОКА(A1)>ЧСТРОК(Z);;ИНДЕКС(Z;СТРОКА(A1)))

Код
=ЕСЛИ(ЕЧЁТН(СТРОКА(A1));ИНДЕКС(Z;СТРОКА(A1)/2);)

Код
=ИНДЕКС(Z;ЕСЛИ(ЕЧЁТН(СТРОКА(A5));СТРОКА(A5)/2;ОКРУГЛ((СТРОКА(A5)-СТРОКА(A5)/2);)))
К сообщению приложен файл: 0649408.xlsx(10Kb)
 
Ответить
СообщениеДобрый день.
Не уверен, что мои решения соответствуют поставленной задаче (не уверен, что правильно понял условия). в МШ первый раз пишу
Код
=ЕСЛИ(СТРОКА(A1)-1;ИНДЕКС(Z;СТРОКА(A1)-1);)

Код
=ЕСЛИ(СТРОКА(A1)>ЧСТРОК(Z);;ИНДЕКС(Z;СТРОКА(A1)))

Код
=ЕСЛИ(ЕЧЁТН(СТРОКА(A1));ИНДЕКС(Z;СТРОКА(A1)/2);)

Код
=ИНДЕКС(Z;ЕСЛИ(ЕЧЁТН(СТРОКА(A5));СТРОКА(A5)/2;ОКРУГЛ((СТРОКА(A5)-СТРОКА(A5)/2);)))

Автор - sboy
Дата добавления - 15.05.2017 в 13:05
AlexM Дата: Понедельник, 15.05.2017, 13:39 | Сообщение № 18
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3528
Репутация: 892 ±
Замечаний: 0% ±

Сергей, попробуй в файле ZORRO2005 встать на любую ячейку с формулой, курсор поставить в строку формул и нажать F9
Будет виден массив, который формула создает.
В вашем файле массивы формулы не создают.


Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеСергей, попробуй в файле ZORRO2005 встать на любую ячейку с формулой, курсор поставить в строку формул и нажать F9
Будет виден массив, который формула создает.
В вашем файле массивы формулы не создают.

Автор - AlexM
Дата добавления - 15.05.2017 в 13:39
sboy Дата: Понедельник, 15.05.2017, 16:14 | Сообщение № 19
Группа: Проверенные
Ранг: Ветеран
Сообщений: 673
Репутация: 178 ±
Замечаний: 0% ±

Excel 2010
AlexM, ок, понял, спасибо.
Тогда попробую в следующей теме)
 
Ответить
СообщениеAlexM, ок, понял, спасибо.
Тогда попробую в следующей теме)

Автор - sboy
Дата добавления - 15.05.2017 в 16:14
Светлый Дата: Понедельник, 15.05.2017, 18:42 | Сообщение № 20
Группа: Проверенные
Ранг: Обитатель
Сообщений: 284
Репутация: 67 ±
Замечаний: 0% ±

Excel 2007
И формулы, если массив однотипный.
3. 45 символов:
Код
=Ч(СМЕЩ(Z;СТРОКА(СМЕЩ(A2;;;СЧЁТЗ(Z)*2))/2-1;))

Код
=Т(СМЕЩ(Z;СТРОКА(СМЕЩ(A2;;;СЧЁТЗ(Z)*2))/2-1;))

4. 82 символа:
Код
=(-1^СТРОКА(СМЕЩ(A2;;;СЧЁТЗ(Z)*2))<0)*Ч(СМЕЩ(Z;СТРОКА(СМЕЩ(A2;;;СЧЁТЗ(Z)*2))/2-1;))

С Ч(ИНДЕКС получается на символ короче и массив формируется правильно, но по F9 выдаёт одно значение.


Программировать проще, чем писать стихи.
 
Ответить
СообщениеИ формулы, если массив однотипный.
3. 45 символов:
Код
=Ч(СМЕЩ(Z;СТРОКА(СМЕЩ(A2;;;СЧЁТЗ(Z)*2))/2-1;))

Код
=Т(СМЕЩ(Z;СТРОКА(СМЕЩ(A2;;;СЧЁТЗ(Z)*2))/2-1;))

4. 82 символа:
Код
=(-1^СТРОКА(СМЕЩ(A2;;;СЧЁТЗ(Z)*2))<0)*Ч(СМЕЩ(Z;СТРОКА(СМЕЩ(A2;;;СЧЁТЗ(Z)*2))/2-1;))

С Ч(ИНДЕКС получается на символ короче и массив формируется правильно, но по F9 выдаёт одно значение.

Автор - Светлый
Дата добавления - 15.05.2017 в 18:42
Мир MS Excel » Работа и общение » Мозговой штурм » Игры с массивами
Страница 1 из 11
Поиск:

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