Это невозможно с VLOOKUP. Посмотрите мое решение на картинке, используя формулу массива.
Решение с использованием формул массива
Формула в F2: = INDEX ($ C $ 1: $ C $ 6; SUM (IF (E2 = $ A $ 2: $ A $ 6) ; 1) * IF ($ B $ 2: $ B $ 6 = «маленький»; 1) * ROW ($ C $ 2: $ C $ 6)); 1)
blockquote>Ps: не не забудьте подтвердить формулу с помощью Ctrl + Shift + Enter .
Вы спрашиваете об этом?
[ (i,j) for i in range(1,3) for j in range(1,5) ]
Декартово произведение находится в itertools модуле (в 2,6).
>>> import itertools
>>> list(itertools.product(range(1, 3), range(1, 5)))
[(1, 1), (1, 2), (1, 3), (1, 4), (2, 1), (2, 2), (2, 3), (2, 4)]
Забавный факт о вложенном понимании: это подражает вложенный "для" циклов, таким образом, внутренние могут использовать значения от внешних. Это не полезно в случае декартова произведения, но хорошо для знания. Например:
[ (i,j) for i in range(10) for j in range(i) ]
генерирует всех пар (i,j)
где 0>=i>j>10
.
Это, кажется, делает то, что Вы описываете:
[[a, b] для в диапазоне (1,3) для b в диапазоне (1,5)]
ОБНОВЛЕНИЕ: Черт бы побрал! Должен был перезагрузить страницу для наблюдения ответа S.Lott перед регистрацией. Хм..., что сделать для небольшого значения - добавляют? Возможно, короткое свидетельство полноценности интерактивного режима с Python.
Я происхожу последний раз из среды с Perl так с проблемами как это, я нахожу очень полезным ввести "Python" в командной строке и заскочить в интерактивный режим и только a) начните пробовать вещи и b) совершенствуйте тонкости путем удара стрелки вниз и корректировки моей предыдущей попытки, пока я не получаю то, что я хочу. Любое время я являюсь туманным на некотором ключевом слове, справка, под рукой. Просто введите: справка ("some_keyword"), прочитайте краткий обзор, затем поразите "Q", и я вернулся на строке в прямом разговоре с интерпретатором Python.
Рекомендуемый, если Вы - новичок и не использование его.