Google Sheet скрыть формулу в замороженной строке заголовка - PullRequest
1 голос
/ 09 мая 2019

Есть ли способ нацелить формулу на ячейки под ней? У меня есть сложная формула, которая транспонирует и строит результаты по нескольким столбцам и строкам. Мне нравится играть с сортировкой и фильтрацией данных, поэтому формула в итоге перемещается, потому что она находится в первой ячейке данных.

Например, строка 1 заморожена и имеет заголовки для каждого столбца. У меня есть формула в A2, и данные заполняются до конца A и в B, C и D. Если я делаю сортировку или фильтрацию по столбцу A, формула перемещается. Я хотел бы переместить формулу вверх в строку заголовка (A1), чтобы она оставалась на том же месте и никогда не двигалась. Но я хочу, чтобы он по-прежнему заполнял данные, начиная с A2. Затем я также хочу, чтобы в ячейке заголовка (A1) по-прежнему отображался текст заголовка столбца, а не формула .... так что, по сути, скрывая формулу в фоновом режиме ячейки. Возможно ли это сделать?

EDIT:

https://docs.google.com/spreadsheets/d/1MbvMGhrVNhXGfMi4Q5VjwODLgDpKtXtMj0PtKre3Q2U/edit?usp=sharing

Добавлен пример для улучшения визуального представления моего вопроса. По сути, сейчас у меня есть формула в ячейке A2 «Data1», которая заполняет A2: C. Он будет заполнять и транспонировать по вертикали и горизонтали столько, сколько необходимо для отображения данных. Это заполняет клетки автоматически. Я хочу переместить саму формулу в A1 («Заголовок 1»), но в ячейке все еще указано «Заголовок 1». Когда я это делаю, я теряю Data1, Data2, Data3, потому что он перемещает весь результат формулы вверх на 1 строку. Я хочу принудительно сдвинуть результаты на 1 строку, чтобы результаты остались прежними, но формула привязана к замороженному бару.

1 Ответ

2 голосов
/ 09 мая 2019

в основном, вы просите об этом:

={"header for A", "header for B"; ARRAYFORMULA(A2:B)}

обратите внимание, что во избежание ошибки массива необходимо определить заголовок для каждого столбца, даже если он пуст ""

0


={""; ARRAYFORMULA(IFERROR(SUBSTITUTE(SPLIT(TRIM(
    TRANSPOSE(QUERY(TRANSPOSE(SUBSTITUTE(IF(LEN($A$3:$L), {
 IF(TRANSPOSE(QUERY(TRANSPOSE($A$3:$L),,999^99))=IFERROR(VLOOKUP(
    TRANSPOSE(QUERY(TRANSPOSE($A$3:$L),,999^99)),
    TRANSPOSE(QUERY(TRANSPOSE('T1'!$A$3:$L),,999^99)),1,0)), "T1", ),
 IF(TRANSPOSE(QUERY(TRANSPOSE($A$3:$L),,999^99))=IFERROR(VLOOKUP(
    TRANSPOSE(QUERY(TRANSPOSE($A$3:$L),,999^99)),
    TRANSPOSE(QUERY(TRANSPOSE('B1'!$A$3:$L),,999^99)),1,0)), "B1", ),
 IF(TRANSPOSE(QUERY(TRANSPOSE($A$3:$L),,999^99))=IFERROR(VLOOKUP(
    TRANSPOSE(QUERY(TRANSPOSE($A$3:$L),,999^99)),
    TRANSPOSE(QUERY(TRANSPOSE('T2'!$A$3:$L),,999^99)),1,0)), "T2", ),
 IF(TRANSPOSE(QUERY(TRANSPOSE($A$3:$L),,999^99))=IFERROR(VLOOKUP(
    TRANSPOSE(QUERY(TRANSPOSE($A$3:$L),,999^99)),
    TRANSPOSE(QUERY(TRANSPOSE('B2'!$A$3:$L),,999^99)),1,0)), "B2", ),
 IF(TRANSPOSE(QUERY(TRANSPOSE($A$3:$L),,999^99))=IFERROR(VLOOKUP(
    TRANSPOSE(QUERY(TRANSPOSE($A$3:$L),,999^99)),
    TRANSPOSE(QUERY(TRANSPOSE('M1'!$A$3:$L),,999^99)),1,0)), "M1", ),
 IF(TRANSPOSE(QUERY(TRANSPOSE($A$3:$L),,999^99))=IFERROR(VLOOKUP(
    TRANSPOSE(QUERY(TRANSPOSE($A$3:$L),,999^99)),
    TRANSPOSE(QUERY(TRANSPOSE('B3'!$A$3:$L),,999^99)),1,0)), "B3", ),
 IF(TRANSPOSE(QUERY(TRANSPOSE($A$3:$L),,999^99))=IFERROR(VLOOKUP(
    TRANSPOSE(QUERY(TRANSPOSE($A$3:$L),,999^99)),
    TRANSPOSE(QUERY(TRANSPOSE('M2'!$A$3:$L),,999^99)),1,0)), "M2", ),
 IF(TRANSPOSE(QUERY(TRANSPOSE($A$3:$L),,999^99))=IFERROR(VLOOKUP(
    TRANSPOSE(QUERY(TRANSPOSE($A$3:$L),,999^99)),
    TRANSPOSE(QUERY(TRANSPOSE('B4'!$A$3:$L),,999^99)),1,0)), "B4", )}, ),
 " ", "♦")),,999^99))), " "), "♦", " ")))}

0

примечание: если вы получите ARRAY LITERAL error, вам нужно будет добавить еще ""
, например: ={"", "", "", ""; ARRAYF....

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