Excel, Указание содержимого ячейки в результате других ячеек - PullRequest
1 голос
/ 29 января 2012

Я не часто использую Excel, и я действительно не нашел хорошего решения своей проблемы. (что, вероятно, действительно просто).

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

Например:

enter image description here

В заголовке Best Deal просто используется формула

=MAX(D3,D1000)

Но в разделе «Лучшее предложение» я хотел бы отобразить имя теста1, а не числовое значение.

Еще одна вещь, которую было бы неплохо знать, - это если есть способ узнать максимальную строку с данными в ней. Так что вместо =MAX(D3,D1000) что-то вроде =MAX(D3,Max(RowCount_InD))

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

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

Спасибо!

Ответы [ 3 ]

4 голосов
/ 29 января 2012

Самый простой способ сделать это - использовать комбинацию Index и Match. Функция Match найдет позицию максимального значения, а затем Index посмотрит в столбец A и вернет данные в той же позиции. Итак, ваша формула будет:

=INDEX(A$3:A$1000,MATCH(MAX(D$3:D$1000),D$3:D$1000,0))

Поместите эту формулу в F3. Не требуется скрытых столбцов.

Извините, я пропустил часть о расширении ассортимента. Вы можете сделать это, используя Count или CountA вместе со смещением. Новая формула будет:

=INDEX(A3:OFFSET(A3,COUNTA(A:A)-1,0),MATCH(MAX(D3:OFFSET(D3,COUNT(D:D)-1,0)),D3:OFFSET(D3,COUNT(D:D)-1,0),0))

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

3 голосов
/ 29 января 2012

Есть только один «простой» способ, которым я могу думать об этом, но он требует скрытых столбцов (извините).

установите E1 = A1 и заполните полностью (в основном вы делаете копию столбца A в столбце E, но используете формулу, поэтому она всегда будет одинаковой)

Затем в поле «Лучшая сделка» введите следующую формулу:

=VLOOKUP(MAX(D3,D1000),$D:$E,2,FALSE)

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

1 голос
/ 29 января 2012

"Еще одна вещь, которую было бы неплохо узнать, это если есть способ узнать максимальную строку с данными в ней. Поэтому вместо = MAX (D3, D1000) что-то вроде = MAX (D3, Max (RowCount_InD)) "

Это так называемый динамический именованный диапазон.Создайте имя для данных отношения и задайте формулу для диапазона имен следующим образом:

=OFFSET($D$3, 0, 0, COUNTA($D$3:$D$1048576), 1)

Дополнительная информация здесь: http://www.ozgrid.com/Excel/DynamicRanges.htm

Затем, если вы назовете это имяrange ratio_data, ваша функция может ссылаться на = MAX (ratio_data) в сочетании с индексным соответствием, как предложено @Tim Mayes.Диапазон будет расширяться автоматически по мере добавления данных.

=INDEX(A$3:A$1000,MATCH(MAX(ratio_data),ratio_data,0))

В идеале вы можете заменить A3: A1000 динамическим именованным диапазоном.

...