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

Вход

Регистрация

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

 

= Мир MS Excel/Сколько непрерывно пустых клеток в пересечении - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин  
Сколько непрерывно пустых клеток в пересечении
Понравилось?
Светлый Дата: Пятница, 19.04.2019, 17:06 | Сообщение № 1
Группа: Друзья
Ранг: Старожил
Сообщений: 1852
Репутация: 523 ±
Замечаний: 0% ±

Excel 2013, 2016
Здравствуйте все!
Вот приболел немного и в горячечном бреду придумывал, как вычислить количество свободных непрерывных клеток, соседствующих по вертикали и горизонтали с каждой клеткой поля. Или по другому. Сколько РАЗЛИЧНЫХ ходов ладьёй можно сделать из каждой клетки доски, считая и ход на месте.
Первая моя формула была больше 360 символов, но у неё был недостаток. Если её записать в массиве клеток Excel, она показывает нужные значения. Если результат её действия смотреть как виртуальный массив, она не работает.
Вторая формула получилась. Её длина 263 символа.
В файле Есть образец поля и таблица результатов работы формулы.
Вокруг основного поля есть узкие клетки. Там, в принципе, могут быть любые константы.
Судя по сложности этой формулы, я даже не надеюсь, что можно будет учесть голубые клетки как занятые.
Если всё пойдёт нормально, то вскрываемся 29 апреля. Или продлим ещё на неделю.
Всем удачи!
К сообщению приложен файл: MBoy.xlsx (10.3 Kb)


Программировать проще, чем писать стихи.
 
Ответить
СообщениеЗдравствуйте все!
Вот приболел немного и в горячечном бреду придумывал, как вычислить количество свободных непрерывных клеток, соседствующих по вертикали и горизонтали с каждой клеткой поля. Или по другому. Сколько РАЗЛИЧНЫХ ходов ладьёй можно сделать из каждой клетки доски, считая и ход на месте.
Первая моя формула была больше 360 символов, но у неё был недостаток. Если её записать в массиве клеток Excel, она показывает нужные значения. Если результат её действия смотреть как виртуальный массив, она не работает.
Вторая формула получилась. Её длина 263 символа.
В файле Есть образец поля и таблица результатов работы формулы.
Вокруг основного поля есть узкие клетки. Там, в принципе, могут быть любые константы.
Судя по сложности этой формулы, я даже не надеюсь, что можно будет учесть голубые клетки как занятые.
Если всё пойдёт нормально, то вскрываемся 29 апреля. Или продлим ещё на неделю.
Всем удачи!

Автор - Светлый
Дата добавления - 19.04.2019 в 17:06
MCH Дата: Понедельник, 22.04.2019, 15:43 | Сообщение № 2
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

Есть формула "в лоб", считаем пустые до и после ячейки по горизонтали и по вертикали соответственно (итого 4 слагаемых)
получилось 129 119 знаков
Формула копируемая, результат - полное соответствие с таблицей в P3:Y12
 
Ответить
СообщениеЕсть формула "в лоб", считаем пустые до и после ячейки по горизонтали и по вертикали соответственно (итого 4 слагаемых)
получилось 129 119 знаков
Формула копируемая, результат - полное соответствие с таблицей в P3:Y12

Автор - MCH
Дата добавления - 22.04.2019 в 15:43
Светлый Дата: Понедельник, 22.04.2019, 18:56 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1852
Репутация: 523 ±
Замечаний: 0% ±

Excel 2013, 2016
Формула копируемая
То есть, считает одно значение? По F9 показывает виртуальный массив?
Код
={9;7;5;4;0;9;6;6;6;12:8;6;4;0;8;10;7;7;7;13:7;5;0;3;5;7;0;0;0;8:8;6;3;0;8;10;8;12;8;13:6;0;0;4;0;9;7;11;7;12:10;9;6;8;9;0;6;10;6;11:0;9;6;8;9;6;0;7;0;8:4;6;0;10;11;8;9;13;9;14:5;7;4;0;5;0;5;9;5;0:5;7;4;0;10;6;8;12;8;6}
Я хотел именно виртуальный получить.
Пусть будет две задачи - две формулы. Виртуальная и обычная.
*Массивная 130 126 символов, а по заданию 255 символов.


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

Сообщение отредактировал Светлый - Понедельник, 22.04.2019, 22:15
 
Ответить
Сообщение
Формула копируемая
То есть, считает одно значение? По F9 показывает виртуальный массив?
Код
={9;7;5;4;0;9;6;6;6;12:8;6;4;0;8;10;7;7;7;13:7;5;0;3;5;7;0;0;0;8:8;6;3;0;8;10;8;12;8;13:6;0;0;4;0;9;7;11;7;12:10;9;6;8;9;0;6;10;6;11:0;9;6;8;9;6;0;7;0;8:4;6;0;10;11;8;9;13;9;14:5;7;4;0;5;0;5;9;5;0:5;7;4;0;10;6;8;12;8;6}
Я хотел именно виртуальный получить.
Пусть будет две задачи - две формулы. Виртуальная и обычная.
*Массивная 130 126 символов, а по заданию 255 символов.

Автор - Светлый
Дата добавления - 22.04.2019 в 18:56
MCH Дата: Понедельник, 22.04.2019, 22:48 | Сообщение № 4
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

Цитата Светлый, 22.04.2019 в 18:56, в сообщении № 3 ()
То есть, считает одно значение?

считает одно значение, но для каждой ячейки, по F9 возвращает одно значение
 
Ответить
Сообщение
Цитата Светлый, 22.04.2019 в 18:56, в сообщении № 3 ()
То есть, считает одно значение?

считает одно значение, но для каждой ячейки, по F9 возвращает одно значение

Автор - MCH
Дата добавления - 22.04.2019 в 22:48
Светлый Дата: Понедельник, 29.04.2019, 15:16 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1852
Репутация: 523 ±
Замечаний: 0% ±

Excel 2013, 2016
Всем доброго здравия!
Никто не порадовал меня элегантным решением. Наверно, не было времени. Задача достаточно сложная. Продлим ещё на неделю. Впереди праздничные дни. Вдруг кто-то захочет отдохнуть от праздников, поломает голову и создаст шедевр.
Всех с наступающими праздниками.
Вскрываемся 6 мая перед Днём радио.
[offtop]Кстати, изобретатель радио Попов родился в моём родном городе Краснотурьинске. Тогда населённый пункт назывался Турьинские рудники.


Программировать проще, чем писать стихи.
 
Ответить
СообщениеВсем доброго здравия!
Никто не порадовал меня элегантным решением. Наверно, не было времени. Задача достаточно сложная. Продлим ещё на неделю. Впереди праздничные дни. Вдруг кто-то захочет отдохнуть от праздников, поломает голову и создаст шедевр.
Всех с наступающими праздниками.
Вскрываемся 6 мая перед Днём радио.
[offtop]Кстати, изобретатель радио Попов родился в моём родном городе Краснотурьинске. Тогда населённый пункт назывался Турьинские рудники.

Автор - Светлый
Дата добавления - 29.04.2019 в 15:16
MCH Дата: Вторник, 30.04.2019, 08:09 | Сообщение № 6
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

я не совсем понял про формулу, возвращающую массив значений
Нужно ввести одну единственную формулу в диапазон P3:Y12, чтобы она вернула массив в виде матрицы со значениями для каждой ячейки?
Пока для каждой отдельной ячейки есть копируемая формула, возвращающая одно значение
 
Ответить
Сообщениея не совсем понял про формулу, возвращающую массив значений
Нужно ввести одну единственную формулу в диапазон P3:Y12, чтобы она вернула массив в виде матрицы со значениями для каждой ячейки?
Пока для каждой отдельной ячейки есть копируемая формула, возвращающая одно значение

Автор - MCH
Дата добавления - 30.04.2019 в 08:09
Светлый Дата: Вторник, 30.04.2019, 20:01 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1852
Репутация: 523 ±
Замечаний: 0% ±

Excel 2013, 2016
Нужно ввести одну единственную формулу
не обязательно в диапазон. В любой ячейке эта формула по F9 должна дать массив как в сообщении №3. В диапазоне ячеек тоже должна дать эти же значения по Ctrl+Shift+Enter. Естественно, при изменении основного поля вычисляются новые значения в массиве в соответствии с условием задачи.


Программировать проще, чем писать стихи.
 
Ответить
Сообщение
Нужно ввести одну единственную формулу
не обязательно в диапазон. В любой ячейке эта формула по F9 должна дать массив как в сообщении №3. В диапазоне ячеек тоже должна дать эти же значения по Ctrl+Shift+Enter. Естественно, при изменении основного поля вычисляются новые значения в массиве в соответствии с условием задачи.

Автор - Светлый
Дата добавления - 30.04.2019 в 20:01
Светлый Дата: Понедельник, 06.05.2019, 13:05 | Сообщение № 8
Группа: Друзья
Ранг: Старожил
Сообщений: 1852
Репутация: 523 ±
Замечаний: 0% ±

Excel 2013, 2016
Всем привет!
С праздниками! Прошедшим и предстоящими!
Я в который раз обескуражен такой активностью участников МШ. С одной стороны - приятно, что смог сделать такое, что никто не смог повторить. С другой - жалко, что не нашлось более элегантного решения. Тут, в МШ, такие умы! Как орешки щёлкают сложнейшие задания. Нехватка времени...
Вскрываюсь.
Массивные формулы. Узкие ячейки границы массива заполнены 1, в A13 11. Виртуальный массив:
Код
=(C3:L12=0)*(ПОИСК(1;МУМНОЖ(Ч(C3:M12>0);10^-A3:A13);СТОЛБЕЦ(C:L))+ПОИСК(1;МУМНОЖ(Ч(B3:M12>0);10^A2:A13);14-СТОЛБЕЦ(B:K))-31+ТРАНСП(ПОИСК(1;МУМНОЖ(ТРАНСП(Ч(C3:L13>0));10^-A3:A13);СТОЛБЕЦ(C:L))+ПОИСК(1;МУМНОЖ(ТРАНСП(Ч(C2:L13>0));10^A2:A13);14-СТОЛБЕЦ(B:K))))
И для одной одной ячейки 126 символов. (до 119 сократить не смог):
Код
=(C3=0)*(МИН(ЕСЛИ(D3:$M3;СТОЛБЕЦ(C:$L)))-МАКС(($B3:B3>0)*СТОЛБЕЦ($B:B))+МИН(ЕСЛИ(C4:C$13;$A3:$A$12))-МАКС((C$2:C2>0)*$A$3:$A3))
Есть решение в 116 символов, если заполнить ряд 2 числами от 2 до 13:
Код
=(C3=0)*(МИН(ЕСЛИ(D3:$M3;C$2:$L$2))-МАКС(($B3:B3>0)*$B$2:B$2)+МИН(ЕСЛИ(C4:C$13;$A3:$A$12))-МАКС((C$2:C2>0)*$A$3:$A3))
Виртуальная формула работает без проблем, но число 3 используется в УФ и рядом с ним поле подкрашивается. Мне это не подходит. В файле оставил вариант для последней формулы.
*Если на эту тройку не обращать внимания, тогда основная формула 227 символов:
Код
=(C3:L12=0)*(ПОИСК(1;МУМНОЖ(Ч(C3:M12>0);10^-A3:A13);C2:L2)+ПОИСК(1;МУМНОЖ(Ч(B3:M12>0);10^A2:A13);14-B2:K2)-31+ТРАНСП(ПОИСК(1;МУМНОЖ(ТРАНСП(Ч(C3:L13>0));10^-A3:A13);C2:L2)+ПОИСК(1;МУМНОЖ(ТРАНСП(Ч(C2:L13>0));10^A2:A13);14-B2:K2)))
К сообщению приложен файл: MBoyOtv.xlsx (17.5 Kb)


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

Сообщение отредактировал Светлый - Понедельник, 06.05.2019, 13:13
 
Ответить
СообщениеВсем привет!
С праздниками! Прошедшим и предстоящими!
Я в который раз обескуражен такой активностью участников МШ. С одной стороны - приятно, что смог сделать такое, что никто не смог повторить. С другой - жалко, что не нашлось более элегантного решения. Тут, в МШ, такие умы! Как орешки щёлкают сложнейшие задания. Нехватка времени...
Вскрываюсь.
Массивные формулы. Узкие ячейки границы массива заполнены 1, в A13 11. Виртуальный массив:
Код
=(C3:L12=0)*(ПОИСК(1;МУМНОЖ(Ч(C3:M12>0);10^-A3:A13);СТОЛБЕЦ(C:L))+ПОИСК(1;МУМНОЖ(Ч(B3:M12>0);10^A2:A13);14-СТОЛБЕЦ(B:K))-31+ТРАНСП(ПОИСК(1;МУМНОЖ(ТРАНСП(Ч(C3:L13>0));10^-A3:A13);СТОЛБЕЦ(C:L))+ПОИСК(1;МУМНОЖ(ТРАНСП(Ч(C2:L13>0));10^A2:A13);14-СТОЛБЕЦ(B:K))))
И для одной одной ячейки 126 символов. (до 119 сократить не смог):
Код
=(C3=0)*(МИН(ЕСЛИ(D3:$M3;СТОЛБЕЦ(C:$L)))-МАКС(($B3:B3>0)*СТОЛБЕЦ($B:B))+МИН(ЕСЛИ(C4:C$13;$A3:$A$12))-МАКС((C$2:C2>0)*$A$3:$A3))
Есть решение в 116 символов, если заполнить ряд 2 числами от 2 до 13:
Код
=(C3=0)*(МИН(ЕСЛИ(D3:$M3;C$2:$L$2))-МАКС(($B3:B3>0)*$B$2:B$2)+МИН(ЕСЛИ(C4:C$13;$A3:$A$12))-МАКС((C$2:C2>0)*$A$3:$A3))
Виртуальная формула работает без проблем, но число 3 используется в УФ и рядом с ним поле подкрашивается. Мне это не подходит. В файле оставил вариант для последней формулы.
*Если на эту тройку не обращать внимания, тогда основная формула 227 символов:
Код
=(C3:L12=0)*(ПОИСК(1;МУМНОЖ(Ч(C3:M12>0);10^-A3:A13);C2:L2)+ПОИСК(1;МУМНОЖ(Ч(B3:M12>0);10^A2:A13);14-B2:K2)-31+ТРАНСП(ПОИСК(1;МУМНОЖ(ТРАНСП(Ч(C3:L13>0));10^-A3:A13);C2:L2)+ПОИСК(1;МУМНОЖ(ТРАНСП(Ч(C2:L13>0));10^A2:A13);14-B2:K2)))

Автор - Светлый
Дата добавления - 06.05.2019 в 13:05
MCH Дата: Понедельник, 06.05.2019, 13:40 | Сообщение № 9
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

Код
=(C3=0)*(ПОИСКПОЗ(;0^C3:C$13;)+ПОИСКПОЗ(;0^C3:$M3;)+СТОЛБЕЦ(C3)-ПОИСКПОЗ(1;0^$B3:C3)+СТРОКА(C3)-ПОИСКПОЗ(1;0^C$2:C3)-7)
К сообщению приложен файл: MBoy2.xlsx (14.5 Kb)
 
Ответить
Сообщение
Код
=(C3=0)*(ПОИСКПОЗ(;0^C3:C$13;)+ПОИСКПОЗ(;0^C3:$M3;)+СТОЛБЕЦ(C3)-ПОИСКПОЗ(1;0^$B3:C3)+СТРОКА(C3)-ПОИСКПОЗ(1;0^C$2:C3)-7)

Автор - MCH
Дата добавления - 06.05.2019 в 13:40
MCH Дата: Понедельник, 06.05.2019, 13:55 | Сообщение № 10
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

Даже можно немного сократить, если подразумевается, что числа в поле небольшие
Код
=(C3=0)*(ПОИСКПОЗ(;0^C3:C$13;)+ПОИСКПОЗ(;0^C3:$M3;)+СТОЛБЕЦ(C3)-ПОИСКПОЗ(99;$B3:C3)+СТРОКА(C3)-ПОИСКПОЗ(99;C$2:C3)-7)

если числа не более 4, то вместо "99" можно указать "9"

и еще вариант, 113 знаков:
Код
=МАКС(ПОИСКПОЗ(;0^C3:C$13;)+ПОИСКПОЗ(;0^C3:$M3;)+СТОЛБЕЦ(C3)-ПОИСКПОЗ(9;$B3:C3)+СТРОКА(C3)-ПОИСКПОЗ(9;C$2:C3)-7;)
 
Ответить
СообщениеДаже можно немного сократить, если подразумевается, что числа в поле небольшие
Код
=(C3=0)*(ПОИСКПОЗ(;0^C3:C$13;)+ПОИСКПОЗ(;0^C3:$M3;)+СТОЛБЕЦ(C3)-ПОИСКПОЗ(99;$B3:C3)+СТРОКА(C3)-ПОИСКПОЗ(99;C$2:C3)-7)

если числа не более 4, то вместо "99" можно указать "9"

и еще вариант, 113 знаков:
Код
=МАКС(ПОИСКПОЗ(;0^C3:C$13;)+ПОИСКПОЗ(;0^C3:$M3;)+СТОЛБЕЦ(C3)-ПОИСКПОЗ(9;$B3:C3)+СТРОКА(C3)-ПОИСКПОЗ(9;C$2:C3)-7;)

Автор - MCH
Дата добавления - 06.05.2019 в 13:55
Светлый Дата: Понедельник, 06.05.2019, 15:38 | Сообщение № 11
Группа: Друзья
Ранг: Старожил
Сообщений: 1852
Репутация: 523 ±
Замечаний: 0% ±

Excel 2013, 2016
и еще вариант, 113 знаков
Красиво. Сталкивался с таким, но вылетело из головы.


Программировать проще, чем писать стихи.
 
Ответить
Сообщение
и еще вариант, 113 знаков
Красиво. Сталкивался с таким, но вылетело из головы.

Автор - Светлый
Дата добавления - 06.05.2019 в 15:38
ibotka Дата: Среда, 27.11.2019, 16:42 | Сообщение № 12
Группа: Заблокированные
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 20% ±

Excel 2016
как-то слишком замудрено!


Мир будет НАШ!
 
Ответить
Сообщениекак-то слишком замудрено!

Автор - ibotka
Дата добавления - 27.11.2019 в 16:42
  • Страница 1 из 1
  • 1
Поиск:

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