Массив как синтаксис в MS Excel

Как я могу выбрать ячейку с помощью нижнего индекса как на большинстве языков программирования - [x]?

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

= IF(A[row()] = "X", TRUE, FALSE) 
0
задан 14.09.2009, 12:45

5 ответов

Используйте КОСВЕННУЮ функцию:

=INDIRECT ("A" &C2)

если C2 является ячейкой, которая содержит номер строки.

Можно использовать это в Вашем ЕСЛИ формула:

= IF(INDIRECT("A"&C2) = "X"; TRUE; FALSE)
2
ответ дан 24.11.2019, 03:43

Вы могли попробовать

=if(A & trim(text(something that evaluates to a number))="X",true,false)

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

0
ответ дан 24.11.2019, 03:43

Если Вы знаете диапазон, что значения используются ИНДЕКСНАЯ функция.

например.

= IF(INDEX(A:A, ROW()) = "X", TRUE, FALSE)

В отличие от КОСВЕННОЙ функции это не энергозависимо и не будет следовательно повторно вычислено каждый раз, когда что-либо изменяется.

0
ответ дан 24.11.2019, 03:43

Я соглашаюсь, ИНДЕКС является определенно лучшим ответом на это, чем КОСВЕННЫЙ, на самом деле это действительно - самая близкая вещь к селектору элемента массива, который существует в Excel. (NB: нет никакого нуля элемента, поскольку существует на многих языках программирования, работах Excel над строками и столбцами, таким образом, первый всегда - 1 в любом направлении),

Обратите внимание, что можно использовать простую версию для выбора энного элемента в массиве на один столбец:

=INDEX (A1:A100,27) дал бы 27-й элемент A1:A100, т.е. A27 или один массив строк:

=INDEX (A1:G1, 5) дает содержание пятой колонны в массиве, таким образом, E1 в этом случае (отмечают двойную запятую для показа значения для строки, обеспечивается),

можно сделать двухмерные антенные решетки:

=INDEX (A1:D100,27,4) был бы содержанием D27 (строка 27, столбец 4 массива) и

=INDEX (C19:X43,5,7) дает I23

Теперь, если Вы будете иметь двухмерную антенную решетку и только дадите один параметр, то результатом будет целый столбец или строка. В то время как это не делает sens на своем собственном, это прекрасно встроено в другой функции. Так: =INDEX (A1:C5,1) - возвращает ошибку #REF, поскольку он даже не понимает, относится ли этот 1 к строке или столбцу.

=INDEX (A1:C5,1), - возвращает #VALUE, потому что он не может отобразить результант arrary в ячейке, но отметить, что дополнительная запятая теперь явно определяет это, 1 означает первую строку.

=SUM (ИНДЕКС (A1:C5,1)) - возвращает сумму всех значений в A1:C1, первой строке массива.

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

=IF (A:A = "X", "Да, это работает", "X не найденный") затем можно скопировать это в любую другую строку просто путем вытаскивания его, и на каждой строке это неявно означает "элемент столбца A, который находится на том же номере строки как эта формула".Примечание: диапазон не должен быть целым столбцом, это мог быть A4:A104, или даже на другом листе, но в каждом случае он будет использовать ячейку в той же фактической строке Excel как формула. Я повторю тот последний бит: Если у Вас будет формула в ячейке B5 с помощью диапазона A4:A104, то Вы не получите Пятый элемент того диапазона (A8), а скорее ячейка A5. При использовании формулы в ячейке B3 против A4:A104, Вы получаете ошибку, потому что диапазон ничего не имеет на строке 3 (нет никакого пересечения). Так, если Ваши строки выстроены в линию, эта неявная ячейка от диапазона действительно полезна (и даже инструмент для очистки при использовании именованного диапазона для столбца) но если они не, Вы должны ИНДЕКСИРОВАТЬ для получения истинной репликации [n] для любого элемента массива.

2
ответ дан 24.11.2019, 03:43

Вот еще две опции для Вас:

Включите стиль ссылки R1C1

В Excel 2003, например:

  1. Нажмите Options на меню Tools, затем нажмите вкладку "Общие".
  2. При Настройках установите флажок стиля ссылки R1C1.

Затем в Вашей формуле, Вы просто сделали бы это:

=R1 = "X"

который автоматически возвратит true или ложь. Обратите внимание на то, что в Ваших формулах, любое время Вы используете, Если () для возврата истины и лжи можно просто избавиться от, Если () полностью, поскольку какое-либо сравнение уже возвращает булево значение.

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

Используйте названные диапазоны

Названные диапазоны действительно мощны, и они просты в использовании. Скажем, Вы маркировали столбец X в нем Флагом. Таким образом, Вы выбрали бы весь столбец и избранную Вставку->, Имя-> Определяет. Дайте ему имя Флаг (если это уже не нашло его на основе Вашей маркировки), и затем в формулах Вы используете слово Флаг, как будто это была ссылка на ячейку, как так:

=Flag = "X"

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

В дополнение к ручному определению имен, если Вы хотите добавить маркировки к полному набору данных сразу, выбирают Ваш диапазон данных, затем выбирают Insert-> Names-> Create и выбирают положение маркировок (обычно Верхний ряд для меня). Теперь Вы определили именованный диапазон для каждого столбца в Вашей электронной таблице, и можно начать использовать тех, которые в формулах.

Еще один лакомый кусочек

Не пропускайте пересечь оператор, который является пространством. Оператор объединения является запятой как в =Sum(A1, B1) и пересечь оператор так же используется как это =Sum(Flag 2:10). Если бы именованный Флаг диапазона упомянул столбец 1, например, то это обратилось бы к диапазону A2:A10, пересечение двух перечисленных диапазонов. Можно использовать много пересечений один за другим в качестве в range range range range. A:A 1:1 твердость к той же ссылке как A1.

Если Ваши данные строки также маркированы значительно, как в регионах или годы или другие значения, то добавление именованных диапазонов и использование пересечь оператор могут сделать некоторые замечательные вещи, такой как, если именованный диапазон TotalSales обращается к столбцу с объемами продаж в нем и именованным диапазоном, Калифорния относится ко всем (всем) строкам с данными Калифорнии — не обязательно непрерывный — затем формула =Sum(TotalSales California1) была бы сумма пересечения тех двух.

0
ответ дан 24.11.2019, 03:43

Теги

Похожие вопросы