Как сделать дерево в excel
Перейти к содержимому

Как сделать дерево в excel

  • автор:

как в Excel сделать «дерево» из строк, т. е. «+» нажимаешь открываются строки?

Представшие ее взору, лачуги удручали и никак не вязались, с тем-то и тем-то. «?

Похожие вопросы

Ваш браузер устарел

Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров Chrome, Mozilla Firefox, Opera, Microsoft Edge или установите браузер Atom.

Как сделать дерево в excel

Задание:

Есть файл Excell , где клиент расписал будущее дерево каталога справочника номенклатура.

Нужно в 1С по этому файлу сделать дерево каталога.

Разработка:

1 С экселем работать не будем, сразу переведем его в csv.

2 создадим на форме реквизит «дерево» с типом «деревоЗначений».

3 Напишем процедуру, с помощью которой мы будем выбирать файл csv и создавать дерево значений из него

&НаКлиенте Процедура СоздатьДеревоГрупп1С(Команда) ДиалогФыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); //. ДиалогФыбораФайла.Фильтр="csv файл с разделтелями (*.csv)|*.csv|"; ДиалогФыбораФайла.Заголовок = "Выберите файл"; ДиалогФыбораФайла.ИндексФильтра = 0; описаниеОповещения = Новый ОписаниеОповещения("ГрузимИзФайла", ЭтотОбъект); ДиалогФыбораФайла.Показать(описаниеОповещения); КонецПроцедуры &НаКлиенте Процедура ГрузимИзФайла(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт // вызываем диалог выбора файла Если ВыбранныеФайлы > Неопределено И ВыбранныеФайлы.Количество() > 0 Тогда // Сообщить("Файл выбран!"); //работаем с файлом Имяфайла=ВыбранныеФайлы[0]; // Пишем в реестр сообщить(имяФайла); // вызываем дальнейшую процедуру обработки // читаем файл ЗагружаемыйФайл = Новый ТекстовыйДокумент; ЗагружаемыйФайл.Прочитать(ИмяФайла); СоздаемДеревоПапок1с(ЗагружаемыйФайл); Иначе Сообщить("Файл не выбран!"); КонецЕсли; КонецПроцедуры &наСервере Процедура СоздаемДеревоПапок1с(ЗагружаемыйФайл) тДерево = РеквизитФормыВЗначение("Дерево"); // чтение Для НомерСтроки=1 по ЗагружаемыйФайл.КоличествоСтрок() Цикл // получить стрoку с указанным номером и преобразуем её в массив Строка = ЗагружаемыйФайл.ПолучитьСтроку(НомерСтроки); МассивКол = РазложитьСтрокуВМассивПодстрок(Строка,";");// Для НомерЭлМассива=0 по МассивКол.количество()-1 цикл Если СтрДлина(массивКол[НомерЭлМассива])>0 тогда Каталог=сокрЛП(массивКол[НомерЭлМассива]); // найдено не пустое значение //смотрим вложенность каталога Если НомерЭлМассива=0 тогда // это новый корневой родитель нстр=тДерево.строки.добавить(); нстр.каталог=каталог; //прервать; КонецЕсли; // влож 1 Если НомерЭлМассива=1 тогда нстр1=нстр.строки.добавить(); нстр1.каталог=каталог; //прервать; КонецЕсли; // влож 2 Если НомерЭлМассива=2 тогда нстр2=нстр1.строки.добавить(); нстр2.каталог=каталог; //прервать; КонецЕсли; // влож 3 Если НомерЭлМассива=3 тогда нстр3=нстр2.строки.добавить(); нстр3.каталог=каталог; //прервать; КонецЕсли; // влож 4 Если НомерЭлМассива=4 тогда нстр4=нстр3.строки.добавить(); нстр4.каталог=каталог; //прервать; КонецЕсли; // влож 5 Если НомерЭлМассива=5 тогда нстр5=нстр4.строки.добавить(); нстр5.каталог=каталог; //прервать; КонецЕсли; // влож 6 Если НомерЭлМассива=6 тогда нстр6=нстр5.строки.добавить(); нстр6.каталог=каталог; //прервать; КонецЕсли; // влож 7 Если НомерЭлМассива=7 тогда нстр7=нстр6.строки.добавить(); нстр7.каталог=каталог; //прервать; КонецЕсли; // влож 8 Если НомерЭлМассива=8 тогда нстр8=нстр7.строки.добавить(); нстр8.каталог=каталог; //прервать; КонецЕсли; // влож 9 Если НомерЭлМассива=9 тогда нстр9=нстр8.строки.добавить(); нстр9.каталог=каталог; //прервать; КонецЕсли; // влож 10 Если НомерЭлМассива=10 тогда нстр10=нстр9.строки.добавить(); нстр10.каталог=каталог; //прервать; КонецЕсли; Если НомерЭлМассива=11 тогда нстр11=нстр10.строки.добавить(); нстр11.каталог=каталог; //прервать; КонецЕсли; Если НомерЭлМассива=12 тогда нстр12=нстр11.строки.добавить(); нстр12.каталог=каталог; //прервать; КонецЕсли; Если НомерЭлМассива=13 тогда нстр13=нстр12.строки.добавить(); нстр13.каталог=каталог; //прервать; КонецЕсли; Если НомерЭлМассива=14 тогда нстр14=нстр13.строки.добавить(); нстр14.каталог=каталог; //прервать; КонецЕсли; Если НомерЭлМассива=15 тогда нстр15=нстр14.строки.добавить(); нстр15.каталог=каталог; //прервать; КонецЕсли; конецЕсли; конецЦикла; конецЦикла; ЗначениеВРеквизитФормы(тДерево,"дерево"); конецПроцедуры 

Не стал я заморачиваться с оптимизацией кода, сделал до 15 уровня вложенности. Если кому нужно, можно оптимизировать с помощью команды «выполнить»

Строка, содержащая текст исполняемого кода.
Описание:
Позволяет выполнить фрагмент кода, который передается ему в качестве строкового значения.

В результате получил нужное дерево:

Чтобы из него создать группы в спр номенклатура выполняем вот такую процедуру:

&НаСервере Процедура ОбходДерева(дерево,родитель=неопределено) Для Каждого тСтр Из Дерево.Строки Цикл Сообщить(тСтр.Каталог+", Родитель k">+?(тстр.Родитель=неопределено,"",тстр.Родитель.каталог));//+Дерево.каталог); // создаем папку номенклатуры номГр=справочники.Номенклатура.СоздатьГруппу(); номГр.Наименование=сокрЛП(тСтр.Каталог); если Родитель>неопределено тогда // есть родитель номГр.Родитель=родитель; конецЕсли; номГр.Записать(); //конец создаем папку номенклатуры Если тСтр.Строки.Количество()>0 Тогда ОбходДерева(тСтр,номГр.Ссылка); КонецЕсли; КонецЦикла; КонецПроцедуры &Насервере Процедура ОбходНаСервере() тДерево = РеквизитФормыВЗначение("Дерево"); ОбходДерева(тДерево); КонецПроцедуры &НаКлиенте Процедура СоздатьПапкиКаталогаНоменклатуры(Команда) ОбходНаСервере(); КонецПроцедуры #конецОбласти 
  • Главная
  • Примеры работ
  • Примеры обработок
  • Создать дерево значений из Excell файла. УФ

Как сделать дерево в excel

Для принятия решений в ситуации неопределенности широко используется метод «таблиц выигрышей и потерь». Однако в сложных случаях приходится выбирать между альтернативами, каждая из которых представляет собой «многошаговый» процесс принятия решений. Такие шаги могут быть разнесены во времени, на каждом шаге может возникать новый набор альтернатив и сценариев будущего, усложняется расчет вероятностей различных событий. В этом случае визуализировать процесс выбора из рассматриваемых альтернатив удобно с помощью схемы или графа, называемых деревом (древом) решений.
Дерево решений — это необходимый инструмент при стратегическом планировании и в инвестиционном анализе. Это один из методов автоматического анализа данных. Он помогает в решении задач по классификации и регрессии. Надстройка MS Excel «Дерево решений» предназначена для построения и анализа древа решений и событий в ситуациях неопределенности и риска. Древо решений и событий строится в рабочей книге MS Excel. При построении автоматически добавляются стандартные формулы для выбора, оценки среднеожидаемого результата и расчета вероятности.

Описание надстройки «Дерево решений»

    Надстройка «Дерево решений»
  • стpоит на листе MS Excel дерево возможностей;
  • на основании данных и экспертных оценок, которыми вы располагаете, расчитывает возможный выигрыш или убыток при выборе того или иного решения;
  • оценивает вероятности принимаемых решений;
  • дает ответ на вопрос «Что будет, если ситуация немного изменится?»
Запустите файл надстройки «Decision Tree yy.mm.xlam».

При открытии файла появится сообщение об опасности макросов, ответьте «Включить макросы» (вся рабочая часть надстройки и есть макросы, т.е. программа на языке VBA).

После запуска файла в MS Excel появится панель управления надстройкой:

Панель надстройки Дерево решений

Блок Создать

В меню «HCXL| Дерево решений» кликнте по кнопке «Анализ древа решений. Создать» на панели инструментов.

Кнопка запуска надстройки Дерево решений

При этом надстройка создает новую страницу со стандартным началом дерева («стволом»).

Часть ячеек скрыта, чтобы не отягощать схему служебной информаци.

Your browser does not support the HTML5 canvas tag.

На листе автоматически выделяется ячейка G2 со звездочкой.
Красная звездочка здесь и далее — это возможная точка «роста» дерева, т. к. в ячейку, содержащую звездочку, можно вставить продолжение дерева. Это место, с которого дерево начнет расти, поэтому никогда не затирайте такие звездочки до завершения построения дерева решений .

Блок Добавить развилку событий

    Будущее всегда имеет два варианта:
  • Будущее, которое наступит с некоторой вероятностью (вероятность мы как-то можем оценить сами);
  • Будущее, которое наступит после того, как мы примем определенное решение. Принятое решение сулит нам в последствии определенный выигрыш или проигрыш, который можно оценить конкретной суммой в денежных единицах.

Развилка Выбор решения используется, если необходимо выбрать конкретное решение из ряда возможных.
Для конструирования дерева решений в этом случае нужно определиться, из скольких вариантов решений придется выбирать главное решение. Число вариантов выбирается из выпадающего списка в ячейке Из : _ ветвей. Возможны варианты от 1 до 10. По умолчанию указывается 2. При выборе 1 строится одиночная ветка.

Your browser does not support the HTML5 canvas tag.

Развилка Варианты будущего выбирается, если рассматриваются различные варианты будущего, на которые вы не можете влиять .
Для конструирования Вариантов Будущего выбирается число возможных вариантов из выпадающего списка в ячейке Из : _ ветвей. Возможны варианты от 1 до 10. По умолчанию указывается 2.

В чем различие между Выбором решения и Вариантом будущего?

Выбор решения

Клавиша выбор решения

или

Варианты будущего

Клавиша Варианты будущего

Последовательность действий:

Выбрать число вариантов решений

GO AND UPDATE YOUR BROWSER BEFORE YOU READ ON!

Выбрать Максимум или Минимум на панели Разное

GO AND UPDATE YOUR BROWSER BEFORE YOU READ ON!

Нажать «Выбор решения»

Последовательность действий:

Выбрать число вариантов будущего

GO AND UPDATE YOUR BROWSER BEFORE YOU READ ON!

Нажать «Варианты будущего»

Результат действий:

Результат нажатия клавиши Выбор решения

Развилка Выбор решения всегда зеленая.

Результат действий:

Результат нажатия клавиши Варианты будущего

Развилка Варианты будущего всегда оранжевая.

Что с этим можно делать:

Писать комментарии в ячейках «Решение х».

В каждой появившейся звездочке дерево может быть продолжено. Продолжением может быть как зеленая развилка (Выбор решения), так и оранжевая (Варианты будущего).

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

Что с этим можно делать:

Писать комментарии в ячейках «Вариант х».

В каждой появившейся звездочке дерево может быть продолжено. Продолжением может быть как зеленая развилка (Выбор решения), так и оранжевая (Варианты будущего).

В столбцах вероятностей с числами 0% и 100% вводить с клавиатуры экспертные оценки вероятностей наступления того или иного варианта будущего. Ячейку с 100% менять не нужно. Число в этой ячейке изменится автоматически, исходя из соображения, что какое-нибудь будущее обязательно наступит, поэтому сумма вероятностей всех вариантов будущего равна 1.

Замечания:
  1. Вероятности, указанные для развилок Варианты будущего, учитываются далее по дереву решений. Поэтому в столбцах p(i) для каждой ветви фигурируют правильные полные вероятности попасть в данную ветвь.
  2. В ячейке развилки, обозначенной и стоящей перед зеленой развилкой «Выбор решения», автоматически записывается формула =МАКС(L2:L6) , с помощью которой позднее будет сделан выбор, какое из решений наиболее привлекательно.
  3. В ячейке развилки, обозначенной и стоящей перед оранжевой развилкой «Варианты будущего» , автоматически генерирована формула =СУММПРОИЗВ(N2:N4;Q2:Q4) . Это оценка средневзвешенного результата для этой вероятностной развилки событий.

Блок Ветви дерева

Выделите ячейку с узлом дерева и нажмите «Копировать». При этом все продолжение дерева решений от заданного узла и до конца ветвей скопируется в специальный буфер. Скопированное продолжение дерева решений можно вставить в любую ячейку со звездочкой. Это удобно, когда часть дерева нужно повторить в другом месте. Копия сохраняется до тех пор, пока не последует другая команда «Копировать».

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

Кнопка «Вставить» становится доступной после нажатия кнопки «Копировать». Содержимое буфера обмена можно вставить только в ячейку со звездочкой. При попытке вставить данные в другое место листа вы получите уведомление о том, что «Ячека не является узлом дерева».

Your browser does not support the HTML5 canvas tag.

Если дерево решений серьезно перестраивалось и старые подравнивания только загромождают структуру и затрудняют ориентировку в событиях и решениях, то все одиночные ветви-спейсеры можно убрать командой «Сжать».

Если выделить ячейку с узлом дерева и нажать кнопку «Удалить», то все продолжение дерева со всеми разветвлениями, начиная от выделенного узла, будет удалено. Если выделена ячейка, не являющаяся узлом дерева, никакой реакции не последует, появится модальное окно «Ячейка не является узлом дерева». Пример работы команды Удалить смотрите здесь

Иногда возникает необходимость временно заблокировать какие-то ветви развилки «Выбор решения». Для этого используется кнопка «Блокировать». Если выделить ячейку с узлом дерева и нажать кнопку «Блокировать», то вся эта ветвь будет заблокирована, формула из ячейки переносится в примечание, а на ее место записывается уведомление STOP и выбор лучшего переходит к другой ветви. Повторное нажатие кнопки «Блокировать» приводит к снятию блокировки.

Блок Переменные

При расчетах по дереву решений удобно использовать специальные дополнительные поля – переменные, в которых можно указать различные численные характеристики решений и событий. По умолчанию в надстройке имеется 1 переменная, которая находится в скрытых столбцах дерева.
При вводе значений переменных достаточно записать их в той развилке, после которой значения переменных становятся определенными. В более поздних развилках введенные значения переменных будут воспроизведены автоматически.

Команда Изменить число переменных добавляет или удаляет переменные.
Допустимые значения от +5 до -5. То есть, возможно добавить (знак +) или удалить (знак -) до 5 переменных. Меньше одной переменной оставить нельзя по техническим (программистским) причинам, так что при попытке убрать все переменные все равно останется одна. Изменить количество переменных можно на любой стадии работы с деревом решений.

Your browser does not support the HTML5 canvas tag.

При нажатии Показать переменные на рабочем листе MS Excel с деревом решений переменные становятся видными, а поле «Изменить число переменных» доступным.

После завершения ввода данных или на этапе построения дерева бывает удобно видеть дерево в возможно более компактном виде. Для этого используют команду Скрыть переменные. При этом к столбцам, содержащим переменные, применяется команда Excel Скрыть столбцы. Кнопка Показать переменные возвращает столбцам с переменными видимость.

Блок Разное

Команда Все дерево увеличивает масштаб построенного дерева решения.

Команды Отменить и Восстановить служат для отмены последних изменений, сделанных через интерфейс надстройки или возврата к более новой версии дерева. Операции, сделанные через интерфейс надстройки невозможно изменить с помощью встроенного в MS Excel механизма Undo\Redo.

При работе с ветвью «Выбор решения» то или иное решение приносит выигрыш или убыток. Поэтому необходимо отметить Максимум, если вы хотите выбрать решение, которое принесет максимальную прибыль, или Минимум, если выбор делается между решениями, который принесут минимальный убыток.

Your browser does not support the HTML5 canvas tag.

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

Для сохранения состояния проекта используются скрытые листы рабочей книги. Эти листы сильно увеличивают размер файла. Поэтому рекомендуется сохранять файл командой Сохранить из интерфейса надстройки. Эта команда очищает файл от временных данных.

Команда Справка создает новый лист в рабочей книге MS Excel. На этом листе выводится подробная информация о том, как работает надстройка «Дерево решений».

Пример использования надстройки «Дерево решений» при решении конкретной задачи:
Скачать надстройку «Дерево решений»

Основная версия надстройки работает в 32-bit и 64-bit версиях MS Excel начиная с MS Office 2007. Более старые версии MS Excel не поддерживаются.
Файл надстройки имеет название: «Decision Tree уу. mm. xlam» (в зависимости от версии), может запускаться как обычный файл MS Excel (при этом нужно согласиться с запуском макросов надстройки).

Создание дерева решений (блок-схемы) в Excel. Инструмент «SmartArt».

Добрый день.
Как Вы наверняка знаете «Excel» — это не только инструмент для математических расчетов и аналитики числовых данных, но и прекрасный инструмент для оформления документов и создания схем взаимодействия (бизнес-схем).
В поздних версиях программы «Excel» созданы специальные опции для создания и редактирования древовидных схем (план-схем, алгоритмов). Таких как, так называемое, дерево решений.
Дерево решений – это схема, представляющая собой набор связанных между собой в виде дерева блоков. Каждому из блоков в дереве решений присваивается действие (решение). Соответственно, при выполнении того или иного действия появляются несколько вариантов новых решений и т.д.

Пример дерева решений: «Поход в магазин за покупками»

план схема / блоки дерева
Создать такое дерево решений довольно просто при помощи кнопки SmartArt («умное творчество»).

Схема иерархия

Кнопка SmartArt находится во вкладке «Вставка». После клика по указанной кнопке появляется окно, в котором предложены десятки готовых решений (структур) схемы.

Создание рисунка структуры

Для дерева решений оптимально подходят готовые структуры и раздела «Иерархия».

Выбрав понравившуюся структуру, при помощи опций из вкладки «Конструктор» можно сформировать необходимой дерево действия.

Добавить фигуру

При помощи кнопки «Добавить фигуру» можно добавлять новые блоки.

Кнопками «повысить уровень» и «понизить уровень» можно менять место блока в структуре.

Кнопка «Область текста» открывает окно для работы с надписями в блоках.

Так же раздел «конструктор» позволяет редактировать внешний вид блоков:

Изменить цвета блоков

Цвета схемы

Способ отображения блоков, в том числе и 3D вид дерева решений.

Дерево решений 3D вид

Автор Master Of Exc Опубликовано 07.12.2017 Рубрики Начинающим

Добавить комментарий Отменить ответ

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *