Index · Правила · Поиск· Группы · Регистрация · Личные сообщения· Вход

Список разделов Нужна помощь
 
 
 

Раздел: Нужна помощь Вопрос по Экселю 

Создана: 29 Июня 2004 Втр 22:36:54.
Раздел: "Нужна помощь"
Сообщений в теме: 7, просмотров: 941

  1. 29 Июня 2004 Втр 22:36:54
    Имеется поле, в которое заносятся размеры объекта, например: 10*8*6.5. Это поле используется просто для их отображения, поэтому знака "=" перед ними нет.

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

    Вопрос: можно ли каким-нибудь образом не переписывать этот размер во втором случае вручную, типа:

    =[10*8*6.5]*[коэффицент из другого поля], а поставить ссылку на первое поле, например:

    =[номер поля с размером]*[коэффицент из другого поля]

    Если пытаться просто поставить обыкновенную ссылку, в ответе получается исключительно "#VALUE", ведь размеры в первом поле отображаются как текст, который в расчётах использовать не получается.

    Вопрос
  2. 29 Июня 2004 Втр 22:50:26
    конечно...
    если я правильно понял, ты хочешь лишь менять параметры в ячейках и получать ответ, а не в формуле править...
  3. 30 Июня 2004 Срд 13:13:17
    1. если знаешь кол-во символов(цифр) в размерах (ширина/длина/высота), можно поиграться с текстовыми функциями, такими как (на русском) ЛЕВСИМВ(), ПРАВСИМВ(), ПСТР(), ЗНАЧЕН(). Но при этом кол-во символов(цифр) дожно быть фиксировано.
    2. если кол-во символов может быть разным (пр. то 6, то 10, а то и 120), пиши свою функцию, которая будет выцеплять размеры сначала текстовой строки до первой "*" слева, с конца до правой "*" и между двумя "*".
    3. проще не париться, не умничать, а завести три ячейки - длина, ширина, высота (к тому же так будет проще понять "длинный предмет" или "высокий", хотя если возник вопрос, значит на данном этапе неважно понимать) - и перемножать их.
    Удачи!
  4. 02 Июля 2004 Птн 23:16:45
    Muchnik писал(а) :Если пытаться просто поставить обыкновенную ссылку, в ответе получается исключительно "#VALUE", ведь размеры в первом поле отображаются как текст, который в расчётах использовать не получается. Вопрос

    Естественно, что такая операция не будет осуществлена. И ты сам ответил на свой вопрос:
    Muchnik писал(а):...размеры... отображаются как текст...

    В противном случае произошёл бы автоматический подсчёт произведения трёх данных чисел.
    ЗАВАРКА писал(а):...поэтому проще не париться, не умничать, а завести три ячейки - длина, ширина, высота...
  5. 02 Июля 2004 Птн 23:27:30
    Рассуждать все горазды, но вот дельного ничего предложить не получается.

    Заварка: хорошие идеи, но не совсем подходящие. Кол-во символов может быть разным, а использование 3-х разных полей для ввода размеров не соответствует формату таблицы.

    Написать свою функцию - пожалуй, придётся, если ничего другого не придумается. Просто мне казалось, что должно быть более простое решение проблемы Смайлик :-)

    А длинный предмет или высокий, совершенно неважно.
    Важно, сколько этих предметов помещается в контейнере.

    Похоже, фрихост.омск.орг заработал. Если ещё будет работать, когда домой приду, то выложу туда собственно сам файл (с работы не могу зайти на ФТП).
  6. JIBBZ


    Активист


    Более 10 лет на форуме
    03 Июля 2004 Суб 4:31:27
    2 Muchnik
    Excel у вас англоязычный (точка, а не запятая в дробях и ошибка #VALUE – в русском варианте #ЗНАЧ!), так что простите – названия функций не совпадут.

    Поэтому привожу список:
    Текстовые функции
    НАЙТИ – возвращает позицию начала искомой строки текста в содержащей её строке текста
    ПСТР - возвращает указанное число знаков из текстовой строки, начиная с указанной позиции
    ДЛСТР – возвращает количество знаков в текстовой строке

    Итак:
    Предположим, что исходные данные хранятся в ячейке A1 (вид: a*b*c), при этом дробное число или целое значения не имеет (также как и число разрядов переменных):

    Вытаскиваем 1-е число (a):
    =ПСТР(A1;1;(НАЙТИ("*";A1;1))-1)

    Вытаскиваем 2-е число (b):
    =ПСТР(A1;НАЙТИ("*";A1;1)+1;НАЙТИ("*";A1;НАЙТИ("*";A1;1)+1)-НАЙТИ("*";A1;1)-1)

    Вытаскиваем 3-е число (c):
    =ПСТР(A1;НАЙТИ("*";A1;НАЙТИ("*";A1;1)+1)+1;НАЙТИ("*";A1;ДЛСТР(A1)-НАЙТИ("*";A1;НАЙТИ("*";A1;1)+1)))

    Соответственно, загоняя данные «вытаскивания» в функцию
    ПРОИЗВЕД(число1;число2;число3) получаем произведение:

    ПРОИЗВЕД(ПСТР(A1;1;(НАЙТИ("*";A1;1))-1);ПСТР(A1;НАЙТИ("*";A1;1)+1;НАЙТИ("*";A1;НАЙТИ("*";A1;1)+1)-НАЙТИ("*";A1;1)-1); ПСТР(A1;НАЙТИ("*";A1;НАЙТИ("*";A1;1)+1)+1;НАЙТИ("*";A1;ДЛСТР(A1)-НАЙТИ("*";A1;НАЙТИ("*";A1;1)+1)))

    Вуаля.

    P.S. В основу была положена идея ЗАВАРКИ.
    Работоспособность тестировалась всесторонне.
    Ошибок вроде нет, но если что - есть файл.
  7. 05 Июля 2004 Пон 8:35:31
    да, точно! с помощью функции НАЙТИ() можно сделать то, о чем в моем сообщении было написано под пунктом 2, что JIBZZ и сделал Смайлик :-)
    надеюсь проблема решилась?