Получение нескольких списков данных из массива, где каждая строка в результирующих данных ссылается на одну и ту же ячейку в исходных данных - PullRequest
0 голосов
/ 17 января 2019

У меня есть функция, которая извлекает дату из столбца и время из строки, где имя соответствует ячейке в этом столбце / строке.

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

Я понял, что это потому, что я использую функцию "МАЛЕНЬКИЙ", однако, когда я удаляю часть "МАЛЕНЬКИЙ", он не извлекает все данные. У кого-нибудь есть предложения?

Вот мои две формулы

=IFERROR(INDEX('MOS Schedule'!$A$5:$A$33,SMALL(IF('MOS Schedule'!$B$5:$F$33=$B$1,ROW('MOS Schedule'!$A$5:$A$33)-MIN(ROW('MOS Schedule'!$A$5:$A$33))+1),ROWS($B$3:D3))),"")


=IFERROR(INDEX('MOS Schedule'!$B$4:$F$4,SMALL(IF('MOS Schedule'!$B$5:$F$33=$B$1,('MOS Schedule'!$B$4:$F$4)-MIN('MOS Schedule'!$B$4:$F$4)+1),ROWS($B$3:C3))),"")

Вот исходные данные: Table

Вот информация, полученная по моим формулам:

formula result

Вот что не так:

Это сортировка данных от наименьшего к наибольшему, но мне нужно, чтобы данные были выровнены вместе в результатах, и оба ссылаются на одну и ту же ячейку

Мне нужна информация в каждой строке в столбцах C и D для ссылки на одну и ту же ячейку в таблице. Мне нужны C3 и C4 (и C5 в конце концов), чтобы все ссылались на одну и ту же ячейку в таблице.

То, что я ожидаю увидеть в С3, это "14.01.19", а в D3 "15:00". Затем в C4 "14.01.19" и в D4 "15:30". , , и т.д.

1 Ответ

0 голосов
/ 18 января 2019

Используя столбцы G, H и ячейку I1: M4 в качестве помощника ... укажите следующие метки:

I4  ---->  1
J4  ---->  2
K4  ---->  3
L4  ---->  4
M4  ---->  5

Вставьте (введите) 1-е значение даты (в данном случае это 14 января) в ячейку E1. тогда эти формулы:

I5  ---->  =IF(COUNTIF('MOS Schedule'!B5:B33,$B$1)=0,"",COUNTIF('MOS Schedule'!B5:B33,$B$1))
I6  ---->  =COUNT($I$5:OFFSET($I$5,0,I4-1))

и перетащите до столбца М. Затем эти формулы в 1-й строке:

C4  ---->  =INDEX('MOS Schedule'!$B$4:$F$4,MATCH(1,$I$6:$M$6,0))
D4  ---->  =INDEX('MOS Schedule'!$A$5:$A$33,MATCH($B$1,OFFSET('MOS Schedule'!$B$5:$B$33,0,MATCH($C4,'MOS Schedule'!$B$4:$F$4,0)-1),0))
F4  ---->  1
G4  ---->  =COUNTIF('MOS Schedule'!B5:F33,B1)

тогда:

C5  ---->  =IF(OR(G4=1,G4=""),"",INDEX('MOS Schedule'!$B$4:$F$4,MATCH(F4,$I$6:$M$6,0)))
D5  ---->  =IF(OR(G4=1,G4=""),"",IFERROR(INDEX(OFFSET('MOS Schedule'!$A$5:$A$33,MATCH(D4,'MOS Schedule'!$A$5:$A$33,0),0,ROWS('MOS Schedule'!$A$5:$A$33)-MATCH(D4,'MOS Schedule'!$A$5:$A$33,0)+1),MATCH($B$1,OFFSET('MOS Schedule'!$B$5:$B$33,MATCH(D4,'MOS Schedule'!$A$5:$A$33,0),MATCH($C5,'MOS Schedule'!$B$4:$F$4,0)-1,ROWS('MOS Schedule'!$A$5:$A$33)-MATCH(D4,'MOS Schedule'!$A$5:$A$33,0)+1),0)),INDEX('MOS Schedule'!$A$5:$A$33,MATCH($B$1,OFFSET('MOS Schedule'!$B$5:$B$33,0,MATCH($C5,'MOS Schedule'!$B$4:$F$4,0)-1),0))))
F5  ---->  =IF(OR(G4=1,G4=""),"",IFERROR(IF(MATCH($B$1,OFFSET('MOS Schedule'!$B$5:$B$33,MATCH(D5,'MOS Schedule'!$A$5:$A$33,0),MATCH(C5,'MOS Schedule'!$B$4:$F$4)-1,ROWS('MOS Schedule'!$A$5:$A$33)-MATCH(D5,'MOS Schedule'!$A$5:$A$33,0)+1),0)>0,F4,""),F4+1))
G5  ---->  =IF(G4="","",IF((G4-1)>0,G4-1,""))

и перетащите вниз. Готово.

Идея:

  • «I4: M6» как «таблица идентификаторов дня (у какого дня есть результат совпадения)» и смещение столбца 'guide'.
  • Используйте offset () + match (), чтобы «обновить» (найти 2-е, 3-е .. match в тот же день) функцию index () + match () (столбец C, D).
  • Использовать счетчик (G4) в качестве базового счетчика результатов.

Надеюсь, это поможет. (:

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