2010-06-04 4 views
10

Извините, если это было задано раньше, но я не могу его найти. Я ищу авторитетное описание всех допустимых строк, которые могут быть использованы в качестве ссылки, например, «A1: C5», «$ A: $ A», $ A2 »и т. Д. Это кажется довольно простой вещью, я потратил впустую часы, пытаясь найти его. Все, что я могу найти, это болото «полезных» примеров, но никаких ссылок.Авторитетный синтаксис диапазона значений Excel

+0

вы также ищете примеры notatnion R1C1? – Marek

+0

Также есть табличные ссылки на list_name [column], list_name [#Headers] [column]. Мне бы очень хотелось увидеть полный список, это гораздо больше, чем регулярное выражение R1C1. –

+1

http://office.microsoft.com/en-us/excel-help/using-structured-references-with-excel- tables-HA010155686.aspx –

ответ

0

Я не знаю, есть ли список форматов, потому что на самом деле существует только формат 2: A1 и формат R1C1. Вы не указываете формат диапазона, когда используете A1: C3, потому что: на самом деле это оператор диапазона.

Варианты $ A $ 1, $ A1, A $ 1 - это только варианты - варианты , определяя, что при копировании ссылки координата перед $ не должна меняться, но в противном случае координата может измениться относительно копии.

R1C1 более сложный, поскольку он позволяет относительность. R3C2 является абсолютной ссылкой на Row 3, Column 2 (B3 в нотации A1), а использование фигурных скобок [] в ссылке R1C1 указывает, что оно относится к текущей ячейке R [-2] C [1] из ячейки R3C2 будет давать R1C3 (C1).

Почти забыл. Также может быть ссылка на ячейки на другом листе. «Лист2»! IV256

Я использую

(((\w*)|(\'[^\']*\')|(\"[^\"]*\"))!)?\$?([a-z]{1,3})\$?(\d+) 

как регулярное выражение для определения ссылок на ячейки в формате А1

+3

Спасибо, но это не авторитетная ссылка, которую я искал, и, как вы можете видеть, требуется довольно много предложений, чтобы даже начать описывать возможности: вы забыли несколько случаев, таких как A: A (целое столбец), 1: 1 (целая строка) и, возможно, другие, о которых я не знаю. Это абсолютно пугает ум, что синтаксис этого диапазона должен (по-видимому) нигде не указываться. Это * этот * стандарт документации для устаревших API Microsoft? Cornelius: да, также RC-стиль, то есть любые и все допустимые строки диапазона, не ограничиваясь примерами, которые я дал в моем OP. – olefevre

+0

Просто любопытство ... Для чего вы используете это регулярное выражение? –

+0

@belisarius Я использую его в механизме вычисления PHPExcel для идентификации ссылок на ячейки - на данный момент я не активно поддерживаю прямые ссылки на столбцы или строки (например, B: B или 1: 1 в формулах) + используется для идентификации ссылок на ячейки, которые может потребоваться изменение при вставке новой строки или столбца на листе –

0

Проблема заключается в том, что существует множество операторов (Range, пересекаться, неявное пересекаются и т. д.), функции (INDEX, OFFSET, CHOOSE, INDIRECT + пользовательские функции), Определенные имена и структурированные ссылки в таблице и т. д., которые могут быть отменены для предоставления допустимой ссылки диапазона. Таким образом, чтобы выполнить полную работу, нужно разбор произвольных формул Excel. И это также зависит от версии Excel.

Если все, что вы хотите сделать, это работа со стандартными явными ссылками на диапазон, обычный трюк состоит в том, чтобы преобразовать строку в нотацию R1C1 и работать с ней. Синтаксис ссылок R1C1 достаточно хорошо описан в документации Excel.

Существует также BNF-описание формул Excel, доступных где-то, но я потерял ссылку.

+1

Да, существует множество функций, возвращающих диапазон, но я специально задавал вопрос о литералах диапазона. – olefevre

+0

Я подозреваю, что BNF, что @Charleswilliams имеет в виду [здесь] (http://homepages.ecs.vuw.ac.nz/~elvis/db/Excel.shtml). Он не является авторитетным, но содержит краткие описания синтаксиса R1C1 и Range, который охватывает все, что я видел за последнее десятилетие +. –

0

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

Если строки/столбцы вставляются с Excel жить (в отличие от взлома книги с помощью другого приложение), любые ссылки будут автоматически обновляться до нового адреса.

0

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

Этаких-гид на то, что вы просите, и источник для тех, кто ищет дополнительный documentaion: http://www.excelfunctions.net/Excel-Reference-Styles.html

я собираюсь начать с 5 широкими категориями - A1, R1C1, таблица, формула , и ссылки VBA. Я буду игнорировать другие программы, которые могут взаимодействовать с Excel на данный момент (хотя я мог бы добавить в Python, если это официально добавлено)

Все примеры будут использовать стиль ссылки A1, поскольку они более интуитивно понятны для неопытный пользователь.

A1 Тип Артикул:

стиль A1 говорит нам координаты данной ячейки. Буквенно часть говорит нам, какой столбец мы в то время как цифровая часть говорит нам, какие строки мы в

Cell Ссылки:

A1 - основная ссылка на ячейку.. Ссылки на ячейку A1, и при перетаскивании формул через столбцы и строки это изменится. Например, если ваша формула находится в C1, и вы переместите ее на D2, теперь она будет ссылаться на B2.

Хорошее применение: сравнение двух листов друг с другом. ='Sheet1'!A1='Sheet2'!A1 будет сравнивать данные на листе 1 с листом 2 и давать true/false, если они совпадают или нет. Формулу можно легко сдвинуть сбоку и вверх/вниз для дополнительных сравнений.

$A1 - Это блокирует колонку. Когда вы перетаскиваете формулы, строка изменится, но столбец не будет. Полезно, если вы всегда хотите ссылаться на один и тот же столбец в формуле. Например, если ваша формула находится в C1, и вы переместите ее на D2, теперь она будет ссылаться на $ A2.

Полезный пример: Формулы в вспомогательных столбцах. A1 = $C1*2 будет аккуратно скользить вниз без каких-либо проблем, и если вы переместите его на столбец B, он будет продолжать ссылаться на C.

A$1 - Это блокирует строку. Когда вы перетаскиваете формулы, столбец изменится, но строка не будет. Полезно, если вы всегда хотите ссылаться на одну и ту же строку в формуле. Например, если ваша формула находится в C1, и вы переместите ее на D2, теперь она будет ссылаться на B $ 1.

$A$1 - Это блокирует ссылку на ячейку. Независимо от того, как вы перетаскиваете формулы вокруг, он будет продолжать ссылаться на ячейку A1. Например, если ваша формула находится в C1, и вы переместите ее на D2, теперь она будет ссылаться на $ A $ 1.

Полезный пример: Постоянный множитель для всех чисел.

Диапазон Ссылка:

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

A1 Ссылки разбиты следующим образом:

Alphanumberic порции - Что столбец мы в числовой части - Что строку мы в $ - Запирание части сразу после

A1:B2 - Ссылки сетка ячеек с A1 находится в верхнем левом углу, а B2 - в правом нижнем углу. Обе части формулы будут скользить при перемещении. Обычно рекомендуется не иметь разблокированных ссылок в формулах, применяемых в отношении нескольких ячеек, поскольку диапазон ссылок также будет перемещаться. Например, если у вас есть = Sum (A1: B2) в C1, и вы переместите его на D2, он преобразуется в = Sum (B2: C3).

Разблокированные ссылки диапазона чаще всего вызывают проблемы в формулах vlookup, где диапазон ссылок заканчивается изменением, когда люди сдвигают формулу вниз.

$A$1:$B$2 - ссылки на сетку ячеек с A1 находится в верхнем левом углу, а B2 - внизу справа.Эта ссылка на диапазон не изменится, даже если она перемещена. Например, если у вас есть = Сумма ($ A $ 1: $ B $ 2) в C1, и вы переместите ее на D2, она преобразуется в = Сумма ($ A $ 1: $ B $ 2)

$A$1:A2 - Эти замки первой ячейки, но оставляет вторую часть эталонной гибкой. Это очень полезно, если вы хотите увидеть «Все, что произошло до сих пор» - например, если вы нумеруете список, в сочетании с =countifs («Какой экземпляр возникновения это один?») Например, если у вас есть = Sum ($ A $ 1: A2) в C1, и вы переместите его на D2, он преобразуется в = Сумма ($ A $ 1: B3)

Аналогичные эффекты могут использоваться с $A$1:B1, идущими горизонтально.

A:A - Это дает всю колонку A. Так как она разблокирована, она будет скользить. Полезно для захвата всего в данной колонке. Например, если у вас есть = Sum (A: A) в C1, и вы переместите его на D2, он преобразуется в = Сумма (B: B)

$A:A - Это дает всю колонку A. Это будет расширяться когда вы переходите, чтобы захватить больше столбцов. Я не могу придумать для этого немедленное практическое применение. Например, если у вас есть = Sum ($ A: A) в C1, и вы переместите его на D2, он преобразуется в = Сумма ($ A: B)

$A:$A - Это дает всю колонку A. Это блокируется в столбце A, даже если вы перемещаете формулы вокруг. Например, если вы имеете = СУММ ($ A: $ A) в С1, и вы переместить его в D2, он будет оставаться в виде = Сумма ($ A: $ A)

Чуть менее известны строки:

1:1 - Весь первый ряд. Разблокирована. Например, если у вас есть = Sum (1: 1) в C2, и вы переместите его на D3, он преобразуется в = Сумма (2: 2)

$1:1 - Вся первая строка. Частично заблокирован. Например, если у вас есть = Сумма ($ 1: 1) в C2, и вы переместите его на D3, он преобразуется в = Сумма ($ 1: 2)

$1:$1 - Вся первая строка. Полностью заблокирован. Например, если у вас есть = Сумма ($ 1: $ 1) в С2, и переместить его в D3, он будет оставаться в = Сумма ($ 1: $ 1)

R1C1 Ссылки

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

R1C2 разбивается, как, например:

R - Строки 1 - Ряд 1 ИЛИ [1] - Мы 1 строку вниз от нашей текущей ячейки C - Столбцы 1 - колонка 1 ИЛИ [1] - Мы находимся в 1 колонке от нашей текущей ячейки

Другими словами, если у вас нет скобок, вы ссылаетесь на ячейку или колонку, о которой идет речь. Если у вас есть скобки, у вас есть относительная ссылка.

Сотовой Литература:

R3C7 является абсолютной ссылкой - третья строка, седьмой столбец. Это будет то же самое, что сказать $G$3 в стиле A1, как описано выше.

R[3]C7 - частично абсолютная, частично относительная ссылка. Это требует «Дайте мне ячейку на 3 строки вниз от текущей ячейки, в столбце 7» (Которая является столбцом G) Если у меня есть это в ячейке A1, я буду ссылаться на ячейку G4. Если я переведу его на ячейку B2, я буду ссылаться на ячейку G5.

R[2]C[-2] - полная относительная ссылка. Вы также можете ссылаться на предыдущие столбцы или строки, как указано знаком -. Если бы у меня была эта формула в ячейке C1, это было бы ссылкой на ячейку A3. Если я переведу формулу на D2, теперь я буду ссылаться на ячейку B4.

ссылка Диапазона:

Таблица Ссылка

Таблица делает ссылки на другие клетки и диапазоны легко и интуитивно. Они разбиты следующим образом:

TableName [ColumnName]

Формула Ссылки

VBA Ссылки

VBA Преобразование из письма к колонке

то, что это приходят несколько раз, меняя номера столбцов на буквы столбцов. Я нашел этот очень полезный фрагмент кода (где-то в Stack Overflow, в настоящее время у меня нет ссылки), чтобы конвертировать номера столбцов в столбцы для удобства использования в VBA.

Function Col_Letter(lngCol As Long) As String 
    'Converts a number (usually generated from an application.match function) to a letter. For example 1 turns into A, 5 turns into E, etc. 
    Dim vArr 
    vArr = Split(Cells(1, lngCol).Address(True, False), "$") 
    Col_Letter = vArr(0) 
End Function 

********* Конструкция **********

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