Автор Тема: вопросы по MS Excel  (Прочитано 3333 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Planestranger

  • Пользователь
  • Сообщений: 1837
  • Пол: Мужской
    • Просмотр профиля
вопросы по MS Excel
« : 05 Январь 2012, 22:54:52 »
Так уж сложилось, что я не бухгалтер... и с этой софтиной ранее соприкасался лишь когда-то давно на уроках информатики. Поэтому знания мои минимальны. Поиск в хелпах на тему диапазонов значений мне почему-то не помог.
Суть вопроса.
Есть таблица, в которой есть столбец со значениями X и столбец со значениями Y. Требуется найти максимальное значение их разности. Т.е. при X1..Xi и Y1..Yi нужно найти ту строку, где (Xn-Yn) будет наибольшим. Как это сделать?
Задача банальная, и будь эта инфа в какой-нибудь БД, всё совершенно ясно. А здесь приходится пользоваться формулами самой программы, которые выглядят нексколько специфичными по сравнению с возможностями любого языка программирования.

И ещё один вопрос про линки в этих же формулах. Допустим, я нашёл это число. Как потом передать другой функции номер строки, чтобы она могла получить данные из определённой ячейки этой строки?

Оффлайн igarexa

  • Пользователь
  • Сообщений: 348
  • Пол: Мужской
  • Да! Это мой новый статус!..
    • Просмотр профиля
Re: вопросы по MS Excel
« Ответ #1 : 08 Январь 2012, 04:04:17 »
Честно говоря я сам очень мало что знаю в экселе, но возникли 2 идеи. Сразу говорю что могу ошибаться.
1. Сначала вычислить разности от X1..Xi и Y1..Yi и вывести результаты куда нибудь в свободное место. А там уже среди них искать максимальное по другой.
2. Возможно надо писать самому макрос, и уже с помощью его уже искать необходимое.

Может быть я мало чем помог, но хотя бы могу навести на мысль :)

Оффлайн gepar

  • Пользователь
  • Сообщений: 10150
  • Пол: Мужской
  • ▂ ▃ ▄ ▅ ▆ ▇ █
    • Просмотр профиля
Re: вопросы по MS Excel
« Ответ #2 : 08 Январь 2012, 04:25:35 »
Напиши небольшой макрос себе для вычислений, который сначала ищет столбец x  в котором значения наибольшие, а потом ищет столбец y в котором значения наименьшие. Ну и потом как-то их тебе выделяет (цветом можно, если хочешь, selection же не выставить сразу на два столбца там если они не соседние, или там внизу подписывает строчкой "ВОТ ОНО") или что тебе там надо сделать. Basic учил? Так вот vba это тоже самое, только присутствует ещё объектная модель от microsoft.

Добавлено позже:
Цитата: lost_hero
Как потом передать другой функции номер строки, чтобы она могла получить данные из определённой ячейки этой строки?
Ну так и передаёшь вызывая функцию в виде объекта range (диапазон те). А та уже может двигаться по этому диапазону с возможностью двух адресаций: просто по номеру и что-то типа как-будто бы эта строка находилась в самом начале ... хотя с этим тебе заморачиваться не стоит и продвижений по номеру достаточно будет.

Добавлено позже:
Пиши если вопросы будут, я хоть применю свои познания на vba, ато они мне ни пользы ни денег не принесли и я в них уже было разочаровался, так может хоть тебе чего подскажу если время свободное будет ковыряться в экселе.

Оффлайн Planestranger

  • Пользователь
  • Сообщений: 1837
  • Пол: Мужской
    • Просмотр профиля
Re: вопросы по MS Excel
« Ответ #3 : 10 Январь 2012, 06:56:30 »
Цитата: igarexa
1. Сначала вычислить разности от X1..Xi и Y1..Yi и вывести результаты куда нибудь в свободное место.
так ведь избыточность данных же.

Цитата: gepar
Ну и потом как-то их тебе выделяет (цветом можно, если хочешь, selection же не выставить сразу на два столбца там если они не соседние, или там внизу подписывает строчкой "ВОТ ОНО") или что тебе там надо сделать.
надо чтобы передал значение из другой ячейки этой строки в формулу, вычисляемую в другом месте таблицы. т.е. тупо к примеру: столбцы A, B, C, D. сравниваются значения столбцов A и B. находится максимальная разность. допустим, в 128 строке... в итоге требуется передать в формулу в столбце D значение, хранящееся в C128.

VBA действительно решает эту проблему. правда, моё давнишнее знакомство с TurboBasic мало помогает с VBA... и code inspector тут в общем совсем не тот, что в VS. в частности что-то у меня к элементам массивов обратиться не получается... если можешь, глянь, пожалуйста.

« Последнее редактирование: 10 Январь 2012, 07:52:57 от lost_hero »