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

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

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

Войти
Новости: Вы можете задать вопрос по LibreOffice или Apache OpenOffice  без регистрации, используя форму
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Поиск и выборка с таблиц  (Прочитано 3747 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Geldor
Участник
**
Offline Offline

Пол: Мужской
Сообщений: 5



« Стартовое сообщение: 2 Сентябрь 2016, 17:17 »

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

Дано:
(Таблица 1). В ней 2 колонки, во второй колонке от 1 до 3 цифр.
Страна   || Код
Украина ||  380
Россия   ||  7
Бельгия  || 32
....

(Таблица 2). В ней просто 1 длинный столбик из рандомных номеров, вида:
38050773383
79112002293
324558370704
...

Я же хочу сделать так, чтобы в (Таблице 2) рядом рядом был еще столбик в котором будет извлечен(из имеющегося столбика) код страны, а еще рядом, будет написано название страны.
Т.е. чтобы (Таблица 2) приняла вид:
38050773383  || 380  || Украина
79112002293  || 7  || Россия
324558370704  || 32  || Бельгия
...

Поначалу, я пытался просто обрезать номер слева с помощью MID(). Оставив только 3 цифры. Но вот некоторые коды состоят с 1(или 2) цифр. И код России "получится" 791. Думал сделать тройное условие IF, обрезая по одной цифре до 79 и 7 и поочередно сравнивания трижды со всеми полями во втором столибке (Таблицы 1). А в Таблице 1 200+ значений... Представляете какая строка сравнения IF будет? Calc зависнет же  Смеющийся Как грамотно обрезать? А после того как обрезал, я так понимаю нужно выполнить для третьего столбика(с названием) вот такую процедуру, как описано здесь? http://www.planetaexcel.ru/techniques/2/92/ Естественно, заменив на формулы Calc.

На 99% я уверен, что в даном случае мыслю просто неправильно и не в том направлении, и должны быть какие-то более логичные и элегантные способы решения этой на первой взгляд несложной задачи.  Непонимающий
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

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


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


WWW
« Ответ #1: 2 Сентябрь 2016, 17:31 »

Извини, но не выйдет... И не потому, что три вложенные IF не сработают, а потому что в (Таблица 1) у тебя должны быть строки
Россия   ||  7
и
Казахстан   ||  7

То есть по "семёрке" ты однозначно страну не вычислишь
Записан

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

Пол: Мужской
Сообщений: 5



« Ответ #2: 2 Сентябрь 2016, 17:44 »

То есть по "семёрке" ты однозначно страну не вычислишь
Да, есть такое. Но в даном случае, разрешается просто сделать(обобщить)
Россия/Казахстан || 7
И дальше уже самому разобраться с конкретными номерами. По крайней мере круг гораздо сужается.

Поэтому, этот момент не учитываем. Все значения кодов будут разные.

Т.е. меня интересует можно ли как-то еще принципиально решить проблему кроме горы вложений IF?(в которых очень легко запутаться будет). И вообще, такое ощущение, что это будет своеобразный "говнокод", как у девелоперов говорят Улыбка
« Последнее редактирование: 2 Сентябрь 2016, 17:52 от Geldor » Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

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


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


WWW
« Ответ #3: 2 Сентябрь 2016, 18:06 »

Ну, мы здесь вместо "говнокод" обычно используем слово "костыль"
И вообще-то к трем вложенным IF это не относится - запутаться в трёх IF можно, но сложно... Какая там максимальная длина кода? Три? Четыре цифры? Больше?
Записан

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

Пол: Мужской
Сообщений: 72


« Ответ #4: 2 Сентябрь 2016, 18:10 »

Как вариант - для упрощения задачи и решения: вторую таблицу разнести на два поля/столба - собственно номер и отдельно код. С этим будут заморочки - см. количество знаков в номере: менее 11, равно 11, более 11; да и цифр в номере как угадать - село, город - 5,6,7 знаков?
« Последнее редактирование: 2 Сентябрь 2016, 18:12 от TimSha » Записан

"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. Подмигивающий
rami
Гуру
*******
Online Online

Пол: Мужской
Сообщений: 2 658


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #5: 2 Сентябрь 2016, 18:11 »

Какая там максимальная длина кода? Три? Четыре цифры? Больше?
Начинать нужно с таблицы используемых кодов, может не все коды нужны. Автор вопроса должен выложить файл с образцами входных данных и таблицей нужных кодов.
« Последнее редактирование: 2 Сентябрь 2016, 18:13 от rami » Записан

Geldor
Участник
**
Offline Offline

Пол: Мужской
Сообщений: 5



« Ответ #6: 2 Сентябрь 2016, 18:29 »

И вообще-то к трем вложенным IF это не относится - запутаться в трёх IF можно, но сложно... Какая там максимальная длина кода? Три? Четыре цифры? Больше?
Достаточно три цифры. Просто в каждом условии IF же будет типа похожей процедуры поиска диапазона значений(как в ссылке что я скинул в 1м сообщении). Получается нормальная такая строка в итоге. А я и в коротенькой формуле MID разбирался полчаса, пока не раздуплил в чем ошибки Улыбка
В общем, вопрос не у времени тут больше, а у принципиальном желании понять, что можно улучшить в алгоритмах подобного рода. А как вы уже сказали, "костыли" то они и в африке "костыли"...


Как вариант - для упрощения задачи и решения: вторую таблицу разнести на два поля/столба - собственно номер и отдельно код. С кодом будут заморочки - см. количество знаков в номере: менее 11, равно 11, более 11.
Хм, почему именно 11?

Начинать нужно с таблицы используемых кодов, может не все коды нужны.
вы правы, совсем уж экзотических стран нету, поэтому хоть список и немалый, но он в пределах от 1 до 3 цифр кода.

И прокомментируйте, пожалуйста, ссылку которую я скидывал(планетаексель). Это годится в даном случае, для того чтобы найти нужные строки в таблице кодов(таблице 1) ?
Записан
Geldor
Участник
**
Offline Offline

Пол: Мужской
Сообщений: 5



« Ответ #7: 2 Сентябрь 2016, 18:52 »

Автор вопроса должен выложить файл с образцами входных данных и таблицей нужных кодов.

* пример.ods (16.87 Кб - загружено 17 раз.)
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

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


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


WWW
« Ответ #8: 2 Сентябрь 2016, 19:03 »

И прокомментируйте, пожалуйста, ссылку которую я скидывал(планетаексель). Это годится в даном случае, для того чтобы найти нужные строки в таблице кодов(таблице 1) ?
Ну, почему ради обычного VLOOKUP (ВПР в русскоязычном Экселе) нужно лезть куда-то кроме этого вот форума, а? Просто пишем в строке поиска "VLOOKUP таблица" и сразу находим кучу материала. Например, Поиск по списку значений из других списков
Записан

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

Пол: Мужской
Сообщений: 72


« Ответ #9: 2 Сентябрь 2016, 19:10 »

почему именно 11?
Как правило, но мо быть и другое...
Во всяком случае остается пока в силе: "...при звонках абонентам операторов других государств, необходимо знать  международные коды  сотовой связи и коды стран. Формат номера при наборе выглядит следующим образом: +7 – 10 – международный код страны – код города абонента – номер абонента."
Записан

"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. Подмигивающий
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

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


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


WWW
« Ответ #10: 2 Сентябрь 2016, 19:13 »

Для какого офиса нужна формула?
Записан

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

Пол: Мужской
Сообщений: 2 658


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #11: 2 Сентябрь 2016, 19:32 »

Для какого офиса нужна формула?
OpenOffice (либра не признаёт документ своим)
Записан

Geldor
Участник
**
Offline Offline

Пол: Мужской
Сообщений: 5



« Ответ #12: 2 Сентябрь 2016, 19:50 »

Для какого офиса нужна формула?
Я использую Calc от Openoffice.

Файлик с примером тут http://forumooo.ru/index.php/topic,5848.0/msg,37350.html


Ну, почему ради обычного VLOOKUP (ВПР в русскоязычном Экселе) нужно лезть куда-то кроме этого вот форума, а? Просто пишем в строке поиска "VLOOKUP таблица" и сразу находим кучу материала. Например, Поиск по списку значений из других списков
Да пока что этот "влукап" еще китайская грамота В замешательстве Сейчас в процессе разбирания тонны материала, после того как нагуглил по "поиск в столбце". Надеюсь, не зря пытаюсь разобраться, и что эта формула в даной задаче "в тему" будет.
Записан
rami
Гуру
*******
Online Online

Пол: Мужской
Сообщений: 2 658


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #13: 2 Сентябрь 2016, 21:19 »

Вот костыль от меня Смеющийся

* КодыСтран.ods (17.1 Кб - загружено 19 раз.)
« Последнее редактирование: 2 Сентябрь 2016, 22:20 от rami » Записан

JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

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


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


WWW
« Ответ #14: 2 Сентябрь 2016, 22:05 »

Ага... А если надумаешь установить LibreOffice, то тогда костыль и от меня

* Пример поиска кода страны.ods (17.96 Кб - загружено 21 раз.)
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

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