2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Индекс колонки как переменная или я познаю Excel
Сообщение14.08.2017, 21:43 
Аватара пользователя
Последние три года счастливо жил не прикасаясь к продукции корпорации Microsoft, но жизнь свела с необходимостью работать в Excel.

Итак, вопрос знатокам.

Как можно указать индекс (номер, если так не говорят) колонки в качестве некоторого переменного выражения, ещё и считав его частично из другой ячейки? Например, у меня в ячейке D2 (R2C4 в R1C1-нотации) листа 'first sheet' записано число 3, а я хочу сослаться на ячейку F5 (R5C6) листа 'second sheet' считав 3 из D2 и добавив ещё два, потому что F -- вторая справа колонка от D. Псевдокодом хочу исполнить что-то типа
Код:
='second sheet'!R5C('first sheet'!R2C4+2)


Кажется, это надо делать при помощи функции INDIRECT (ДВССЫЛ в русификации), но мне, во-первых, не удалось подружить её с ячейками на другом листе, во-вторых, всё равно остаётся момент с использованием простенького выражения для индекса колонки (хотим не просто считать её номер, а проделать с ним какое-то преобразованием, например, сложить с заранее подобранным числом).

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

 
 
 
 Re: Индекс колонки как переменная или я познаю Excel
Сообщение14.08.2017, 22:08 
Hasek в сообщении #1240640 писал(а):
Мотивация всего этого: есть таблица с понедельной разбивкой некоторой информации, которая каждую неделю растёт вправо на одну колонку, хотелось бы избавиться от необходимости ручного обновления всех формул, а ограничиться заменой числа в одной ячейке.
Возможно, вам лучше ознакомиться с возможностями функций ВПР/ГПР/ПОИСКПОЗ? Я в похожих ситуациях использовал их.

-- 14.08.2017, 23:12 --

Hasek в сообщении #1240640 писал(а):
Последние три года счастливо жил не прикасаясь к продукции корпорации Microsoft, но жизнь свела с необходимостью работать в Excel.
Несмотря на то, что в целом я разделяю ваше мнение о качестве продукции вышеназванной корпорации, тут я должен заметить, что вот конкретно эксель - отличный продукт и сам по себе, и на две головы выше конкурентов.

 
 
 
 Re: Индекс колонки как переменная или я познаю Excel
Сообщение14.08.2017, 22:30 
Аватара пользователя
rockclimber в сообщении #1240646 писал(а):
Возможно, вам лучше ознакомиться с возможностями функций ВПР/ГПР/ПОИСКПОЗ? Я в похожих ситуациях использовал их.


Нет, это не совсем то. Перечисленные функции (можно ещё ИНДЕКС добавить) нужны для поиска по таблице и возвращения какого-то значения (самый простой пример с ВПР -- ищем где-то в левом столбце, возвращаем значение откуда-то справа из той же строчки), а мне нужно не это. Мне нужно
  • Считать значение номера колонки из ячейки при заданной вручную строке и обратиться к получившейся ячейке на другом листе. В встроенной справке по INDIRECT есть даже почти такой пример: представим, что в ячейке A5 записано 5, а в ячейке B5 -- 62. Тогда
    Код:
    =INDIRECT("B"&A5)

    даст нам 62, т.к. мы считываем 5 из A5 и обращаемся к B5. Печально, но у меня не получилось написать аналогичное работающее выражение, поменяв местами строку и столбец, и ссылаясь на другой лист.
  • В случае успеха предыдущего пункта, понять, как можно оформить некое арифметическое выражение внутри индекса. Например, как условное A5 представлять в виде A(3+2) и т.д. Вот таким наивным образом это не работает, по каким ключевым словам искать тоже не пойму.

 
 
 
 Re: Индекс колонки как переменная или я познаю Excel
Сообщение14.08.2017, 22:57 
Аватара пользователя
Не знаю, правильно ли я поняла, но я написала так:
=ДВССЫЛ(СЦЕПИТЬ("Темы!A";A1+2);ИСТИНА)
Причем в ячейке A1 было число 5. Результатом было содержимое ячейки A7 листа "Темы".

Если вам надо вычислять оба индекса, можно попробовать так:
=ДВССЫЛ(СЦЕПИТЬ("Темы!R";A1-1;"C";A2-4);ЛОЖЬ)

 
 
 
 Re: Индекс колонки как переменная или я познаю Excel
Сообщение14.08.2017, 23:04 
До следующего понедельника я в отпуске, у меня с собой только телефон, а на нем нет экселя...
И я пока не понимаю, как вы от вашей задачи, описанной после фразы "мотивация всего этого", пришли к вашей проблеме (у меня есть подозрение на xy-проблему).
Как я понимаю, вам надо сгенерировать формулу, которая будет ссылаться на другой лист. Для этого формула должна содержать названия листа. В экселе была функция, которая позволяет сгенерировать полную ссылку на ячейку (с указанием файла, листа и собственно ячейки), и функция, которая принимает на вход сгенерированный адрес и возвращает значение по этому адресу. Названия я правда забыл. Попробуйте погуглить по такому описанию.

-- 15.08.2017, 00:05 --

А, вот кажется provincialka про них написала.

 
 
 
 Re: Индекс колонки как переменная или я познаю Excel
Сообщение15.08.2017, 00:39 
Аватара пользователя
provincialka, огромное спасибо! Именно то, что нужно.

 
 
 
 Re: Индекс колонки как переменная или я познаю Excel
Сообщение15.08.2017, 01:17 
Попробуйте так:
Код:
=OFFSET('second sheet'!R5C2,0,'first sheet'!R2C4)

Русского названия не знаю.

 
 
 [ Сообщений: 7 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group