Вот моя проблема с Excel. У меня есть 3 вкладки, 1-й имеет данные, которые время от времени обновляются и изменяет количество строк. вкладка 2 имеет формулу, которая используется для вычета конкретной информации из вкладки 1. Вкладка имеет сводную таблицу, которая использует данные из вкладки 2 для отображения результатов.

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

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

Например, введите 100 строк на вкладке 1, примените 100 формул для каждой строки на вкладке 2, которые соответствуют каждой строке на вкладке 1 с правильными строками (аналогично копированию формулы для каждой строки).

Это решит мою проблему, не включив пробелы в сводную таблицу, поэтому общее число всегда будет равно итоговым значениям вкладки 1.

PS Я пытался заставить Pivot игнорировать пропуски, нули, ошибки и т.д., Но он по-прежнему учитывает все строки, которые я скопировал формулу, независимо от того, что он извлекает. Так что это не работает для меня.

Ваша помощь очень ценится.

1 ответ1

-1

Что я узнал после анализа ОП, так это то, что у вас есть только ДВА проблемы.

  1. Подсчитайте количество заполненных строк - это Tab1.

  2. Напишите и выполните формулу для каждой заполненной строки в Tab2.

Для этого я хотел бы показать вам весь процесс, который не требует VBA.

Для лучшего понимания я взял меньший диапазон данных.

Первая задача - подсчитать непустые строки. Для этого вы можете использовать любую из формул.

= СЧЕТЗ (A8:B12)

=(ROWS(A8:B12) + ROWS(B8:B12)) - COUNTIF(A8:B12, "")

= ROWS(A8:B12) * КОЛОННЫ (A8:B12) -COUNTBLANK (A8:B12)

NB: Количество строк, которое вы получите, равно 7. Фактически каждая формула считает непустые ячейки для диапазона данных.

Если ты пишешь,

= CountA(A1:A8) вы получите 4.

Выберите подходящий, я бы предпочел Первый сет, причина проста. Так как вам нужно заполнить TAB2 Формулой. И формуле нужны значения в диапазоне данных, поэтому технически строки с пустыми ячейками должны быть исключены из упражнения.

Теперь 2-е задание, напишите формулу в Tab2.

= ЕСЛИ (И (Лист1!A8, Лист1!B8 <> ""), Лист1!A8+ Лист1!B8, "Строка не имеет данных")

Перетащите формулу, пока она не потребуется.

Помните, что это пример формулы, замените ее на свою.

Надеюсь, решение устраняет проблему. Оставьте комментарий, если он отличается.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .