2

Я создаю рабочий лист, который сравнивает два набора данных, извлеченных в разные даты. Столбец, из которого все извлекается, создается формулой массива, состоящей из объединенных уникальных значений из двух наборов данных. Раньше у меня все было отлично, потому что я вручную помещал заголовки списков (List1 и List2):

=IFERROR(IFERROR(INDEX(List1,MATCH(0,IF(ISBLANK(List1),1,COUNTIF($B$3:B3,List1)),0)),INDEX(List2,MATCH(0,IF(ISBLANK(List2),1,COUNTIF($B$3:B3,List2)),0))),"")

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

DATES       TAB         LIST
2/4/2015    Requireds A ListA
2/5/2015    Requireds B ListB
2/6/2015    Requireds C ListC
2/7/2015    Requireds D ListD
2/8/2015    Requireds E ListE

Я обновил свою первоначальную формулу, заменив «List1» ссылками на первое выпадающее меню, чтобы найти столбец списка в справочной таблице, и «List2», чтобы найти вторую дату, используя Index и Match:

=IFERROR(IFERROR(INDEX(
(INDEX(DropDownTable!A:C,MATCH(Comparison!B1,DropDownTable!A:A,0),3))
,MATCH(0,IF(ISBLANK(
(INDEX(DropDownTable!A:C,MATCH(Comparison!B1,DropDownTable!A:A,0),3))
),1,COUNTIF($B$3:B3,
(INDEX(DropDownTable!A:C,MATCH(Comparison!B1,DropDownTable!A:A,0),3))
)),0)),INDEX(
(INDEX(DropDownTable!A:C,MATCH(Comparison!D1,DropDownTable!A:A,0),3))
,MATCH(0,IF(ISBLANK(
(INDEX(DropDownTable!A:C,MATCH(Comparison!D1,DropDownTable!A:A,0),3))
),1,COUNTIF($B$3:B3,
(INDEX(DropDownTable!A:C,MATCH(Comparison!D1,DropDownTable!A:A,0),3))
)),0))),"")

ОДНАКО, вот моя проблема, когда я запускаю «оценить формулу», это выглядит так, как если бы большинство моих новых поисков потянуло имя списка, один или два - нет. Тянет ячейку с именем списка. Таким образом, вместо того, чтобы принести мне «ListA», он приносит мне:

DropDownTable!$C$2

Я не знаю, является ли это единственной ошибкой в формуле; Я не уверен, что слова «ListA» - это то же самое, что ссылаться на сам список. Это может быть то, что я тоже испортил.

Любое руководство было бы превосходным, но я не могу понять, почему оно не говорит мне «ListA» так, как должно.

1 ответ1

0

Я не уверен, что вы имеете в виду.

Ваш самый первый INDEX ожидает диапазон в качестве первого параметра, и поэтому результат:

INDEX(DropDownTable!A:C,MATCH(Comparison!B1,DropDownTable!A:A,0),3)

должен быть таким.

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

И здесь я не совсем понимаю вашу формулу. Результатом вышеприведенного выражения будет ссылка на одну ячейку, например DropDownTable!$ C $ 8, который затем передается в качестве диапазона первому INDEX, который станет примерно таким:

INDEX((DropDownTable!$C$8,MATCH(0,...

и поэтому независимо от того, каков результат следующего выражения, вы все равно никогда не достигнете многого: ИНДЕКСИРОВАНИЕ одной ячейки не имеет особого смысла!

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

С уважением

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .