Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

21 Май 2019, 02:19 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Часто задаваемые вопросы по LibreOffice и Apache OpenOffice.org
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Определение номера строки [РЕШЕНО]  (Прочитано 11536 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Xy
Участник
**
Offline Offline

Сообщений: 9


« Стартовое сообщение: 19 Май 2012, 11:31 »

Добрые люди, подскажите пожалуйста. Как определить номер строки по искомому значению в определённом столбце. Например, есть значение в ячейке "H5". По столбцу "B" необходимо найти ячейку "Bi" с тем же значением что и "H5", и определить номер строки ячейки "Bi". Как записать формулу такой процедуры?
« Последнее редактирование: 23 Май 2012, 09:08 от Xy » Записан
VlhOwn
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Ростов-на-Дону
Сообщений: 1 076


« Ответ #1: 19 Май 2012, 13:06 »

=MATCH(H5;B1:B1000)
Заметьте, что MATCH дает смещение найденного значения относительно начала диапазона поиска, так что если диапазон начинается не с первой ячейки, придется делать соответствующую поправку.
Записан
Xy
Участник
**
Offline Offline

Сообщений: 9


« Ответ #2: 19 Май 2012, 13:54 »

Ув. VlhOwn, спасибо за ответ. В связи с этим у меня имеется продолжение вопроса. Определив номер строки, как прописать значение любой ячейки по этой строке? Например, с помощью команды MATCH, мы определили искомую строку. Как присвоить произвольной ячейке, допустим J1, значение ячейки со следующими координатами: "строка" - MATCH(H5;B1:B1000), "столбец" J-6, то есть на 6 столбцов левее столбца J. Возможно ли решение такой задачи? Непонимающий
Записан
VlhOwn
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Ростов-на-Дону
Сообщений: 1 076


« Ответ #3: 19 Май 2012, 16:39 »

J1: =OFFSET(J1;MATCH(H5;B1:B1000)-1;-6)

Раздел справки: Функции электронных таблиц - почитайте, там много интересного.
« Последнее редактирование: 19 Май 2012, 16:41 от VlhOwn » Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 764


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #4: 20 Май 2012, 21:26 »

Если не хочется комбинировать в рамках одной формулы несколько функций (OFFSET(MATCH()), INDEX(MATCH())) и т.п.), можно воспользоваться функцией VLOOKUP()
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
Xy
Участник
**
Offline Offline

Сообщений: 9


« Ответ #5: 21 Май 2012, 15:21 »

J1: =OFFSET(J1;MATCH(H5;B1:B1000)-1;-6)
Не очень понятно, почему указан сдвиг на строку выше относительно строки определённой командой MATCH. Например, при записи =OFFSET(J6;MATCH(H10;B1:B1000)-1;-6) в случае, если значение в ячейке H10 указывает на строку 1, в ячейку J6 возвращается значение ячейки D6, а не D1. По поводу VLOOKUP. Честно говоря, путаюсь в синтаксисе формул, поскольку являюсь новичком. Не могли бы Вы указать пример написания формулы для вышеописанного случая.
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 764


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #6: 21 Май 2012, 18:02 »

Для вышеописанного случая, наверное, не смогу - все диапазоны и ячейки со значениями указал VlhOwn, а не Вы. Поэтому не уверен, что смогу написать варианты формул, которые в Вашей таблице сразу же и заработают.
Ознакомьтесь с приложенным файлом. Возможно, он немного поможет в освоении функций.

[вложение удалено Администратором]
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
VlhOwn
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Ростов-на-Дону
Сообщений: 1 076


« Ответ #7: 21 Май 2012, 18:37 »

Как присвоить произвольной ячейке, допустим J1, значение ячейки со следующими координатами: "строка" - MATCH(H5;B1:B1000), "столбец" J-6, то есть на 6 столбцов левее столбца J

OFFSET(J1;MATCH(H5;B1:B1000)-1;-6)

OFFSET(J1 ...) задает смещение целевой ячейки относительно 1-й строки и j-того столбца (т.е. ячейки J1) на MATCH(H5;B1:B1000)-1 строк вниз и на (-6) столбцов вправо (т.е. на 6 столбцов влево).

Если MATCH(H5;B1:B1000) дает значение 1, то это означает, что искомое значение находится в первой строке диапазона B1:B1000, что смещения относительно начала диапазона нет, смещаться по строкам не нужно. Поэтому вычитаем 1, чтобы задать нулевое смещение.

=OFFSET(J6;MATCH(H10;B1:B1000)-1;-6) задает смещение относительно J6, а не J1, поэтому Вы и получаете D6. В качестве опорной точки следует использовать верхнюю левую ячейку диапазона. В Вашем случае - J1.

С VLOOKUP искомая формула будет выглядеть так:
=VLOOKUP(H5,B1:D1000;3)
Здесь 3 - номер столбца D в диапазоне ячеек B1:D1000.
« Последнее редактирование: 21 Май 2012, 18:56 от VlhOwn » Записан
Xy
Участник
**
Offline Offline

Сообщений: 9


« Ответ #8: 22 Май 2012, 17:42 »

Хмм, похоже я разобрался. В общем виде формула получила такой вид. OFFSET(Ji;MATCH(Ni+4;B1:B1000)-ROW(Ji);-6). Однако,я столкнулся с проблемой другого рода. При копировании номера столбцов сдвигаются (как впрочем и нужно), и сдвигается также область массива по столбцу B. Это нежелательно, и приходится постоянно "ручками" править формулу. Нет ли иной формы записи, как к примеру в Excel, по столбцу (B:B)??
Записан
Helen
Администратор
**
Offline Offline

Пол: Женский
Расположение: Екатеринбург
Сообщений: 2 561


WWW
« Ответ #9: 22 Май 2012, 17:46 »

B$1:B$1000
$B$1:$B$1000
Записан
Xy
Участник
**
Offline Offline

Сообщений: 9


« Ответ #10: 22 Май 2012, 20:01 »

Спасибо Вам, ув. Helen. Возник ещё один вопрос, возможно кто-нибудь подскажет направление, где искать. Существует ли какая-либо команда, по которой можно ориентироваться на ту ячейку произвольной строки, в которой помещена крайняя запись. То есть, если строка заполняется слева направо, есть необходимость ориентироваться на крайнюю запись в этой строке. Возможно ли это с помощью команд Calc?
Записан
VlhOwn
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Ростов-на-Дону
Сообщений: 1 076


« Ответ #11: 23 Май 2012, 07:35 »

OFFSET(Ji;MATCH(Ni+4;B1:B1000)-ROW(Ji);-6)
Ваша формула эквивалентна приводившейся ранее OFFSET(J1;MATCH(Ni+4;B1:B1000)-1;-6), в которой нет лишнего вычисления ROW.
_________________________________
На нашем форуме мы стараемся придерживаться принципа "одна тема - один вопрос", в силу которого в теме рассматривается только один вопрос. Это существенно облегчает в дальнейшем поиск информации по форуму. Если в ходе обсуждения у Вас возникли дополнительные вопросы, не связанные непосредственно с вопросом темы, заведите новые темы и в них сформулируйте возникшие вопросы.
У нас также принято, что топикстартер, получив удовлетворяющий его ответ на вопрос темы, добавляет в название темы слово "РЕШЕНО".

« Последнее редактирование: 23 Май 2012, 07:37 от VlhOwn » Записан
Xy
Участник
**
Offline Offline

Сообщений: 9


« Ответ #12: 23 Май 2012, 08:18 »

Хорошо, не подскажите, как редактировать название темы? В принципе, проблема, озвученная в первом сообщении темы успешно решена.
Записан
Helen
Администратор
**
Offline Offline

Пол: Женский
Расположение: Екатеринбург
Сообщений: 2 561


WWW
« Ответ #13: 23 Май 2012, 08:25 »

чтобы отредактировать название всей темы, нужно отредактировать его в первом сообщении
Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!