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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.07.2009, 13:19   #1
Vadim_abs
Пользователь
 
Регистрация: 07.07.2009
Сообщений: 43
По умолчанию макрос - подсчитать для каждой строки кол-во ячеек с «+», кол-во ячеек с «-»

Задача в следующем: существует некая таблица в excel, заполненная по строкам и столбцам. В некоторых ячейках каждой строки стоит 1 из 4-х символов: «+», «-», «Н», «Х». Необходимо "пройтись" по таблице и подсчитать для каждой строки кол-во ячеек с «+», кол-во ячеек с «-», кол-во ячеек с «Н» и кол-во ячеек с «Х».
Vadim_abs вне форума Ответить с цитированием
Старый 07.07.2009, 13:22   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Нет проблем. Макрос простой. Но...
1. Таблица расположена в конкретном диапазоне, или просматривать все ячейки использованного диапазона листа?
2. Куда девать результат?
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 07.07.2009, 13:28   #3
Vadim_abs
Пользователь
 
Регистрация: 07.07.2009
Сообщений: 43
По умолчанию

таблица может меняться, т.е. столбцы и строки могут добавляться. Еще...некоторые строки могут не содержать этих символов вообще (но это, наверно, не важно). Результат записывается в ячейки по каждой строке в столбце после таблицы с данными, т.е. на пересечении столбца с результатом и рассматриваемой строки (не знаю, понятно ли изъяснился)....
Vadim_abs вне форума Ответить с цитированием
Старый 07.07.2009, 13:32   #4
Vadim_abs
Пользователь
 
Регистрация: 07.07.2009
Сообщений: 43
По умолчанию

Т.е. да, просматривать все ячейки использованного диапазона листа. Но, если одна ячейка строки заполнена, но следующие две пустые, то последующие ячейки такой строки проссматривать не требуется и результата для такой строки не будет....
Vadim_abs вне форума Ответить с цитированием
Старый 07.07.2009, 13:34   #5
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
не знаю, понятно ли изъяснился
Не понятно.
Ваша таблица - это все данные на рабочем листе. Так?
Результат по каждой строке нужно записать в столбец, следующий за последним заполненным столбцом листа?
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 07.07.2009, 13:37   #6
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
Но, если одна ячейка строки заполнена, но следующие две пустые, то последующие ячейки такой строки проссматривать не требуется и результата для такой строки не будет....
Пусть, например, есть всего 3 строки. В первой заполнено 5 ячеек, во второй 10, а в третьей 15. Что делать?
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 07.07.2009, 13:38   #7
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Может не будем "играть в футбол"? Давайте пример.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 07.07.2009, 13:51   #8
Vadim_abs
Пользователь
 
Регистрация: 07.07.2009
Сообщений: 43
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Не понятно.
Ваша таблица - это все данные на рабочем листе. Так?
Результат по каждой строке нужно записать в столбец, следующий за последним заполненным столбцом листа?
Все так...

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Пусть, например, есть всего 3 строки. В первой заполнено 5 ячеек, во второй 10, а в третьей 15. Что делать?
В этом случае рассматриваем для подсчета только третью строку.Постараюсь дать более детальное описание...

Последний раз редактировалось Vadim_abs; 07.07.2009 в 23:41.
Vadim_abs вне форума Ответить с цитированием
Старый 07.07.2009, 16:45   #9
Vadim_abs
Пользователь
 
Регистрация: 07.07.2009
Сообщений: 43
По умолчанию

Более точное описание того, что мне надо получить в результате в прикрепленном файле в итоговых столбцах таблицы. Помогите, пожалуйста, надо написать макрос, а я не силен......
Вложения
Тип файла: rar таблица_new.rar (11.9 Кб, 20 просмотров)
Vadim_abs вне форума Ответить с цитированием
Старый 07.07.2009, 16:49   #10
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

А чем Вас формулы не устраивают?

Введите эти формулы:
Код:
  Ячейка: Y4      Формула  (стиль A1):   =СЧЁТЕСЛИ(A4:X4;"-")
                  Формула  (стиль R1C1): =СЧЁТЕСЛИ(RC[-24]:RC[-1];"-")

  Ячейка: Z4      Формула  (стиль A1):   =ЕСЛИ(AD4=1;1;ЕСЛИ(AC4>=10;AD4;AC4/10*AD4))
                  Формула  (стиль R1C1): =ЕСЛИ(RC[4]=1;1;ЕСЛИ(RC[3]>=10;RC[4];RC[3]/10*RC[4]))

  Ячейка: AA4     Формула  (стиль A1):   =ЕСЛИ(AC4>=10;AE4;AC4/10*AE4)
                  Формула  (стиль R1C1): =ЕСЛИ(RC[2]>=10;RC[4];RC[2]/10*RC[4])

  Ячейка: AB4     Формула  (стиль A1):   =Y4/Z4*AA4
                  Формула  (стиль R1C1): =RC[-3]/RC[-2]*RC[-1]

  Ячейка: AC4     Формула  (стиль A1):   =СЧЁТЕСЛИ(A4:X4;"-") +СЧЁТЕСЛИ(A4:X4;"+")
                  Формула  (стиль R1C1): =СЧЁТЕСЛИ(RC[-28]:RC[-5];"-") +СЧЁТЕСЛИ(RC[-28]:RC[-5];"+")
и растяните их на весь столбец

Последний раз редактировалось EducatedFool; 07.07.2009 в 16:54.
EducatedFool вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти кол-во целых чисел в первой последовательности и кол-во нечетных во второй. DjDeniels-61 Помощь студентам 7 28.06.2009 13:04
подсчитать кол-во букв Naposaram Общие вопросы Delphi 3 10.03.2009 16:17
Подсчитать кол-во вхождений символа Си++ Alexion124 Помощь студентам 9 05.01.2009 00:03
подсчитать кол-во гласных FireHawK Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 22.11.2008 19:22