Я создал документ управления запасами для склада. Он имеет рабочий лист под названием «IN» и рабочий лист под названием «формулы». На листе «формулы» я создал сложную (ну... относительно сложную в любом случае) формулу, которая вычисляет точку, в которой мои запасы настолько низки, что мне нужно разместить заказ (точка пополнения запасов).
На рабочем листе «IN» я показываю, сколько у меня есть на складе (любого предмета). Прямо сейчас нет другого способа узнать, достаточно ли того, что у меня есть «ВНУТРЕННЕЕ» хранилище (по отношению к точке повторного заказа), если только я не перейду на страницу «формулы».
Я хочу сделать следующее:
Я хочу изменить цвет фона каждой отдельной ячейки между A4 и A1000 (независимо) на красный, в зависимости от того, меньше или равно ли от D4 до D1000 (независимо) их аналоги (которые находятся на расстоянии 37 ячеек друг от друга) в «Формулах» N10 к N36862.
Пример: Название инвентаря (A4) — его обычный цвет, потому что количество на складе (D4) больше, чем точка пополнения, указанная на листе формул (ячейка N10).
Другими словами: A4 (обычный цвет), потому что D4 > "формулы!N10"
В то же время A5 (красный), потому что D5 <= "формулы!N47"
В то же время A6 (обычный цвет), потому что D6 > "формулы!N84"
и т. д.
Причина, по которой мне нужен VBA для этого, заключается в том, что точки пополнения на листе «Формулы» (как вы можете видеть в примере) находятся на расстоянии 37 ячеек друг от друга, а также потому, что есть 1000 строк, и это делается вручную через меню условного форматирования. займет несколько дней (а у меня нет времени на работе, чтобы тратить на это).
Я намерен написать код в VBA для первой строки инвентаризации (A4), а затем скопировать его для каждой строки инвентаря, используя Excel для изменения значений строк (я знаю, как это сделать раньше, это сложно, но выполнимо). В любом случае, дайте мне знать, если у кого-то есть идея получше :)
Я пробовал более 20 различных методов, основанных на том, что я нашел в Интернете, но мне еще предстоит взломать этот код. Я до сих пор не нашел никого, кто пытался бы сделать то же самое, и поэтому интерпретация различных методов в соответствии с моими потребностями оказалась чрезвычайно сложной.
Здравствуйте, Тим, и спасибо, что нашли время. Причина, по которой я этого не сделал, заключается в том, что мне все равно придется обращаться к 1000 ячейкам по отдельности, чтобы создать столбец, который вы описываете. Кроме того, у меня уже есть много информации на странице "Формулы" и я не хочу добавлять больше, если этого можно избежать. Я хочу сделать документ как можно более простым для понимания (при этом пользователю не нужно много знать о Excel, чтобы интерпретировать его).
Я думаю, вы все еще можете сделать это с помощью условного форматирования. Вам нужно добавить условный формат, который применяется к A4: A1000, и настроить его на «форматирование ячеек, где эта формула верна» (это условное форматирование> новое правило> использовать формулу). Формула будет такой;
=$D4<=INDEX(formulas!N:N, ROW($D4)*37-138)
Очевидно, что тогда вам просто нужно установить цвет/форматирование, чтобы выделить соответствующие ячейки.
Быстрое объяснение; функция INDEX()
возвращает значение ячейки, вводя диапазон, в котором нужно искать, затем значения строки и столбца в виде отдельных координат - в этом случае вы говорите ей искать в столбце N листа формул и в другой части формулы вычисляет, в какой строке будет найдено соответствующее значение.
Спасибо, Спенсер, я ценю ваши усилия. К сожалению, это не сработало. Я ввел формулу точно, но получил ответ об ошибке. Сказав это, откуда берется * 37-138?
Ааа, извиняюсь, в чем была ошибка? *37-138
был предназначен для возврата правильной строки для каждого соответствующего значения (*
означает умножение и 4 x 37-138 = 10, 5 x 37-138 = 47, 6 x 37-138 = 84 и т. д.), если это имеет смысл?
Может быть, попробовать ввести формулу без =
в начале?
также, если имя листа неправильное, например, с заглавной буквой в начале, это будет иметь значение.
.... В норвежском языке есть выражение en... "Jeg bøyer meg i støvet". В буквальном переводе это означает «преклоняюсь перед прахом»… на самом деле это означает, что я настолько унижен величием чего-то, что преклоняюсь перед ним… СПАСИБО за вашу помощь. Честно говоря, я задавал тот же вопрос на другом форуме и получил там тот же ответ... Я бы НИКОГДА не разобрался с этим самостоятельно без серьезных курсов Excel. СПАСИБО!!!!! ТЫ МАСТЕР-ДЖЕДАЙ EXCEL!
@John123456789 John123456789 Спасибо, хотя на самом деле я все еще новичок в большинстве областей Excel, просто случайно знаю несколько полезных трюков здесь и там. Пожалуйста, не могли бы вы нажать галочку, чтобы отметить это как ответ на вопрос, если это работает?
Почему бы не добавить столбец на вкладку «формулы», который подтягивает значения ColN и выполняет необходимые вычисления? Тогда ваше условное форматирование просто.