Добрый вечер. Возникла такая проблема. Не получается вставить изображение в ячейку по формуле. Пример: в ячейке А1 будет по результатам таблицы команда чемпион, а в ячейке В1 должно появится изображение (логотип) сборной.
Добрый вечер. Возникла такая проблема. Не получается вставить изображение в ячейку по формуле. Пример: в ячейке А1 будет по результатам таблицы команда чемпион, а в ячейке В1 должно появится изображение (логотип) сборной.GOA-64
как сделать,чтобы в шахматке счет матча был в разных ячейках?
Пытаясь понять, зачем Вам это надо, предположу, что хотите вводить результаты прямо в шахматку. Такой вариант предусмотрен в настольно-хоккейной шахматке, представленной в сообщении 3 данной ветки. Там результаты вводятся в ячейки над черной диагональю, а зеркальные результаты под диагональю получаются формулами. При этом строки шахматки по понятным причинам динамически не перестраиваются, а текущие места команд в турнире отображаются в отдельной колонке.
В футбольной шахматке из сообщения 1 результаты матчей вводятся в "другом месте", а в шахматке они только отображаются как в отчете, и шахматка является динамически перестраиваемой в соответствии с текущим положением команд в турнире (кто на первом месте - всегда на верхней строке и т.д.).
Зачем в динамической футбольной шахматке разбивать счета по отдельным ячейкам - не очень понимаю. Но в любом случае - это "целое дело" и кардинальная переработка алгоритма. В общем, это не значит, что это совсем невозможно, но я этим заниматься точно не предполагаю
как сделать,чтобы в шахматке счет матча был в разных ячейках?
Пытаясь понять, зачем Вам это надо, предположу, что хотите вводить результаты прямо в шахматку. Такой вариант предусмотрен в настольно-хоккейной шахматке, представленной в сообщении 3 данной ветки. Там результаты вводятся в ячейки над черной диагональю, а зеркальные результаты под диагональю получаются формулами. При этом строки шахматки по понятным причинам динамически не перестраиваются, а текущие места команд в турнире отображаются в отдельной колонке.
В футбольной шахматке из сообщения 1 результаты матчей вводятся в "другом месте", а в шахматке они только отображаются как в отчете, и шахматка является динамически перестраиваемой в соответствии с текущим положением команд в турнире (кто на первом месте - всегда на верхней строке и т.д.).
Зачем в динамической футбольной шахматке разбивать счета по отдельным ячейкам - не очень понимаю. Но в любом случае - это "целое дело" и кардинальная переработка алгоритма. В общем, это не значит, что это совсем невозможно, но я этим заниматься точно не предполагаю Gustav
В большинстве футбольных любительских чемпионатах по несколько лиг(высшая,первая,вторая и т.д.) Возможно ли в вашей таблице сделать,вот это(для одной лиги сначала): Рейтинг команд(как в ФИФА) : О=И*Л*К*100, где О-очки рейтинга И-исход игры Л-рейтинг лиги К-коэф команды И-исход игры,как обычно-победа-3,ничья-1,пораж-0 К-(200 - рейтинг противника)/100 Л-рейтинг лиги,пока можно принять за 1 Чтобы в чемпионате считать рейтинг команд общий. Спасибо.
В большинстве футбольных любительских чемпионатах по несколько лиг(высшая,первая,вторая и т.д.) Возможно ли в вашей таблице сделать,вот это(для одной лиги сначала): Рейтинг команд(как в ФИФА) : О=И*Л*К*100, где О-очки рейтинга И-исход игры Л-рейтинг лиги К-коэф команды И-исход игры,как обычно-победа-3,ничья-1,пораж-0 К-(200 - рейтинг противника)/100 Л-рейтинг лиги,пока можно принять за 1 Чтобы в чемпионате считать рейтинг команд общий. Спасибо.Vadim156
Ну, а почему бы нет. Для этого в книге потребуется дополнительный лист, на который можно будет наВПРить все необходимые данные с других листов. Степень сложности решения будет зависеть от понятия рейтинга - фиксированный ли он на момент начала чемпионата по прошлым заслугам (по итогам прошлого сезона, например) или динамический, пересчитываемый после каждого сыгранного тура (или даже отдельного матча). Понятно, что второй вариант значительно сложнее.
Т.е. общий ответ на вопрос - да. И дерзнуть может любой желающий (лично я - пас, мне просто сейчас это не очень интересно).
Ну, а почему бы нет. Для этого в книге потребуется дополнительный лист, на который можно будет наВПРить все необходимые данные с других листов. Степень сложности решения будет зависеть от понятия рейтинга - фиксированный ли он на момент начала чемпионата по прошлым заслугам (по итогам прошлого сезона, например) или динамический, пересчитываемый после каждого сыгранного тура (или даже отдельного матча). Понятно, что второй вариант значительно сложнее.
Т.е. общий ответ на вопрос - да. И дерзнуть может любой желающий (лично я - пас, мне просто сейчас это не очень интересно).Gustav
Добрый день! Извините если не туда и не так пишу. Хотелось бы такую же таблицу переделать для волейбола. Загвоздка в том что подсчет очков немного другой, ничьи не может быть и победа 3-0 или 3-1 это 3 очка, 3-2 соответственно 2 очка, а поражение 2-3 дает 1очко. Где и что подправить нужно?
Добрый день! Извините если не туда и не так пишу. Хотелось бы такую же таблицу переделать для волейбола. Загвоздка в том что подсчет очков немного другой, ничьи не может быть и победа 3-0 или 3-1 это 3 очка, 3-2 соответственно 2 очка, а поражение 2-3 дает 1очко. Где и что подправить нужно?Oka08
Рассказываю на примере файлов из сообщения №1 (универсальный генератор из сообщения №14 пока не трогаем).
На листе "Матчи" отобразите колонки между N и AJ. Очки за отдельные матчи считаются в колонках: S - для хозяина площадки, Z - для гостя. Сейчас там футбольные формулы:
Код
=3*P2+1*Q2
и
Код
=3*W2+1*X2
, зависящие от выигрышей и ничьих.
В тройки колонок футбольных "выигрышей, ничьих, поражений" - хозяйских хВ, хН, хП и гостевых гВ, гН, гП - можете добавить (вставить) по 4-й колонке и получившиеся колонки переименовать уже на волейбольный манер: В3, В2, П1, П.
Соответственно, эти 4-е колонки надо потом будет внедрить на листах "(Команды)" и "Положение". Это не должно быть особо сложно, там всё по аналогии с соседними колонками.
Ну и немножко надо будет попыхтеть над формулой для рейтинга в колонке AD на листе "(Команды)".
Рассказываю на примере файлов из сообщения №1 (универсальный генератор из сообщения №14 пока не трогаем).
На листе "Матчи" отобразите колонки между N и AJ. Очки за отдельные матчи считаются в колонках: S - для хозяина площадки, Z - для гостя. Сейчас там футбольные формулы:
Код
=3*P2+1*Q2
и
Код
=3*W2+1*X2
, зависящие от выигрышей и ничьих.
В тройки колонок футбольных "выигрышей, ничьих, поражений" - хозяйских хВ, хН, хП и гостевых гВ, гН, гП - можете добавить (вставить) по 4-й колонке и получившиеся колонки переименовать уже на волейбольный манер: В3, В2, П1, П.
Соответственно, эти 4-е колонки надо потом будет внедрить на листах "(Команды)" и "Положение". Это не должно быть особо сложно, там всё по аналогии с соседними колонками.
Ну и немножко надо будет попыхтеть над формулой для рейтинга в колонке AD на листе "(Команды)".Gustav
Хотелось бы такую же таблицу переделать для волейбола.
Поскольку Oka08 создал по этому волейбольному поводу новую тему, а я в ней активно поучаствовал, считаю целесообразным "пристегнуть" ТУ тему к ЭТОЙ хотя бы ссылкой: http://www.excelworld.ru/forum/23-37141-1
Хотелось бы такую же таблицу переделать для волейбола.
Поскольку Oka08 создал по этому волейбольному поводу новую тему, а я в ней активно поучаствовал, считаю целесообразным "пристегнуть" ТУ тему к ЭТОЙ хотя бы ссылкой: http://www.excelworld.ru/forum/23-37141-1Gustav
Сейчас пробую воспользоваться Вашим замечательным генератором турниров, для теста сгенерил таблицу условного двухкругового турнира из 4 команд.
В тестовом расчете я вначале вводил результаты матчей не по кругам, а по парам (оба матча пары вводил подряд). В итоге, на листе "Положение" полностью сбилась шахматка результатов, и ещё в столбцах Z:AG присутствует явный сбой. Файл прилагаю.
Таким образом, правильно ли я понял, что на листе "Матчи" должны последовательно быть введены сначала все матчи первого круга, а потом - все матчи второго круга, при этом поле "дата" на отнесение матча к тому или иному кругу турнира никак не влияет?
Здравствуйте, уважаемый Густав!
Сейчас пробую воспользоваться Вашим замечательным генератором турниров, для теста сгенерил таблицу условного двухкругового турнира из 4 команд.
В тестовом расчете я вначале вводил результаты матчей не по кругам, а по парам (оба матча пары вводил подряд). В итоге, на листе "Положение" полностью сбилась шахматка результатов, и ещё в столбцах Z:AG присутствует явный сбой. Файл прилагаю.
Таким образом, правильно ли я понял, что на листе "Матчи" должны последовательно быть введены сначала все матчи первого круга, а потом - все матчи второго круга, при этом поле "дата" на отнесение матча к тому или иному кругу турнира никак не влияет?Red_front
правильно ли я понял, что на листе "Матчи" должны последовательно быть введены сначала все матчи первого круга, а потом - все матчи второго круга, при этом поле "дата" на отнесение матча к тому или иному кругу турнира никак не влияет?
Два матча двух команд должны относиться к разным кругам (колонка B на листе Матчи) - это главное для правильной шахматки. Один из матчей должен иметь Круг = 1, другой Круг = 2. Матч круга 1 отображается в левой ячейке, круга 2 - в правой ячейке двухячеечной "клетки", относящейся в шахматке к противостоянию двух команд.
Генератор по умолчанию генерирует сначала строки для матчей первого круга, затем для второго, т.е. колонка "Круг" исходно имеет у Вас такой вид: [vba]
Код
1 1 1 1 1 1 2 2 2 2 2 2
[/vba] Коль скоро у Вас оба матча двух команд играются "рядом", т.е. друг за другом, то отредактируйте колонку "Круг" следующим образом и будет счастье: [vba]
Код
1 2 1 2 1 2 1 2 1 2 1 2
[/vba] Даты (колонка F), номера туров (колонка E), номер матча (колонка A) - это чисто справочные данные, ни на что не влияющие, но помогающие ориентироваться в большом чемпионате (команд на 16, как в Премьер-лиге Чемпионата России по футболу). Можете забить их одним и тем же значением, хоть нулями или вообще стереть. В шахматке всё определяет только колонка "Круг".
правильно ли я понял, что на листе "Матчи" должны последовательно быть введены сначала все матчи первого круга, а потом - все матчи второго круга, при этом поле "дата" на отнесение матча к тому или иному кругу турнира никак не влияет?
Два матча двух команд должны относиться к разным кругам (колонка B на листе Матчи) - это главное для правильной шахматки. Один из матчей должен иметь Круг = 1, другой Круг = 2. Матч круга 1 отображается в левой ячейке, круга 2 - в правой ячейке двухячеечной "клетки", относящейся в шахматке к противостоянию двух команд.
Генератор по умолчанию генерирует сначала строки для матчей первого круга, затем для второго, т.е. колонка "Круг" исходно имеет у Вас такой вид: [vba]
Код
1 1 1 1 1 1 2 2 2 2 2 2
[/vba] Коль скоро у Вас оба матча двух команд играются "рядом", т.е. друг за другом, то отредактируйте колонку "Круг" следующим образом и будет счастье: [vba]
Код
1 2 1 2 1 2 1 2 1 2 1 2
[/vba] Даты (колонка F), номера туров (колонка E), номер матча (колонка A) - это чисто справочные данные, ни на что не влияющие, но помогающие ориентироваться в большом чемпионате (команд на 16, как в Премьер-лиге Чемпионата России по футболу). Можете забить их одним и тем же значением, хоть нулями или вообще стереть. В шахматке всё определяет только колонка "Круг".Gustav
Семён Семёныч... )) А колонку с номерами кругов я и не приметил. Теперь всё становится понятно.
Уважаемый Густав, а не могли бы Вы доработать генератор в части возможности создания более широкого диапазона очков? Просто, сейчас на всё большем и большем количестве турниров очки начисляются по многоступенчатой схеме вроде: победа в основное время-победа в доп время (по буллитам/пенальти)- ничья-поражение в доп время (по буллитам/пенальти)-поражение в основное время. В хоккее так данная схема уже и вовсе стала международным стандартом, в футболе тоже всё чаще появляются турниры с нестандартной схемой начисления очков.
А, вообще, я, конечно, восхищён данным файлом. Никогда бы не подумал, что такую задачу можно решить без использования макросов.
Семён Семёныч... )) А колонку с номерами кругов я и не приметил. Теперь всё становится понятно.
Уважаемый Густав, а не могли бы Вы доработать генератор в части возможности создания более широкого диапазона очков? Просто, сейчас на всё большем и большем количестве турниров очки начисляются по многоступенчатой схеме вроде: победа в основное время-победа в доп время (по буллитам/пенальти)- ничья-поражение в доп время (по буллитам/пенальти)-поражение в основное время. В хоккее так данная схема уже и вовсе стала международным стандартом, в футболе тоже всё чаще появляются турниры с нестандартной схемой начисления очков.
А, вообще, я, конечно, восхищён данным файлом. Никогда бы не подумал, что такую задачу можно решить без использования макросов.Red_front
Добрый день! В текущей версии в 2-х круговом турнире матчи заносятся по горизонтали. А можно сделать "вертикальный" вариант? Чтобы результаты отображались "сверху дома"/"снизу в гостях". Ну как на большинстве спортсайтов. Спасибо.
Добрый день! В текущей версии в 2-х круговом турнире матчи заносятся по горизонтали. А можно сделать "вертикальный" вариант? Чтобы результаты отображались "сверху дома"/"снизу в гостях". Ну как на большинстве спортсайтов. Спасибо.vitaminychrnmd
А можно сделать "вертикальный" вариант? Чтобы результаты отображались "сверху дома"/"снизу в гостях". Ну как на большинстве спортсайтов.
Конечно, я далеко не часто посещаю спортсайты с полными таблицами-шахматками результатов, но, честно говоря, не припомню такую схему вертикальной организации информации в "ячейке" турнирной таблицы, отражающей взаимоотношения двух команд (такая "ячейка" обычно состоит из нескольких ячеек Excel), когда первым (верхним) указывается результат игры на своем поле, а вторым (нижним) - гостевой результат. Если можно, дайте, пожалуйста, конкретные ссылки на такие случаи.
В таблице для двухкругового турнира в ячейке с вертикальным порядком верхним обычно указывается результат игры в первом круге, а нижним - результат в круге втором. И такая вертикальная хронология выглядит достаточно естественно (как, кстати, и горизонтальная хронология "слева направо", которая используется на листе "Положение" в моем алгоритме): [vba]
[/vba]Чтобы при доминирующей хронологии кругов отобразить в ячейке еще и признак "хозяин/гость", приходится прибегать к использованию дополнительных символов. В моем алгоритме это круглые скобки, в которые заключается результат игры на ЧУЖОМ поле.
В рассматриваемом Вами случае лично мне сразу бросается в глаза "несимметричность" результатов относительно главной диагонали. Если для двух соседних строк команд в вертикальной хронологии выполняется попарное соответствие 1-й и 3-й строк, а также 2-й и 4-й (и такое соответствие, подчеркну еще раз, выглядит естественным), то в Вашем случае будет попарное соответствие строк 1-4 и 2-3, что мне кажется странноватым: [vba]
[/vba]По "задумке" скобки здесь уже не нужны (хотя по мне, лучше бы они были :)). Здесь нужно думать (если нужно), как обеспечить различаемость первого и второго круга (возможно, используя те же скобки, но уже, понятно, с другим смыслом).
Однако, для двухкругового турнира также существует схема, ориентированная именно на признак "хозяин/гость". Мне она не очень по душе, так как я обычно в ней легко запутываюсь. Тем не менее, схема мне представляется более логичной, чем рассматриваемая Вами. Суть её в том, что в ячейке указывается только один результат - результат игры на своем поле команды из текущей строки таблицы против команды из текущего столбца. Таким образом, в СТРОКЕ команды собираются результаты ее игр на СВОЕМ поле (при этом, команда забивает голы, указанные слева от разделителя (: или -), а пропускает - голы справа), а в СТОЛБЦЕ команды собираются результаты ее игр на ЧУЖОМ (при этом счёт из столбца следует воспринимать "задом наперёд": команда забивает голы, указанные СПРАВА от разделителя, а пропускает - СЛЕВА): [vba]
Код
ЦСКА Спартак ЦСКА xxxxxxx 1:0 Спартак 1:3 xxxxxxx
[/vba]В этом примере ЦСКА в двух играх против Спартака имеет две победы с общим счётом 4:1.
Но вернемся (после этого довольно внушительного моего ворчания), как говорится, "к нашим баранам". В моем алгоритме для формирования итогового листа "Положение" используются еще два рабочих листа: "Команды" и "Матчи". Весь алгоритм, таким образом, состоит из работы трёх листов. Но где три, там и четыре! Почему бы нам не сделать некий иной "вид" на лист "Положение", воспользовавшись уже имеющейся на нём подготовленной информацией? Т.е. не мрачно переделывать весь существующий алгоритм с начала, не добавлять в него параметром "горизонтальность/вретикальность" информации в ячейке шахматки, а унаследоваться от достигнутого, подобно тому, как это происходит при работе с классами/объектами в соответствующих языках программирования или в базах данных при создании "запроса на запрос" (например, как в MS Access).
И для подобной "модификации", собственно, я как разработчик основы алгоритма ("разработчик класса-предка") уже не особо-то Вам и нужен. Используйте информацию с листа "Положение" и представляйте ее как угодно на некотором своем (четвертом) листе. Но, конечно, прямо сейчас я Вас не брошу и, по крайней мере, один раз покажу как это можно делать. Тем более, что в Excel (и в Таблицах Google) за прошедшее десятилетие появилась череда новых полезнейших функций для обработки массивов.
Несмотря на то, что алгоритм изначально разрабатывался для Excel, я в качестве платформы для демонстрации выбираю свой давний пример для Таблиц Google, ссылка на который была дана в сообщении № 22 этой темы ( http://www.excelworld.ru/forum/3-1835-116963-16-1414492115 ). К сожалению, по прошествии лет ссылка простым щелчком не открывается. Чтобы ею воспользоваться, можно открыть веб-страницу в режиме просмотра HTML (например, в отладчике браузера Google Chrome) и найти там правильный адрес ссылки, который, кстати, отображается во всплывающей подсказке при наведении мышки на ссылку (но не выписывать же вручную из этой подсказки 44-хсимвольный код таблицы Google!).
Но чтобы избавить Вас от этих сложностей я сейчас освежу ссылку, продублировав ее в текущем сообщении: https://docs.google.com/spreads....sharing И, как я уже неоднократно делал в других подобных, также отдельно (на всякий случай) приведу 44-хсимвольный код таблицы Google: 1IIu8FckhRE_Lpr01K9dsIfUTVA_l6xGQZznUBw_xMs8 Всё потому, что через какое-то время, увы, может перестать работать и сегодняшняя ссылка.
Пример по ссылке уже заряжен четвертым листом "Положение - Вид 2", решающим Вашу задачу, и его уже можно начинать изучать. В следующем же своем сообщении в этой теме (а то это уже очень большое по объему) я приведу формулы этого решения и прокомментирую их. Вот люблю я, чтобы формулы были показаны явно в сообщениях, без необходимости открытия файла или хождения по ссылке. Когда читаешь форум со смартфона, это не всегда возможно или удобно, а формулу хочется видеть сразу в процессе чтения. Поэтому я очень расстраиваюсь от лаконичных форумных ответов типа "Так должно быть?" и приложенного файла, который надо ещё открывать.
А можно сделать "вертикальный" вариант? Чтобы результаты отображались "сверху дома"/"снизу в гостях". Ну как на большинстве спортсайтов.
Конечно, я далеко не часто посещаю спортсайты с полными таблицами-шахматками результатов, но, честно говоря, не припомню такую схему вертикальной организации информации в "ячейке" турнирной таблицы, отражающей взаимоотношения двух команд (такая "ячейка" обычно состоит из нескольких ячеек Excel), когда первым (верхним) указывается результат игры на своем поле, а вторым (нижним) - гостевой результат. Если можно, дайте, пожалуйста, конкретные ссылки на такие случаи.
В таблице для двухкругового турнира в ячейке с вертикальным порядком верхним обычно указывается результат игры в первом круге, а нижним - результат в круге втором. И такая вертикальная хронология выглядит достаточно естественно (как, кстати, и горизонтальная хронология "слева направо", которая используется на листе "Положение" в моем алгоритме): [vba]
[/vba]Чтобы при доминирующей хронологии кругов отобразить в ячейке еще и признак "хозяин/гость", приходится прибегать к использованию дополнительных символов. В моем алгоритме это круглые скобки, в которые заключается результат игры на ЧУЖОМ поле.
В рассматриваемом Вами случае лично мне сразу бросается в глаза "несимметричность" результатов относительно главной диагонали. Если для двух соседних строк команд в вертикальной хронологии выполняется попарное соответствие 1-й и 3-й строк, а также 2-й и 4-й (и такое соответствие, подчеркну еще раз, выглядит естественным), то в Вашем случае будет попарное соответствие строк 1-4 и 2-3, что мне кажется странноватым: [vba]
[/vba]По "задумке" скобки здесь уже не нужны (хотя по мне, лучше бы они были :)). Здесь нужно думать (если нужно), как обеспечить различаемость первого и второго круга (возможно, используя те же скобки, но уже, понятно, с другим смыслом).
Однако, для двухкругового турнира также существует схема, ориентированная именно на признак "хозяин/гость". Мне она не очень по душе, так как я обычно в ней легко запутываюсь. Тем не менее, схема мне представляется более логичной, чем рассматриваемая Вами. Суть её в том, что в ячейке указывается только один результат - результат игры на своем поле команды из текущей строки таблицы против команды из текущего столбца. Таким образом, в СТРОКЕ команды собираются результаты ее игр на СВОЕМ поле (при этом, команда забивает голы, указанные слева от разделителя (: или -), а пропускает - голы справа), а в СТОЛБЦЕ команды собираются результаты ее игр на ЧУЖОМ (при этом счёт из столбца следует воспринимать "задом наперёд": команда забивает голы, указанные СПРАВА от разделителя, а пропускает - СЛЕВА): [vba]
Код
ЦСКА Спартак ЦСКА xxxxxxx 1:0 Спартак 1:3 xxxxxxx
[/vba]В этом примере ЦСКА в двух играх против Спартака имеет две победы с общим счётом 4:1.
Но вернемся (после этого довольно внушительного моего ворчания), как говорится, "к нашим баранам". В моем алгоритме для формирования итогового листа "Положение" используются еще два рабочих листа: "Команды" и "Матчи". Весь алгоритм, таким образом, состоит из работы трёх листов. Но где три, там и четыре! Почему бы нам не сделать некий иной "вид" на лист "Положение", воспользовавшись уже имеющейся на нём подготовленной информацией? Т.е. не мрачно переделывать весь существующий алгоритм с начала, не добавлять в него параметром "горизонтальность/вретикальность" информации в ячейке шахматки, а унаследоваться от достигнутого, подобно тому, как это происходит при работе с классами/объектами в соответствующих языках программирования или в базах данных при создании "запроса на запрос" (например, как в MS Access).
И для подобной "модификации", собственно, я как разработчик основы алгоритма ("разработчик класса-предка") уже не особо-то Вам и нужен. Используйте информацию с листа "Положение" и представляйте ее как угодно на некотором своем (четвертом) листе. Но, конечно, прямо сейчас я Вас не брошу и, по крайней мере, один раз покажу как это можно делать. Тем более, что в Excel (и в Таблицах Google) за прошедшее десятилетие появилась череда новых полезнейших функций для обработки массивов.
Несмотря на то, что алгоритм изначально разрабатывался для Excel, я в качестве платформы для демонстрации выбираю свой давний пример для Таблиц Google, ссылка на который была дана в сообщении № 22 этой темы ( http://www.excelworld.ru/forum/3-1835-116963-16-1414492115 ). К сожалению, по прошествии лет ссылка простым щелчком не открывается. Чтобы ею воспользоваться, можно открыть веб-страницу в режиме просмотра HTML (например, в отладчике браузера Google Chrome) и найти там правильный адрес ссылки, который, кстати, отображается во всплывающей подсказке при наведении мышки на ссылку (но не выписывать же вручную из этой подсказки 44-хсимвольный код таблицы Google!).
Но чтобы избавить Вас от этих сложностей я сейчас освежу ссылку, продублировав ее в текущем сообщении: https://docs.google.com/spreads....sharing И, как я уже неоднократно делал в других подобных, также отдельно (на всякий случай) приведу 44-хсимвольный код таблицы Google: 1IIu8FckhRE_Lpr01K9dsIfUTVA_l6xGQZznUBw_xMs8 Всё потому, что через какое-то время, увы, может перестать работать и сегодняшняя ссылка.
Пример по ссылке уже заряжен четвертым листом "Положение - Вид 2", решающим Вашу задачу, и его уже можно начинать изучать. В следующем же своем сообщении в этой теме (а то это уже очень большое по объему) я приведу формулы этого решения и прокомментирую их. Вот люблю я, чтобы формулы были показаны явно в сообщениях, без необходимости открытия файла или хождения по ссылке. Когда читаешь форум со смартфона, это не всегда возможно или удобно, а формулу хочется видеть сразу в процессе чтения. Поэтому я очень расстраиваюсь от лаконичных форумных ответов типа "Так должно быть?" и приложенного файла, который надо ещё открывать.Gustav
Как создать четвертый лист "Положение - Вид 2"? Самый простой способ - сделать копию листа "Положение", а затем отрезать "старое ненужное" и добавить "новое нужное" (в частности, "проредить" последовательность чисел от 1 до 4 в колонке "M(есто)" вставкой пустых строк между номерами мест). Я шёл именно этим путём, но налетел на собственный капкан, выразившийся в дублировании на новом листе локальных именованных диапазонов (уровня листа). В принципе, они ни на что особо не влияли, но выглядело как-то некрасиво - иметь одноименные диапазоны уровня файла и уровня листа. Поэтому локальные имена уровня нового листа я вручную поудалял.
Можно было идти другим путём (и, наверное, нужно). Просто "рисовать" таблицу на пустом листе, выделив нужное количество строк и столбцов и затем скопировав с листа "Положение" форматы столбцов и строк, а также текстовые метки колонок (до матрицы результатов) в первой строке, начиная с "М","Команда" и заканчивая "Мр","Мзч".
Формулы с листа "Положение" на новый лист переносить совершенно не нужно, а, наоборот (если копировали лист), нужно их стирать. На новом листе будет всего 4 формулы. Они будут введены в 4 ячейки (всего!) и будут представлять собой формулы массива, обслуживающие прилегающие к ним диапазоны. Продемонстируем эти формулы:
В ячейке A2 - генерация вертикальной последовательности чисел от 1 до 4 с пустой строкой после каждого номера (всего 8 элементов): [vba]
В ячейке M1 - заголовки колонок матрицы результатов, т.е. названия команд из колонки B:B без пустых промежуточных значений и с поворотом на 90 градусов: [vba]
Код
=TRANSPOSE(FILTER(B2:B9;B2:B9<>""))
[/vba]
В ячейке M2 - "изюминка" всей затеи - формула, выставляющая результаты матчей в задуманном порядке "сверху дома/снизу в гостях": [vba]
vitaminychrnmd, что делать Вам с Вашим Excel 2007? Варианта три: 1. перейти на Таблицы Google и строить в них свои шахматки (это практически без проблем и бесплатно, нужен только Интернет и аккаунт Google) 2. постараться заиметь доступ к одной из современных версий Excel, в которой будут работать вышеприведенные формулы (тут возможны всякие лицензионные или финансовые препоны; плюс есть некоторые технические разночтения в формулах Excel и Google, которые, впрочем, легко устранимы) 3. оставаться в рамках своей древней версии Excel и преобразовать вышеприведенные формулы массивов в обычные, копируемые во все ячейки диапазонов, т.е. выполнить своеобразный дауншифтинг этих формул (и даже, не побоюсь этого слова, их реверс-инжиниринг).
В третьем случае, в диапазоны A2:A9, B2:B9, M1:P1, приходящие на "смену" единичным ячейкам A2, B2 и M1, нужно будет ввести либо обычные формулы-ссылки на единичные ячейки листа "Положение" типа:
Код
=Положение!A2
либо формулы массива (ссылки на диапазоны листа "Положение") типа:
Код
=Положение!B2:L2
Для ввода последней формулы нужно будет на новом листе "Положение - Вид 2" предварительно выделить диапазон B2:L2, далее, не снимая выделения, ввести формулу в ячейку B2 и завершить ввод "массивной" клавиатурной комбинацией Ctrl+Shift+Enter.
Ячейку-"изюминку" M2 в третьем случае придётся "разобрать", приспособить для обработки простого сочетания двух команд (по одной строке строке и по одному столбцу), настроить абсолютные и относительные адреса, после чего протянуть (скопировать) формулу во все ячейки диапазона M2:P9. В процессе такого "разбора", вполне вероятно, могут потребоваться дополнительные столбцы (на правом краю таблицы) для фиксации промежуточных результатов вычислений.
Я не буду опускаться до полного "обратного разбора" формулы-"изюминки" (в конце концов, это претит мне как художнику, только что нарисовавшему "прямую картину"). Остановлюсь на извлечении фрагмента с функцией LET из итеративной функции MAKEARRAY и построении на базе этого фрагмента протягиваемой формулы для одной ячейки. Вот эта формула, использующая внутри LET более-менее привычные функции, во всяком случае, не выше уровня версии 2007: [vba]
[/vba] Прелесть этой формулы состоит в том, что именованные переменные внутри LET - это фактически кандидаты на отдельные доп.столбцы на правом краю таблицы. Более детальный анализ может подсказать возможность объединить некоторые из этих переменных с целью сокращения количества доп.столбцов. Ну, а часть формулы, которая должна будет попасть (после соответствующей замены переменных на ссылки на доп.столбцы) в ячейки диапазона M2:P9 - это результирующая часть внутри функции LET вида: [vba]
Код
IF(TRUNC((colN+1)/2;0)=rowN;"";currResult)
[/vba]
Как создать четвертый лист "Положение - Вид 2"? Самый простой способ - сделать копию листа "Положение", а затем отрезать "старое ненужное" и добавить "новое нужное" (в частности, "проредить" последовательность чисел от 1 до 4 в колонке "M(есто)" вставкой пустых строк между номерами мест). Я шёл именно этим путём, но налетел на собственный капкан, выразившийся в дублировании на новом листе локальных именованных диапазонов (уровня листа). В принципе, они ни на что особо не влияли, но выглядело как-то некрасиво - иметь одноименные диапазоны уровня файла и уровня листа. Поэтому локальные имена уровня нового листа я вручную поудалял.
Можно было идти другим путём (и, наверное, нужно). Просто "рисовать" таблицу на пустом листе, выделив нужное количество строк и столбцов и затем скопировав с листа "Положение" форматы столбцов и строк, а также текстовые метки колонок (до матрицы результатов) в первой строке, начиная с "М","Команда" и заканчивая "Мр","Мзч".
Формулы с листа "Положение" на новый лист переносить совершенно не нужно, а, наоборот (если копировали лист), нужно их стирать. На новом листе будет всего 4 формулы. Они будут введены в 4 ячейки (всего!) и будут представлять собой формулы массива, обслуживающие прилегающие к ним диапазоны. Продемонстируем эти формулы:
В ячейке A2 - генерация вертикальной последовательности чисел от 1 до 4 с пустой строкой после каждого номера (всего 8 элементов): [vba]
В ячейке M1 - заголовки колонок матрицы результатов, т.е. названия команд из колонки B:B без пустых промежуточных значений и с поворотом на 90 градусов: [vba]
Код
=TRANSPOSE(FILTER(B2:B9;B2:B9<>""))
[/vba]
В ячейке M2 - "изюминка" всей затеи - формула, выставляющая результаты матчей в задуманном порядке "сверху дома/снизу в гостях": [vba]
vitaminychrnmd, что делать Вам с Вашим Excel 2007? Варианта три: 1. перейти на Таблицы Google и строить в них свои шахматки (это практически без проблем и бесплатно, нужен только Интернет и аккаунт Google) 2. постараться заиметь доступ к одной из современных версий Excel, в которой будут работать вышеприведенные формулы (тут возможны всякие лицензионные или финансовые препоны; плюс есть некоторые технические разночтения в формулах Excel и Google, которые, впрочем, легко устранимы) 3. оставаться в рамках своей древней версии Excel и преобразовать вышеприведенные формулы массивов в обычные, копируемые во все ячейки диапазонов, т.е. выполнить своеобразный дауншифтинг этих формул (и даже, не побоюсь этого слова, их реверс-инжиниринг).
В третьем случае, в диапазоны A2:A9, B2:B9, M1:P1, приходящие на "смену" единичным ячейкам A2, B2 и M1, нужно будет ввести либо обычные формулы-ссылки на единичные ячейки листа "Положение" типа:
Код
=Положение!A2
либо формулы массива (ссылки на диапазоны листа "Положение") типа:
Код
=Положение!B2:L2
Для ввода последней формулы нужно будет на новом листе "Положение - Вид 2" предварительно выделить диапазон B2:L2, далее, не снимая выделения, ввести формулу в ячейку B2 и завершить ввод "массивной" клавиатурной комбинацией Ctrl+Shift+Enter.
Ячейку-"изюминку" M2 в третьем случае придётся "разобрать", приспособить для обработки простого сочетания двух команд (по одной строке строке и по одному столбцу), настроить абсолютные и относительные адреса, после чего протянуть (скопировать) формулу во все ячейки диапазона M2:P9. В процессе такого "разбора", вполне вероятно, могут потребоваться дополнительные столбцы (на правом краю таблицы) для фиксации промежуточных результатов вычислений.
Я не буду опускаться до полного "обратного разбора" формулы-"изюминки" (в конце концов, это претит мне как художнику, только что нарисовавшему "прямую картину"). Остановлюсь на извлечении фрагмента с функцией LET из итеративной функции MAKEARRAY и построении на базе этого фрагмента протягиваемой формулы для одной ячейки. Вот эта формула, использующая внутри LET более-менее привычные функции, во всяком случае, не выше уровня версии 2007: [vba]
[/vba] Прелесть этой формулы состоит в том, что именованные переменные внутри LET - это фактически кандидаты на отдельные доп.столбцы на правом краю таблицы. Более детальный анализ может подсказать возможность объединить некоторые из этих переменных с целью сокращения количества доп.столбцов. Ну, а часть формулы, которая должна будет попасть (после соответствующей замены переменных на ссылки на доп.столбцы) в ячейки диапазона M2:P9 - это результирующая часть внутри функции LET вида: [vba]
Спасибо огромное, попытаюсь разобраться с этим внезапно свалившимся сокровищем. Насчет "большинства" сайтов, эт я погорячился. Конечно же, чаще всего пользуют вариант с одним (домашним) матчем в клетке. Но и "вертикальное" положение 2-х матчей не такая уж редкость, например, https://foot-stat.ru/eng_ist.php , https://www.euro-football.ru/champ/brazil (там надо щелкнуть "Шахматка"), http://soccer-stat.ru/index_ger.html ... А вот горизонтальный вариант я встречал только в шахматах. Как я дошел до этой темы. Несколько лет пользовался инфой с сайта http://soccer-stat.ru/ . Там достаточно оперативно, обычно в течение пары часов после тура, обновлялись шахматки топ-чемпионатов. Еще ежегодно выкладывалась эксель-таблица ЧР, в которой самостоятельно можно было вносить результаты. Аналогично тому, как реализовано у Вас. Пару лет назад сайт перестал обновляться. (По информации из ВК что-то нехорошее, к сожалению, произошло с автором). Стал искать аналоги, вот и забрел сюда. Да, вопрос по новой версии программы. Excel 2013 подойдет? Спасибо.
Спасибо огромное, попытаюсь разобраться с этим внезапно свалившимся сокровищем. Насчет "большинства" сайтов, эт я погорячился. Конечно же, чаще всего пользуют вариант с одним (домашним) матчем в клетке. Но и "вертикальное" положение 2-х матчей не такая уж редкость, например, https://foot-stat.ru/eng_ist.php , https://www.euro-football.ru/champ/brazil (там надо щелкнуть "Шахматка"), http://soccer-stat.ru/index_ger.html ... А вот горизонтальный вариант я встречал только в шахматах. Как я дошел до этой темы. Несколько лет пользовался инфой с сайта http://soccer-stat.ru/ . Там достаточно оперативно, обычно в течение пары часов после тура, обновлялись шахматки топ-чемпионатов. Еще ежегодно выкладывалась эксель-таблица ЧР, в которой самостоятельно можно было вносить результаты. Аналогично тому, как реализовано у Вас. Пару лет назад сайт перестал обновляться. (По информации из ВК что-то нехорошее, к сожалению, произошло с автором). Стал искать аналоги, вот и забрел сюда. Да, вопрос по новой версии программы. Excel 2013 подойдет? Спасибо.vitaminychrnmd