Объединить группу наборов столбцов в один «набор столбцов» в Google Sheets - PullRequest
1 голос
/ 10 октября 2019

Контекст проблемы:

Я создаю электронную таблицу Google, чтобы помочь мне отслеживать состояние развития различных персонажей в игре, назовите ее DFFOO.

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

Вот пример:

Лист ИФРИТ фермерство

Содержит текущий статус статуса ИФРИТ по вызову фермерского совета, {n = нет, r = вознаграждено, m = освоено}

| Black  | Status | Red     | Status | ...
| Squall | m      | Vanille | r      | 
| Noctis | n      | Another | r      |

Лист Сельское хозяйство SHIVA

Содержит текущий статус статуса фермерского призыва SHIVA, {n = нет, r = вознаграждено, m = освоено}

| Black  | Status | Red     | Status | ...
| Squall | r      | Vanille | r      | 
| Noctis | n      | Another | r      |

Лист Выпуск персонажа

Содержит информацию о новых баннерах для игры, у персонажей есть период времени, когда они получают двойной опыт, здесь указывается текущий статус другой доски и когда заканчивается «x2» (конец увеличен)чтобы помочь мне планировать заранее.

| Character  | IFRIT | SHIVA | ...  | End boosted | 
| Squall     | m     |   r   | ...  |   21-Oct    |
| Vanille    | r     |   r   | ...  |   10-Oct    |

Моя проблема

Есть одно место, где требуется очень странная формула:

Вариант 1

На каждом листе «сельского хозяйства» я добавляю формулу, которая объединяет все столбцы пары в один столбец пары.

Я пробовал это в строке1, столбце Y:

=FILTER({C3:D;E3:F;G3:H;I3:J;K3:L;M3:N;O3:P;Q3:R},LEN({C3:D;E3:F;G3:H;I3:J;K3:L;M3:N;O3:P;Q3:R}))

Проблема этого подхода заключается в том, что FILTER может соответствовать только 1 столбцу, а не диапазону, поэтому это не работает.

PRO заключается в том, что на листе символов мне нужно только сделать VLOOKUPЗа пределами этого созданного диапазона и на листе для сельского хозяйства я могу скрыть столбец Y и ab, чтобы он был прозрачен для листа.

Опция 2:

Требуется только одна модификациячтобы сделать это на листе персонажа, который является VLOOKUP, он работает нормально, но формула становится очень сложной со всеми точками с запятой, ссылающимися на другой лист с несколькими диапазонами.

Я хотел бы иметь решение, которое работаетдля варианта 1, поэтому мне нужно только применить странную формулу к фаЯ могу скрыть эти столбцы, но использую их для упрощения формулы на листе «Освобождение персонажа», хотя это более чистое решение и хорошо масштабируется.

Еще один довод в пользу этого - всякий раз, когда у меня наконец-то работаетЯ хотел бы показать сообществу DFFOO, если они захотят его использовать (на самом деле это расширение идеи, которую я видел), а сложные формулы затрудняют его расширение.

Если кто-то может мне помочьбыло бы идеально найти решение для объединения набора различных столбцов в один «набор столбцов».

добавил превосходство с ожиданиями: https://docs.google.com/spreadsheets/d/15L5nPGfZ8OXS5Rhl3PdIVhtF7D3QzerkARskflDiJL4/edit?usp=sharing

1 Ответ

1 голос
/ 10 октября 2019

Вы можете объединить любое количество столбцов в один столбец, используя QUERY smash:

=TRANSPOSE(QUERY(TRANSPOSE(A:D),,999^99))

объединит столбцы A, B, C и D в один столбец

тогда вы можете безопасно поместить его в FILTER скажем, с помощью регулярных выражений, например:

=FILTER(G:H, REGEXMATCH(TRANSPOSE(QUERY(TRANSPOSE(A:D),,999^99)), "abc|def|xxx"))

это отфильтровывает диапазон G: H, где любой из объединенных столбцов (A: D) содержит хотя бы один из 3возможные строки (abc или def или xxx)


ОБНОВЛЕНИЕ:

={"Character", "Status"; 
 ARRAYFORMULA(SPLIT(TRANSPOSE(SPLIT(TRIM(
 QUERY(TRANSPOSE(QUERY(TRANSPOSE(IF(A2:H<>"", 
 IF(MOD(COLUMN(A2:H), 2)=0, "♠"&A2:H, "♦"&A2:H), ))
 ,,999^99)),,999^99)), "♦")), "♠"))}

enter image description here

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