Количество истинных значений excel

Перейти к содержанию

На чтение 1 мин Опубликовано 20.07.2015

Из этого урока вы узнаете, как подсчитать количество ячеек, содержащих логические значения TRUE (ИСТИНА) и FALSE (ЛОЖЬ) в Excel.

Чтобы подсчитать количество ячеек, которые содержат значение TRUE (ИСТИНА), воспользуйтесь следующей формулой:

=COUNTIF(A1:A7,TRUE)
=СЧЁТЕСЛИ(A1:A7;ИСТИНА)

Подсчет логических значений в Excel

Для подсчета количества ячеек, содержащих значение FALSE (ЛОЖЬ), используйте формулу ниже:

=CONTIF(A1:A7,FALSE)
=СЧЁТЕСЛИ(A1:A7;ЛОЖЬ)

Подсчет логических значений в Excel

Чтобы сосчитать ячейки, которые содержат TRUE (ИСТИНА) или FALSE (ЛОЖЬ), пропишите эту формулу:

=COUNTIF(A1:A7,TRUE)+COUNTIF(A1:A7,FALSE)
=СЧЁТЕСЛИ(A1:A7;ИСТИНА)+СЧЁТЕСЛИ(A1:A7;ЛОЖЬ)

Подсчет логических значений в Excel

Оцените качество статьи. Нам важно ваше мнение:

Содержание

  • Как подсчитать конкретные значения в Excel?
  • Как использовать Countif в Excel?
  • Что такое предопределенная формула?
  • Есть ли формула для подсчета уникальных значений в Excel?
  • Как подсчитать несколько значений в Excel?
  • Как подсчитать ячейки с определенным текстом?
  • Как вы называете клетки, которые не меняются?
  • Как автоматически подсчитывать строки в Excel?
  • Что такое функция Counta в Excel?

Чтобы подсчитать количество ИСТИННЫХ записей, а здесь 5, формула = СЧЁТЕСЛИ (A1: A6, ИСТИНА), примененная к столбцу, должна работать, но она всегда возвращает результат 1. С другой стороны, формула = СЧЁТЕСЛИ (A1 : A6, FALSE) корректно работает с аналогичным столбцом, полученным путем опускания FALSE.

Подсчитайте ячейки равными

  1. Общая формула. = СЧЁТЕСЛИ (диапазон; значение)
  2. Чтобы подсчитать количество ячеек, равное определенному значению, вы можете использовать функцию СЧЁТЕСЛИ. …
  3. Функция СЧЁТЕСЛИ полностью автоматическая — она ​​подсчитывает количество ячеек в диапазоне, который соответствует заданным критериям. …
  4. Функция СЧЁТЕСЛИ в Excel. …
  5. Функции Excel RACON.

Как использовать Countif в Excel?

Подсчитайте ячейки от 5 до 10

  1. Выберите ячейку, в которой вы хотите увидеть счетчик (в этом примере ячейка A12).
  2. Введите формулу для подсчета строк больше или равных 5: = СЧЁТЕСЛИ (B1: B10, «> = 5»)
  3. Введите знак минус.
  4. Введите формулу для подсчета строк больше 10: …
  5. Заполненная формула: …
  6. Нажмите клавишу Enter, чтобы завершить ввод.

Что такое предопределенная формула?

Функции предопределенные формулы, которые выполняют вычисления с использованием определенных значений, называемых аргументами, в определенном порядке или структуре. Функции можно использовать для выполнения простых или сложных вычислений. Вы можете найти все функции Excel на вкладке «Формулы» на ленте: синтаксис функции Excel.

Есть ли формула для подсчета уникальных значений в Excel?

Вы можете использовать комбинацию СУММ и СЧЁТЕСЛИ функции для подсчета уникальных значений в Excel. Синтаксис этой комбинированной формулы: = СУММ (ЕСЛИ (1 / СЧЁТЕСЛИ (данные, данные) = 1,1,0)). Здесь формула СЧЁТЕСЛИ подсчитывает, сколько раз появляется каждое значение в диапазоне. … Вы будете считать уникальные предметы в этом примере.

Как подсчитать несколько значений в Excel?

Чтобы получить количество значений между двумя значениями, нам нужно использовать несколько критериев в функции СЧЁТЕСЛИ. Вы также можете использовать комбинацию ссылок на ячейки и операторов (где оператор вводится непосредственно в формуле). Когда вы комбинируете оператор и ссылку на ячейку, оператор всегда находится в двойных кавычках.

Как подсчитать ячейки с определенным текстом?

Подсчитайте количество ячеек с определенным текстом

Выберите пустую ячейку для отображения результата. Затем скопируйте и вставьте формула = СЧЁТЕСЛИ ($ A $ 2: $ A $ 10, «Линда») в панель формул и нажмите клавишу Enter на клавиатуре. Затем вы увидите результат, отображаемый в выбранной ячейке.

Как вы называете клетки, которые не меняются?

Абсолютная ссылка на ячейку: Абсолютная ссылка на ячейку — это ссылка на ячейку, которая не изменяется при копировании. Чтобы сделать ссылку на ячейку абсолютной, вы должны включить $ перед ссылкой (например, $ C $ 4). Другой тип ссылки — это относительная ссылка.

Как автоматически подсчитывать строки в Excel?

Используйте функцию СТРОКА для нумерации строк

  1. В первой ячейке диапазона, который вы хотите пронумеровать, введите = СТРОКА (A1). Функция СТРОКА возвращает номер строки, на которую вы ссылаетесь. Например, = ROW (A1) возвращает число 1.
  2. Перетащите маркер заполнения. по всему диапазону, который вы хотите заполнить.

Что такое функция Counta в Excel?

Функция СЧЁТ в Excel возвращает количество ячеек, содержащих числа, текст, логические значения, значения ошибок и пустой текст («»). COUNTA не считает пустые ячейки. Число, представляющее непустые ячейки.

Интересные материалы:

Как рассчитать квадрат R в Excel 2010?
Как рассчитать Mmult в Excel?
Как рассчитать прогноз в Excel?
Как рассчитать процентную оценку в Excel?
Как рассчитать проценты годовых в Excel?
Как рассчитать цену без НДС в Excel?
Как рассчитать возраст в Excel по дате рождения?
Как рассчитать возраст в формате мм / дд / гггг в Excel 2010?
Как расширить столбец и строку в Excel?
Как расширить столбец в электронной таблице Excel?

Обратите внимание, что эта формула не заботится о местонахождении или порядке элементов в каждом диапазоне.

Функция СЧЁТЕСЛИ будет считать значения в диапазоне, которые соответствуют вашим критериям. Как правило, вы бы использовали СЧЁТ для диапазона A1: A10 и простой критерий, как «> 10». СЧЁТЕСЛИ затем рассчитывает количество ячеек в диапазоне A1: A10, которые больше, чем 10.

Однако, в этом случае, мы используем СЧЁТЕСЛИ для диапазона критериев. Мы не используем никаких логических операторов, а это значит, СЧЁТЕСЛИ будет проверять эквивалентности (т.е. он ведет себя так, как если бы мы использовали равенства (=) оператора).

Потому что мы даем СЧЁТЕСЛИ диапазон (также называемый «массив»), который содержит 7 пунктов, СЧЁТЕСЛИ рассчитывает массив из 7 элементов в качестве результата. Каждый элемент в массиве результатов представляет собой подсчет. В примере, это массив, который рассчитывает СЧЁТЕСЛИ выглядит следующим образом:

На чтение 4 мин. Просмотров 5.9k.

Содержание

  1. Между двумя столбцами
  2. Во всей книге
  3. Количество всех совпадений в двух диапазонах

Между двумя столбцами

=СУММПРОИЗВ(—(диапазон1=диапазон2))

Если вы хотите сравнить два столбца и подсчитать совпадения в соответствующих строках, вы можете использовать функцию СУММПРОИЗВ с помощью простого сравнения двух диапазонов. Например, если у вас есть значения в B5:B11 и D5:D11, и вы хотите рассчитать любые различия, вы можете использовать эту формулу:

=СУММПРОИЗВ(—(B5:B11=D5:D11))

Количество совпадений в двух столбцах

Функция СУММПРОИЗВ является универсальной функцией, которая обрабатывает массивы изначально без какого-либо специального синтаксиса массива. Ее поведение просто: она размножается, а затем подводит произведение массивов. В показанном примере выражение B5: B11 = D5: D11 будет генерировать массив, который содержит истинные и ложные ценности:

{ИСТИНА; ИСТИНА; ЛОЖЬ; ИСТИНА; ЛОЖЬ; ЛОЖЬ; ЛОЖЬ}

Обратите внимание, что у нас есть 3 Истинных значения, потому что есть 3 совпадения.

В этом состоянии, СУММПРОИЗВ фактически рассчитывает нулевое значение, так как истинные и ложные значения не учитываются как числа Excel по умолчанию. Чтобы получить СУММПРОИЗВ для представления ИСТИНА, как 1 и ЛОЖЬ как ноль, нам нужно «превратить» их в числа. Двойное отрицание является простым способом сделать это:

—(B5:B11=D5:D11)

После превращения, мы имеем:

{1; 1; 0; 1; 0; 0; 0}

При отсутствии других массивов для умножения, СУММПРОИЗВ просто суммирует значения и рассчитывает 3.

Для подсчета несовпадающих значений, вы можете полностью изменить логику так:

=СУММПРОИЗВ(—(B5:B11<>D5:D11))

Во всей книге

=СУММПРОИЗВ(СЧЁТЕСЛИ(ДВССЫЛ («‘»&листы&»‘!»&rng);критерии))

Количество совпадений во всей книге

Для подсчета совпадений в всей книге, вы можете использовать формулу, основанную на функциях СЧЁТЕСЛИ и СУММПРОИЗВ. В показанном примере формула в D5 является:

=СУММПРОИЗВ(СЧЁТЕСЛИ(Лист1!B4:AL34; B5))

Количество всех совпадений в двух диапазонах

=СУММПРОИЗВ(СЧЁТЕСЛИ(диапазон1;диапазон2))

Если вы хотите сравнить два диапазона, и подсчитать общее количество совпадений между двумя диапазонами, вы можете использовать формулу, которая сочетает в себе функции СЧЁТЕСЛИ и СУММПРОИЗВ.

Количество всех совпадений в двух диапазонах

Контекст

Предположим, что у вас есть какой-то список, а также есть еще один список, содержащий некоторые из элементов первого списка. Вы нужна формула, которая анализирует значения во 2м списке, чтобы узнать, сколько из них появляются в первом списке. Вам не интересен порядок элементов — вы просто хотите знать, сколько элементов в списке 2 появится в списке 1.

Решение

Мы используем в ячейке G4 формулу:

= СУММПРОИЗВ(СЧЁТЕСЛИ (B5:B11; D5:D9))

Обратите внимание, что эта формула не заботится о местонахождении или порядке элементов в каждом диапазоне.

Функция СЧЁТЕСЛИ будет считать значения в диапазоне, которые соответствуют вашим критериям. Как правило, вы бы использовали СЧЁТ для диапазона A1: A10 и простой критерий, как «> 10». СЧЁТЕСЛИ затем рассчитывает количество ячеек в диапазоне A1: A10, которые больше, чем 10.

Однако, в этом случае, мы используем СЧЁТЕСЛИ для диапазона критериев. Мы не используем никаких логических операторов, а это значит, СЧЁТЕСЛИ будет проверять эквивалентности (т.е. он ведет себя так, как если бы мы использовали равенства (=) оператора).

Потому что мы даем СЧЁТЕСЛИ диапазон (также называемый «массив»), который содержит 7 пунктов, СЧЁТЕСЛИ рассчитывает массив из 7 элементов в качестве результата. Каждый элемент в массиве результатов представляет собой подсчет. В примере, это массив, который рассчитывает СЧЁТЕСЛИ выглядит следующим образом:

{1; 1; 0; 1; 1; 0; 0}

Теперь нам просто нужно сложить элементы в этом массиве, который является идеальной задачей для СУММПРОИЗВ. Функция СУММПРОИЗВ является универсальной функцией, которая обрабатывает массивы изначально без какого-либо специального синтаксиса массива.

Если вы используете СУММПРОИЗВ для двух или более массивов, он будет кратен массивам вместе, подведет итоги, и рассчитает число. В этом случае мы используем СУММПРОИЗВ только для одного массива, поэтому он просто суммирует элементы в массиве и рассчитывает 4 в качестве результата.

Совпадения по строкам

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

Правило, подсчитывающее количество истин

FrameG2

Дата: Воскресенье, 28.02.2016, 17:31 |
Сообщение № 1

Группа: Пользователи

Ранг: Новичок

Сообщений: 17


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

Здравствуйте!
Сразу скажу, что в Excel я слабовато разбираюсь.
Итак, есть число, из которого вычитаются другие числа из диапазона и проверяется, >=0 или нет. В зависимости от результата ячейки из диапазона закрашиваются определённым цветом. Выглядит это примерно так (прикрепил пример, там наглядней):

число-СУММ(диапазон чисел)>=0 (зелёный цвет)
число-СУММ(диапазон чисел)<0 (жёлтый цвет)

Но надо добавить ещё одно правило: если правило «число-СУММ(диапазон чисел)<0 (жёлтый цвет)» повторилось 5 раз (дало 5 истин), то ячейка закрашивается в красный. Т.е. в примере после 5-ти жёлтых ячеек должны идти красные. Как такое правило сделать?

К сообщению приложен файл:

Test.xlsx
(10.5 Kb)

 

Ответить

_Boroda_

Дата: Воскресенье, 28.02.2016, 18:10 |
Сообщение № 2

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

Так нужно?

К сообщению приложен файл:

Test_1.xlsx
(10.8 Kb)


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

FrameG2

Дата: Воскресенье, 28.02.2016, 18:57 |
Сообщение № 3

Группа: Пользователи

Ранг: Новичок

Сообщений: 17


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

_Boroda_, то, что нужно! Спасибо!

 

Ответить

vikttur

Дата: Воскресенье, 28.02.2016, 19:08 |
Сообщение № 4

Группа: Друзья

Ранг: Участник клуба

Сообщений: 2941

Код

=СЧЁТ(1/($B$2-ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9;СМЕЩ($C$2;;;1;СТОЛБЕЦ($A$1:A$1)))<=0))>5

Саня, тех, которых >0, не обязательно 4
понял :)

Сообщение отредактировал viktturВоскресенье, 28.02.2016, 19:10

 

Ответить

AlexM

Дата: Воскресенье, 28.02.2016, 19:17 |
Сообщение № 5

Группа: Друзья

Ранг: Участник клуба

Сообщений: 4257


Репутация:

1046

±

Замечаний:
0% ±


Excel 2003

Еще вариант формулы в УФ

Код

=СТОЛБЕЦ(A1)>=ПОИСКПОЗ(1;—($B2<ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9;СМЕЩ($C2;;;;СТОЛБЕЦ($A2:$O2))));)+5

vikttur, Если в В2 вставить 340, то желтых получится 4 шт.
Формулу Александра Excel2003 не видит

К сообщению приложен файл:

Test.xls
(25.0 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.

 

Ответить

vikttur

Дата: Воскресенье, 28.02.2016, 19:30 |
Сообщение № 6

Группа: Друзья

Ранг: Участник клуба

Сообщений: 2941

Если в В2 вставить 340, то желтых получится 4 шт.

Не смертельно — вместо «<=» оставить «<«

 

Ответить

FrameG2

Дата: Понедельник, 29.02.2016, 00:00 |
Сообщение № 7

Группа: Пользователи

Ранг: Новичок

Сообщений: 17


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

А можно вас попросить немного модифицировать решение?
Правило, которое закрашивает в красный цвет, смещая вправо на 5, должно теперь учитывать символ «-«. Т.е. от начала жёлтых ячеек смещать вправо на 5 + на количество «-» в жёлтых ячейках.
На обновлённом примере, который я прикрепил, в 3-ей строке в жёлтых ячейках присутствует 3 символа «-«, следовательно, красные ячейки должны сместиться не на 5, а на 5+3=8 (т.е. ячейки с числами 50, 60, 40 должны остаться жёлтыми, а все, что правее — красными). Поможете с решением?

К сообщению приложен файл:

Test2.xlsx
(10.9 Kb)

Сообщение отредактировал FrameG2Понедельник, 29.02.2016, 00:02

 

Ответить

Nic70y

Дата: Понедельник, 29.02.2016, 08:45 |
Сообщение № 8

Группа: Друзья

Ранг: Экселист

Сообщений: 8136


Репутация:

1999

±

Замечаний:
0% ±


Excel 2010

Код

=СТОЛБЕЦ()>НАИМЕНЬШИЙ(ЕСЛИОШИБКА(ЕСЛИ(ПОИСКПОЗ(($B2-ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9;СМЕЩ($C2;;;;СТОЛБЕЦ($A2:$O2))));ЕСЛИ(($B2-ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9;СМЕЩ($C2;;;;СТОЛБЕЦ($A2:$O2))))<0;($B2-ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9;СМЕЩ($C2;;;;СТОЛБЕЦ($A2:$O2)))));)=СТОЛБЕЦ($A2:$O2);СТОЛБЕЦ($A2:$O2));1=2);5)+2

К сообщению приложен файл:

2096949.xlsx
(11.1 Kb)


ЮMoney 41001841029809

 

Ответить

FrameG2

Дата: Понедельник, 29.02.2016, 14:14 |
Сообщение № 9

Группа: Пользователи

Ранг: Новичок

Сообщений: 17


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

Nic70y, спасибо! Вроде работает! Довольно жёсткое решение :)
Правильно ли я понял, если мне понадобится
— изменить красное «смещение» с 5 до 7, я просто заменяю цифру 5 на 7 ?
— увеличить таблицу (область с условным форматированием) вправо, то придётся вручную менять O2 на новый столбец?
— добавить столбцы слева, то придётся вручную прибавлять такое же кол-во к последней цифре 2 ?
Можно ли последние 2 пункта как-то автоматизировать? :)
И что означает 1=2 в конце?

Сообщение отредактировал FrameG2Понедельник, 29.02.2016, 14:14

 

Ответить

Nic70y

Дата: Понедельник, 29.02.2016, 14:17 |
Сообщение № 10

Группа: Друзья

Ранг: Экселист

Сообщений: 8136


Репутация:

1999

±

Замечаний:
0% ±


Excel 2010

FrameG2, да все верно, задайте сразу максимальный диапазонможно усложнить формулу, но думаю не стоит…

И что означает 1=2 в конце?

=ЛОЖЬ


ЮMoney 41001841029809

 

Ответить

FrameG2

Дата: Понедельник, 29.02.2016, 14:33 |
Сообщение № 11

Группа: Пользователи

Ранг: Новичок

Сообщений: 17


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

Nic70y, да, сразу не обратил внимания, есть небольшой минус у решения. Правило должно учитывать «-«, но оно учитывает ещё и пустые ячейки, хотя не желательно. Т.е. пустые жёлтые ячейки и ячейки с числами должны обрабатываться одинаково. Например, если жёлтая ячейка начинается с числа, а затем идут 4 пустые ячейки, то дальше сразу должны идти красные. Возможно ли подкорректировать решение?

 

Ответить

Nic70y

Дата: Вторник, 01.03.2016, 07:22 |
Сообщение № 12

Группа: Друзья

Ранг: Экселист

Сообщений: 8136


Репутация:

1999

±

Замечаний:
0% ±


Excel 2010

FrameG2, а если пустые будут в зеленых, то откуда должны начаться желтые?


ЮMoney 41001841029809

 

Ответить

FrameG2

Дата: Вторник, 01.03.2016, 12:03 |
Сообщение № 13

Группа: Пользователи

Ранг: Новичок

Сообщений: 17


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

Nic70y, а жёлтые вычисляются по формуле, которая в правилах указана. Первая ячейка, в которой «число-СУММ(диапазон чисел)<0», становится жёлтой. Зелёные и жёлтые работают как надо (можно проследить, как они работают, заменив ячейки с числами на пустые). А вот красные должны появиться от начала жёлтых через 5 ячеек, если в них только ячейки с числами или пустые ячейки (помогло решение, предложенное во 2-ом посте), или на 5+x, где x — кол-во ячеек с символом «-» в жёлтой области (модифицированное задание).
Пустые ячейки могут быть и в зелёных, и в жёлтых, и в красных. И ячейки с «-» тоже могут быть и в зелёных, и в жёлтых, и в красных. Пустые ячейки каждым правилом воспринимаются как 0. Ячейки с «-» воспринимаются как 0 «зелёным» и «желтым» правилами, а для «красного» это означает сместиться ещё правее (это и есть модифицированное задание).
Извиняюсь, что сразу не указал эти моменты.

Может быть какие-то обходные варианты можно(проще) сделать? Допустим, взять решение со второго поста и добавить 4-ое правило, которое поверх красных докрашивает жёлтые, если в жёлтых имеются ячейки с «-«. :)

Сообщение отредактировал FrameG2Вторник, 01.03.2016, 13:46

 

Ответить

МВТ

Дата: Вторник, 01.03.2016, 21:30 |
Сообщение № 14

Группа: Проверенные

Ранг: Обитатель

Сообщений: 476


Репутация:

137

±

Замечаний:
0% ±


Excel 2007

Я формулами не умею, вот макрос нарисовался. Можно повесить на событие листа Change или Calculate, в зависимости от реальной задачи
[vba]

Код

Sub tt()
Dim I As Long, Sm As Long, Cnt As Long, iCol As Long
iCol = Cells(2, Columns.Count).End(xlToRight).Column
For I = 3 To iCol
    Sm = WorksheetFunction.Sum(Range(Cells(2, 3), Cells(2, I)))
    Sm = [b2] — Sm
    If Sm >= 0 Then
        Cells(2, I).Interior.Color = vbGreen
        Cnt = 0
    Else
        If Cells(2, I) <> «-» Then Cnt = Cnt + 1
        If Cnt >= 5 Then Cells(2, I).Interior.Color = vbRed Else Cells(2, I).Interior.Color = vbYellow
    End If
Next
End Sub

[/vba]

 

Ответить

FrameG2

Дата: Среда, 02.03.2016, 13:59 |
Сообщение № 15

Группа: Пользователи

Ранг: Новичок

Сообщений: 17


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

МВТ, спасибо, только с макросами я плохо дружу :)
Как повесить на событие листа я пока не разобрался (если подскажете, как это сделать, буду благодарен), разобрался только как вручную макрос запускать.
И есть вопросы по коду:
— почему-то он красные ячейки закрашивает через 4 жёлтых, а не через 5 (хотя в коде >=5). Если поставить >=6, то вроде нормально становится (странно).
— что надо изменить, чтобы код работал не на одну строку, а на несколько?
— как можно ограничить кол-во закрашиваемых столбцов? Т.е. чтобы закрашивало не до бесконечности, а до определённого предела?

Сообщение отредактировал FrameG2Среда, 02.03.2016, 14:00

 

Ответить

МВТ

Дата: Среда, 02.03.2016, 18:55 |
Сообщение № 16

Группа: Проверенные

Ранг: Обитатель

Сообщений: 476


Репутация:

137

±

Замечаний:
0% ±


Excel 2007

FrameG2, так приведите адекватный пример: каким числом ограничить количество колонок, откуда берутся данные (вводятся вручную или получаются в результате работы формул), какие строки будут задействованы в «процессе»? А пока это — «пойди туда, не знаю куда…»

 

Ответить

FrameG2

Дата: Среда, 02.03.2016, 23:39 |
Сообщение № 17

Группа: Пользователи

Ранг: Новичок

Сообщений: 17


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

МВТ, виноват!
Итак, опишу ещё раз и максимально подробно своё задание :)
Имеется файл, который я прикрепил. В нём простая таблица, которую условно можно разделить на 2 части: столбец B (B2 и ниже) и всё остальное (C2 и правее-ниже). Таблица в дальнейшем будет расширяться вправо-вниз. Ячейки, которые расположены правее столбца B, закрашиваются в 3 цвета (зелёный, жёлтый, красный) в зависимости от результата вычислений по формуле и от одного дополнительного условия. Красный цвет в прикреплённом примере работает не совсем правильно, т.к. не учитывает дополнительное условие (ячейки с символом «-«). Именно его нужно учесть! В остальном же всё верно.

Опишу алгоритм закрашивания на примере строки №2:
* Зелёный цвет (2 условия): ячейка_B2_не_пуста * B2-сумма(диапазон_чисел_справа_от_B2)>=0. В области ‘C2 и правее’ пустые ячейки и ячейки с символом «-» воспринимаются «зелёным цветом» как 0.
* Жёлтый цвет (2 условия): ячейка_B2_не_пуста * B2-сумма(диапазон_чисел_справа_от_B2)<0. В области ‘C2 и правее’ пустые ячейки и ячейки с символом «-» воспринимаются «жёлтым цветом» как 0.
* Красный цвет (2 условия): ячейка_B2_не_пуста * смещение 5+X от начала жёлтых ячеек, где 5 означает 5 раз подряд повторилось «жёлтое» условие B2-сумма(диапазон_чисел_справа_от_B2)<0, X означает количество ячеек с символом «-» среди жёлтых ячеек (именно среди жёлтых, не зелёных!). В области ‘C2 и правее’ пустые ячейки воспринимаются «красным цветом» как 0, а ячейки с символом «-» среди жёлтых ячеек воспринимаются «красным цветом» как дополнительное смещение вправо.

На данный момент верно работают только зелёный и жёлтый цвета (реализовано через Условное Форматирование).

Поэтому задание такое: реализовать правильную работу всех 3-х цветов.

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

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

upd: если что, в столбце B могут быть числа от 0 и выше, а также пустые ячейки.

К сообщению приложен файл:

Test21.xlsx
(9.6 Kb)

Сообщение отредактировал FrameG2Четверг, 03.03.2016, 00:08

 

Ответить

МВТ

Дата: Четверг, 03.03.2016, 21:49 |
Сообщение № 18

Группа: Проверенные

Ранг: Обитатель

Сообщений: 476


Репутация:

137

±

Замечаний:
0% ±


Excel 2007

FrameG2, попробуйте так
[vba]

Код

Sub tt()
Const StartRow = 2, StartCol = 2, MaxCol = 9 ^ 9
Dim I As Long, J As Long, Sm As Long, Cnt As Long, iCol As Long
    Application.ScreenUpdating = False
    ActiveSheet.UsedRange.Interior.Color = vbWhite
    For J = StartRow To Cells(Rows.Count, StartCol).End(xlUp).Row
        iCol = WorksheetFunction.Min(Cells(J, Columns.Count).End(xlToRight).Column, MaxCol)
        For I = StartCol + 1 To iCol
            If Not IsEmpty(Cells(J, I)) Then
                Sm = WorksheetFunction.Sum(Range(Cells(J, StartCol + 1), Cells(J, I)))
                Sm = Cells(J, StartCol) — Sm
                If Sm >= 0 Then
                    Cells(J, I).Interior.Color = vbGreen
                    Cnt = 0
                Else
                    If Cells(J, I) <> «-» Then Cnt = Cnt + 1
                    If Cnt >= 6 Then Cells(J, I).Interior.Color = vbRed Else Cells(J, I).Interior.Color = vbYellow
                End If
            End If
        Next
    Next
    Application.ScreenUpdating = True
End Sub

[/vba]

 

Ответить

FrameG2

Дата: Четверг, 03.03.2016, 22:07 |
Сообщение № 19

Группа: Пользователи

Ранг: Новичок

Сообщений: 17


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

МВТ, пока работает не совсем так, как надо:
— Красные ячейки смещаются вправо и от «-«, и от пустых, а должны только от «-«.
— Пустые ячейки не закрашиваются, а должны.
— Желательно, чтобы остальные ячейки, где отсутствуют числа, не закрашивались в белый… Т.е. лучше, чтобы сетка была видна (прозрачный цвет ячеек).

 

Ответить

Nic70y

Дата: Пятница, 04.03.2016, 08:23 |
Сообщение № 20

Группа: Друзья

Ранг: Экселист

Сообщений: 8136


Репутация:

1999

±

Замечаний:
0% ±


Excel 2010

УФ

Код

=СТОЛБЕЦ()>НАИМЕНЬШИЙ(ЕСЛИ(ЕЧИСЛО(—(0&ЕСЛИ(($B2-ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9;СМЕЩ($C2;;;;СТОЛБЕЦ($C2:$V2)-2)))<0;$C2:$V2)));СТОЛБЕЦ($C2:$V2));5)

К сообщению приложен файл:

9639594.xlsx
(10.3 Kb)


ЮMoney 41001841029809

 

Ответить

Понравилась статья? Поделить с друзьями:
  • Количество информации в битах excel
  • Количество интервалов формула excel
  • Количество интервалов для гистограммы excel
  • Количество значений в столбце excel с условием если
  • Количество значений в разных диапазонах excel