Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 01.10.2008, 17:25   #1
ZORRO2005
Форумчанин
 
Аватар для ZORRO2005
 
Регистрация: 26.11.2006
Сообщений: 584
По умолчанию Любителям сложных формул посвящается!

Друзья,
Задание во вложении.
Вложения
Тип файла: rar RAZB.rar (9.6 Кб, 29 просмотров)

Последний раз редактировалось ZORRO2005; 02.10.2008 в 11:50.
ZORRO2005 вне форума
Старый 02.10.2008, 10:01   #2
vladtr
Форумчанин
 
Регистрация: 28.07.2008
Сообщений: 119
Сообщение Зачем городить мега формулы, если и так все просто...

Цитата:
Сообщение от ZORRO2005 Посмотреть сообщение
Друзья,
Задание во вложении.
У Вас, и так все там в порядке... Вопрос не поставлен, приходиться догадываться. Я так понял, необходимо написать функцию, которая использует в качестве параметра значения в ячейки заголовка таблицы (в вашем случае, то что выделено зеленым цветом). Если писать формулу то, я бы отдал предпочтение тем, которые есть. Зачем городить мега формулы, если и так все просто, понятно и компактно.
vladtr вне форума
Старый 02.10.2008, 10:02   #3
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Может быть Вам подойдет решение на VBA?
Просто измените значения заголовков столбцов с условиями (столбцы "J:L").
Обрабатывается любое количество строк. Можно обойтись и без предварительного разбиения текста по столбцам.
Вложения
Тип файла: rar RAZB_VBA.rar (16.0 Кб, 28 просмотров)
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 02.10.2008 в 12:07.
SAS888 вне форума
Старый 02.10.2008, 11:33   #4
ZORRO2005
Форумчанин
 
Аватар для ZORRO2005
 
Регистрация: 26.11.2006
Сообщений: 584
По умолчанию

SAS888,
СУПЕР!Спасибо большое!
Можно сделать чтобы лишние пробелы не съедались?
Допустим я хочу сделать 3 пробела между словами 1 и 3 столбцов.
ZORRO2005 вне форума
Старый 02.10.2008, 11:39   #5
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

А я наоборот, специально это делал. Но, если нужно, то из кода нужно выбросить функцию Application.Trim(...). Для этого, строки
Код:
For n = 1 To Len(Application.Trim(Cells(1, j)))
Ident = Mid(Application.Trim(Cells(1, j)), n, 1)
нужно поменять на
Код:
For n = 1 To Len(Cells(1, j))
Ident = Mid(Cells(1, j), n, 1)
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 02.10.2008 в 12:03. Причина: Добавлено
SAS888 вне форума
Старый 02.10.2008, 11:45   #6
Konstantin_Z
Пользователь
 
Регистрация: 22.08.2008
Сообщений: 65
По умолчанию

в J2 формулу:
=СЦЕПИТЬ(ЕСЛИ(ЕЧИСЛО(ЗНАЧЕН(ПСТР(J$ 1;1;1)));ИНДЕКС($C2:$I2;1;ПОИСКПОЗ( ПСТР(J$1;1;1);$C$1:$I$1;0));ПСТР(J$ 1;1;1));ЕСЛИ(ЕЧИСЛО(ЗНАЧЕН(ПСТР(J$1 ;2;1)));ИНДЕКС($C2:$I2;1;ПОИСКПОЗ(П СТР(J$1;2;1);$C$1:$I$1;0));ПСТР(J$1 ;2;1));ЕСЛИ(ЕЧИСЛО(ЗНАЧЕН(ПСТР(J$1; 3;1)));ИНДЕКС($C2:$I2;1;ПОИСКПОЗ(ПС ТР(J$1;3;1);$C$1:$I$1;0));ПСТР(J$1; 3;1));ЕСЛИ(ЕЧИСЛО(ЗНАЧЕН(ПСТР(J$1;4 ;1)));ИНДЕКС($C2:$I2;1;ПОИСКПОЗ(ПСТ Р(J$1;4;1);$C$1:$I$1;0));ПСТР(J$1;4 ;1));ЕСЛИ(ЕЧИСЛО(ЗНАЧЕН(ПСТР(J$1;5; 1)));ИНДЕКС($C2:$I2;1;ПОИСКПОЗ(ПСТР (J$1;5;1);$C$1:$I$1;0));ПСТР(J$1;5; 1));ЕСЛИ(ЕЧИСЛО(ЗНАЧЕН(ПСТР(J$1;6;1 )));ИНДЕКС($C2:$I2;1;ПОИСКПОЗ(ПСТР( J$1;6;1);$C$1:$I$1;0));ПСТР(J$1;6;1 )))

и тянуть сначала вправо, а потом вниз
ограничение формулы: только для 6-ти смволов из ячеек J1:L1

если надо больше заходите в СЦЕПИТЬ() щелкаете текст6, копируете, ставите ; вставляете, меняете во всех ПСТР(J$1;6;1) только что вставленного куска среднюю цифру на 7 и т.д.

Последний раз редактировалось Konstantin_Z; 02.10.2008 в 11:47.
Konstantin_Z вне форума
Старый 02.10.2008, 20:01   #7
ZORRO2005
Форумчанин
 
Аватар для ZORRO2005
 
Регистрация: 26.11.2006
Сообщений: 584
По умолчанию

Konstantin_Z,
спасибо
ZORRO2005 вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вопросам знатокам и просто любителям, нужно составить не сложный sql запрос modz SQL, базы данных 3 14.08.2013 11:20
Любителям компонентного программирования JTG Софт 1 08.04.2008 14:42