Форум программистов, компьютерный форум, киберфорум
MS Office Excel
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
431 / 239 / 86
Регистрация: 09.04.2018
Сообщений: 1,023
1

Оптимизация формулы

30.07.2018, 18:46. Показов 574. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!

Помогите, пожалуйста оптимизировать работу. Есть таблица в ней необходимо подсчитать количество аппаратуры. Сам подсчет я сделал (ячейки С20-G20). Вопрос в том как это сделать "более правильно", что ли? Ведь пока наименований четыре, то все нормально, а если наименований будет 30-40, то прописывать такую формулу - это жесть.

И еще подскажите, как в Excel'е убрать лишние пробелы в конце строки в указанном диапазоне? Trim подойдет? И, если - да, то как это реализовать правильно? VBA осваиваю понемногу, но больше применительно к Аксессу.
Вложения
Тип файла: zip форум3007.zip (7.0 Кб, 4 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.07.2018, 18:46
Ответы с готовыми решениями:

Оптимизация формулы
Всем привет! Подскажите, пожалуйста, как можно упростить формулу? В целом итак работает норм, но...

При изменении формулы в ячейке скопировать формулы в ячейки ниже
можно ли как-то сделать через макрос чтобы он сам тянул другую функцию до самого низа? то есть я...

Оптимизация - упростить запись формулы
Нуждаюсь в совете. Подскажите пожалуйста, есть ли возможность задать F(x)j? У меня 1 функция F(x)...

Типы оптимизация: черная оптимизация, серая оптимизация и белая оптимизация
Много много лет назад, на заре становления профессии "оптимизатора" в какой то умной книжке был...

8
Динохромный
1375 / 749 / 271
Регистрация: 22.12.2015
Сообщений: 2,341
30.07.2018, 21:44 2
Цитата Сообщение от Kiriver Посмотреть сообщение
Ведь пока наименований четыре, то все нормально, а если наименований будет 30-40,
Человеку нужен был телефон - и он конечно же был изобретен.
Вам нужна сводная таблица. Выделите данные в столбце "С" включая заголовок "Наименование".
На вкладке "вставка" нажмите кнопку "сводная таблица" (самая левая), укажите вставку в существующий лист.
В диалоге "Поля сводной таблицы" поставьте галочку на единственное доступное поле - "Наименование", затем ухватите его мышкой и перетащите в область "значения" (самая правая нижняя). По умолчанию оно отобразит количество, т.к. суммировать нечего (сие можно настроить как вам удобно).
При изменении данных сводную таблицу нужно будет обновить (она сама отследит как изменения в количестве, так и изменения в перечне наименований).
1
431 / 239 / 86
Регистрация: 09.04.2018
Сообщений: 1,023
30.07.2018, 21:53  [ТС] 3
Dinoxromniy, спасибо, что-то не подумал даже про сводную таблицу! а по поводу пробелов поможете?
0
Динохромный
1375 / 749 / 271
Регистрация: 22.12.2015
Сообщений: 2,341
30.07.2018, 22:21 4
Цитата Сообщение от Kiriver Посмотреть сообщение
а по поводу пробелов
Каждая тема согласно правилам посвящается одному вопросу, на это правило вы можете ориентироваться в будущем при создании новых тем.
Стандартная функция Excel СЖПРОБЕЛЫ(ссылка_на_ячейку_с_текстом) уберет все пробелы в тексте, за исключением одиночных пробелов между словами (то есть все двойные, а также в начале и конце текста).
Если убрать нужно только в конце - например формулами (в примере - для ячейки А1)
Код
=ЕСЛИ(ПРАВСИМВ(A1;1)=" "; ЛЕВСИМВ(A1;ДЛСТР(A1)-1);A1)
или кодом на VBA сразу для всех выделенных ячеек:
Visual Basic
1
2
3
4
5
6
Public Sub remove_r_s()
Dim rngCell As Range
For Each rngCell In Selection.Cells
    rngCell.Value = RTrim(rngCell.Text)
Next rngCell
End Sub
1
431 / 239 / 86
Регистрация: 09.04.2018
Сообщений: 1,023
30.07.2018, 22:24  [ТС] 5
Dinoxromniy, понял, спасибо. Насколько я понимаю, из данного кода надо сделать макрос, выделить ячейки и запустить его?
0
Динохромный
1375 / 749 / 271
Регистрация: 22.12.2015
Сообщений: 2,341
30.07.2018, 22:33 6
Цитата Сообщение от Kiriver Посмотреть сообщение
из данного кода надо сделать макрос
Скопировать код в VBA редактор (alt+f11), в модуль/книгу/лист, выделить ячейки и запустить через F5.
Следует учитывать, что код меняет любое содержимое ячейки на отображаемый текст, включая например текст из формата. Если в ячейках текст - это не имеет большого значения, а вот с числами нужно быть осторожным - могут перестать складываться.
0
431 / 239 / 86
Регистрация: 09.04.2018
Сообщений: 1,023
31.07.2018, 21:43  [ТС] 7
Dinoxromniy, подскажите еще такой вопрос: возможно ли из сводной таблицы перенести данные так, чтобы на выходе получился вид, как в ячейке С20...? Просто важен не только подсчет, но и его представление, нужно именно как в таблице.
0
Динохромный
1375 / 749 / 271
Регистрация: 22.12.2015
Сообщений: 2,341
31.07.2018, 22:15 8
Цитата Сообщение от Kiriver Посмотреть сообщение
возможно ли из сводной таблицы перенести данные так, чтобы на выходе получился вид, как в ячейке С20...?
Ну полагаю, что полностью автоматический перенос будет труднореализуем, не уверен, что это в принципе можно сделат - возможно коллеги подскажут метод.
Ну а с костылями - почему нет.
Допустим, ваша сводная таблица вставлена в ячейку L21, то вы можете правее нее в N22 вбить формулу
Код
=L22 & "-" &  ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ("Наименование";$L$21;"Наименование";L22) & ","
которая даст результат "клавиатура-4,"
Затем протянуть ее вниз по всем строкам - результатом будут аналогичные строчки по каждому наименованию.
Затем этот новый столбик нужно просто склеить, если не ошибаюсь, в 2016 excel это может функция "СЦЕПИТЬ" - достаточно просто выделить столбец. Если у вас более ранние версии, то нужно вводить еще один допстолбец (в вашем примере - O22 и ниже). В нем верхняя ячейка будет с формулой
Код
=ячейка_слева
или оно же для O22
Код
=N22
вторая и следующие ячейки столбца O будут с формулой
Код
=ячейка_выше & ячейка_слева
или оно же для ячейки O23
Код
 =O22 & N23
самая нижняя ячейка столбца O и будет содержать запись в нужном вам виде.
Понятно, что при пересчете наименований вся эта конструкция развалится, ну тут что попишешь.
Вероятно, существует какое-то более элегантное решение, но мне оно на ум не идет.
1
431 / 239 / 86
Регистрация: 09.04.2018
Сообщений: 1,023
31.07.2018, 22:21  [ТС] 9
Спасибо, пошел пробовать.
0
31.07.2018, 22:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.07.2018, 22:21
Помогаю со студенческими работами здесь

Проверить истинность формулы логики предикатов. Формулы логики предикатов. Область истинности формулы
Помогите решить задания.Объясните как делать хотя бы первые 2.Или хотя бы укажите...

Как подставить значение в формулу, из решенной формулы после предыдущей формулы.
У меня есть формула, после которой есть значения которые нужно туда подставить после слова " где " ...

задачи на множество. вид формулы алгебры логики и упрощение формулы
не получается решить никак может знает кто?

Оптимизация методом Ньютона (нахождение точки минимума). Оптимизация кода
MATLAB только начал осваивать. Попытался реализовать нахождение точки минимума методом Ньютона...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru