2013-09-01 3 views
3

У меня есть таблица (xTable, 3 колонки: Name, Start, Stop). На другом листе у меня есть календарь, который я пытаюсь сделать. Строка A1 - это даты. Столбец A1 - это имена.Формула Excel Сравнение двух массивов

Я пытаюсь сравнить дату начала в моем xTable с датой в моей строке A1. Если дата найдена, посмотрите первый столбец xTable, если он равен имени человека в столбце A1, верните true, если нет, верните false.

Что-то вроде: =INDEX($B$2:$AF$14,ROW(A2)-1,MATCH($B$16,$B$1:$AF$1,0))="x"

Но для жизни меня, я не могу заставить его работать ... Я думал, может быть, потому что у меня есть около 400 строк данных, но я не уверен. Любая помощь приветствуется! Кроме того, если вы знаете решение vba, я всегда могу использовать это ... но я предпочитаю держать его в формулах. Но нищие не должны быть разборчивыми;)

 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |etc---> 
Name1|____|____|____|____|____|____|____|____|____|____|____|____| 
Name2|____|____|____|____|____|____|____|____|____|____|____|____| 
Name3|____|____|____|____|____|____|____|____|____|____|____|____| 
Name4|____|____|____|____|____|____|____|____|____|____|____|____| 
Name5|____|____|____|____|____|____|____|____|____|____|____|____| 
Name6|____|____|____|____|____|____|____|____|____|____|____|____| 
Name7|____|____|____|____|____|____|____|____|____|____|____|____| 
Name8|____|____|____|____|____|____|____|____|____|____|____|____| 
Name9|____|____|____|____|____|____|____|____|____|____|____|____| 


Name |Start|Stop | 
Name1| 3 | 6 | 
Name1| 1 | 12 | 
Name7| 10 | 10 | 
Name3| 21 | 30 | 
Name1| 9 | 12 | 
Name9| 7 | 15 | 
Name9| 1 | 3 | 

ответ

1

Если я понимаю правильно, вы хотите, чтобы заполнить календарь с датой начала из xTable с TRUE, когда найдены и с FALSE иначе?

Вы можете использовать эту формулу в ячейке B2 и заполнить его вправо и вниз:

=IF(COUNTIFS($A$13:$A$19,$A2,$B$13:$B$19,B$1*1)=0,FALSE,TRUE) 

Я использую B$1*1 только в случае, если у вас есть даты, хранящиеся в качестве номера в строке A1. В противном случае, если они сохранены как дата, но отформатированы как dd (или эквивалент), вместо этого используйте DAY(B$1).

Формула будет подсчитывать количество вхождений строки с соответствующим именем и датой начала таблицы xTable с использованием COUNTIFS. Если ни один не найден, он вернет 0, что приведет к FALSE.

+1

Эй, Джерри, очень люблю и признательны! И таблица, и строка используют реальные даты, поэтому я взял DAY(), и он работает как чемпион. Теперь я буду работать над добавлением даты окончания, чтобы он мог заполнить пятна между датой начала и окончания. Опять же ... действительно очень ценю, что вы делитесь своими знаниями. Я ударил головой о стену около 4-18 часов. –

+0

@DavidMassey Удачи в сочетании обоих! :) – Jerry

Смежные вопросы