Выделите указанное количество ячеек по горизонтали, если выполнено условие

Один из способов, который работал для меня, - перейти в JRE System Library -> right clik -> build path -> configure build path -> добавить внешние банки -> выбрать банку и скомпилировать.

1
задан Cake 17 January 2019 в 03:14
поделиться

2 ответа

Попробуйте выполнить

=ISNUMBER(SEARCH("Task",$A1))

Screenshot

0
ответ дан Harun24HR 17 January 2019 в 03:14
поделиться

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

=AND(ISNUMBER(MATCH("task",$A1:A1,1)),LEFT(INDEX($A1:A1,,MATCH("task",$A1:A1,1)),FIND(" ",INDEX($A1:A1,,MATCH("task",$A1:A1,1))))+MATCH("task",$A1:A1,1)-COLUMN()>=1,COLUMN()>=MATCH("task",$A1:A1,1))

Более подробно, есть external AND с 3 условиями:

  1. ISNUMBER(MATCH("task",$A1:A1,1): проверяет динамический диапазон $A1:A1 для ячейки, содержащей # / task. Редактировать - не требуется при условном форматировании.
  2. 1136 Легче всего понять, разбитый на куски. В качестве примера предположим, что ячейка B1 содержит 2 / task.
    • LEFT(INDEX($A1:A1,,MATCH("task",$A1:A1,1)),FIND(" ",INDEX($A1:A1,,MATCH("task",$A1:A1,1)))): находит ячейку # / task в B1 и извлекает текст слева от первого пробела, возвращая 2.
    • +MATCH("task",$A1:A1,1): добавляет номер столбца ячейки с # / task, т.е. + 2 = 4.
    • -COLUMN(): вычитает текущий столбец, о котором идет речь. Так для клетки B1, 4 - 2 = 2; C1, 4 - 3 = 1; и D1, 4 - 4 = 0 и т. д.
    • >=1: если результат предыдущего шага больше 1, ячейка должна быть выделена. Таким образом, B1 и C1 выделены, а D1 нет.
  3. COLUMN()>=MATCH("task",$A1:A1,1): гарантирует, что выделение только расширяется вправо. Если бы это условие было исключено, A1 также будет выделено.

enter image description here

РЕДАКТИРОВАТЬ:

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

=AND(LEFT(INDEX($A1:A1,,AGGREGATE(14,6,COLUMN($A1:A1)/ISNUMBER(SEARCH("task",$A1:A1)),1)),FIND(" ",INDEX($A1:A1,,AGGREGATE(14,6,COLUMN($A1:A1)/ISNUMBER(SEARCH("task",$A1:A1)),1))))+AGGREGATE(14,6,COLUMN($A1:A1)/ISNUMBER(SEARCH("task",$A1:A1)),1)-COLUMN()>=1,COLUMN()>=AGGREGATE(14,6,COLUMN($A1:A1)/ISNUMBER(SEARCH("task",$A1:A1)),1))

enter image description here

Другой взгляд:

[ 1150] enter image description here

0
ответ дан BigBen 17 January 2019 в 03:14
поделиться
Другие вопросы по тегам:

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