Ru-Board.club
← Вернуться в раздел «Программы»

» Электронные таблицы

Автор: mc_karov
Дата сообщения: 01.03.2014 10:22
Помогите найти удобную электронную таблицу. Основное и главное условие - удобная косвенная адресация.
В конце 80-х и начале 90-х была популярна электронная таблица Суперкалк. В своё время она значительно упростила разработку многих задач. В отличие от ныне популярного Excel в ней была реализованна простая возможность обратиться не только к конкретной ячейке, но и к ячейке адрес которой лежит в ячейке, к которой обращаются. Эта возможность позволяла легко строить условные операторы, циклы и т.д. К тому же эта возможность была встроенной, то есть в адресованной ячейке опять могла быть ссылка на адрес. Эта возможность, а также удобная возможность создавать и использовать макросы на порядок упрощала создание и отладку некоторых видов задач. Поскольку последствия любого изменения сразу отражались на экране, то сам процесс отладки также значительно упрощался и задачу, на которую уходил месяц при программировании на обычном языке в суперкалке создавалась и отлаживалась за день. Главный недостаток - маленький объём таблицы.
Хотелось бы узнать о существовании чего-нибудь подобного сейчас. Ещё раз подчеркну - главное условие это возможность косвенной адресации, чего нет в нынешнем Excel'е.
Автор: Kommunist
Дата сообщения: 01.03.2014 10:44
Как это у Excel нет косвенной адресации??? ЕСТЬ!
http://www.cpearson.com/excel/indirect.htm
Автор: mc_karov
Дата сообщения: 01.03.2014 11:33
Kommunist

Цитата:
Как это у Excel нет косвенной адресации??? ЕСТЬ!

Если мой несколько подзабытый английский меня не подвёл, то адрес указывается как символьная строка. Я себе не очень представляю как можно формировать адрес исходя из символьного представления.
То есть 1 столбец вправо и 2 строки вниз. Были бы числа 1 и 2 всё просто, но как С1 в трансформировать в D3?
Я не говорю, что в Excel нет вообще никакого доступа к адресу. Просто отсутствует или скрыт инструмент для удобной работы с адресом.
Автор: Kommunist
Дата сообщения: 01.03.2014 11:48

Цитата:
mc_karov
Я себе не очень представляю как можно формировать адрес исходя из символьного представления.

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

You can use the INDIRECT function in conjunction with the ADDRESS function. The ADDRESS function uses row and column numbers to create a string address. For example, the formula =ADDRESS(5,6) returns the string $F$5, since $F$5 is the 5th row of column 6.
Автор: mc_karov
Дата сообщения: 01.03.2014 13:08
Kommunist

Цитата:
formula  =ADDRESS(5,6) returns the string  $F$5

То есть строку символов возвращает. Из символьной строки $F$5 я могу обратиться к одноименной ячейке только при помощи вспомогательных функций. Да и 5,6 - это числа. Ячейки, чтобы выбрать из них значения я уже в функцию ADDRESS подставить не могу.
Правда в моей версии Excel и INDIRECT нет, но это дело не меняет.
Автор: Kommunist
Дата сообщения: 01.03.2014 17:42

Цитата:
mc_karov
Ячейки, чтобы выбрать из них значения я уже в функцию ADDRESS подставить не могу.

А может всё-же нужно внимательнее прочитать статью по ссылке? Там всё есть.

Hint 1
=SUM(INDIRECT("A"&B1&":A"&C1))

Hint 2
А что мешает вместо 5 и 6 в примере ADDRESS с подставить ячейку?

Hint 3
http://office.microsoft.com/en-gb/excel-help/indirect-function-HP010062413.aspx


Цитата:
mc_karov
Правда в моей версии Excel и INDIRECT нет

Это какой-же древний должен быть Excel? Судя по информации от Microsoft, INDIRECT появился в Excel 2007.

Автор: mc_karov
Дата сообщения: 02.03.2014 11:46
Kommunist
Ну для меня 2007 год совсем не древность.
Хочу поблагодарить за моё просвящение относительно новых возможностей в Exsele. Действительно, это несколько упрощает работу по сравнению с доисторическим Exsel'eм. Если не найдётся ничего лучшего буду пользоваться этим.
Попробую ещё раз объяснить что я хочу. Что мы имеем в Excel'е. Мы вытаскиваем адрес, преобразуем его в строку символов, иногда приходится применять и конкатенцию, и используя функцию INDIRECT формируем адресный объект, который возпринимают определённые функции. В результате формируются формулы число знаков в которых переваливает за сотню, к тому же с не очень внятным синтаксисом.
Мне бы хотелось иметь переменные, которые воспринимались бы не как символы, а как определяющие адрес. К тому же в поле адресов имеется естественная метрика в отличие от символьного представления, чем существенно увеличиваются возможности для программирования.
Чтобы в ячейке находилась бы адресная переменная, либо числовая, которую можно было бы легко по определенным правилам трансформировать в адрес, но не символьная.
Какие в настоящее время существуют электронные таблицы с такими возможностями?

Автор: Kommunist
Дата сообщения: 02.03.2014 12:58
mc_karov
Я понимаю, что не нравится в INDIRECT. Код использующий INDIRECT будет трудно читаемым. Но это скорее вопрос привычки.

По поводу других таблиц, помимо Excel заслуживает внимание ещё пожалуй только Corel WordPerfect Office X6. Подозреваю, что у входящей в состав WordPerfect таблицы Quattro Pro функциональность по косвенной адресации будет аналогична Excel. Но точно не скажу, нужно смотреть.

Но я бы не искал экзотических таблиц, а лучше бы потратил время на изучение Excel.
Автор: mc_karov
Дата сообщения: 03.03.2014 20:42
Kommunist

Цитата:
Но я бы не искал экзотических таблиц, а лучше бы потратил время на изучение Excel.

Я понимаю, что Excel - общечеловеческая ценность, но всё таки инструментарий должен соответствовать поставленным задачам. При определённой сноровке можно научиться забивать гвозди скалкой, но это значительно увеличит время работы.
Здесь аналогично. Отсутствие адресного формата сильно снижает функциональность электронной таблицы.
Но раз никто ничего другого не посоветует (сам я ничего не смог подобрать), то придётся работать на excel'e. Лет 20 назад при переходе из Суперкалка на Excel время на програмирование увеличилось в разы и далеко не всё получалось.
Автор: vlary
Дата сообщения: 03.03.2014 21:22
mc_karov

Цитата:
В конце 80-х и начале 90-х была популярна электронная таблица Суперкалк
Ну, если такая ностальгия, почему бы не использовать LibreOffice Calc?
Цитата:
INDIRECT

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

Для функциональной совместимости функции ADDRESS и INDIRECT поддерживают необязательный параметр, который позволяет указать, использовать ли вместо нотации адреса A1 нотацию R1C1.

В функции ADDRESS этот параметр вставляется в качестве четвертого параметра, смещая при этом необязательный параметр имени листа на пятое место.

В функции INDIRECT этот параметр добавляется в качестве второго параметра.

В обеих функциях, если аргумент вставлен со значением 0, используется нотация R1C1. Если аргумент не используется или его значение не равно нулю, используется нотация A1.

Если используется нотация R1C1, функция ADDRESS возвращает строки адреса, используя в качестве разделителя имен листов восклицательный знак '!', а функция INDIRECT ожидает, что в качестве разделителя имен листов используется восклицательный знак. В нотации А1 обе функции по-прежнему используют в качестве разделителя имен листов точку '.'.


Страницы: 1

Предыдущая тема: Дубль


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.