-1

Я работаю над электронной таблицей в Microsoft Excel 2010. В таблице у меня есть 3 рабочих листа. Они известны как:

  • первый
  • второй
  • случаи

Теперь в 1-м и 2-м листах внизу есть таблица, которая содержит подробности случая. На рабочем листе Cases также есть таблица дел, но она пустая. Я хочу, чтобы данные с 1-го и 2-го рабочего листа автоматически вставлялись в таблицу рабочего листа Cases.

Как этого достичь? Я попытался выполнить консолидацию по категориям, щелкнув «Консолидировать», выбрав соответствующие метки и данные на 1-м и 2-м листе, и добавил их, щелкнув «ОК», но я получил сообщение о том, что данные не были консолидированы.

Вот ссылка на электронную таблицу, которую можно скачать:

таблица

Можете ли вы дать мне какие-либо предложения по этому поводу или кто-нибудь может попробовать применить мою электронную таблицу к документу Excel и посмотреть, сможет ли он заставить ее работать?

PS Я знаю, что 2-я рабочая таблица содержит пустые данные в своей сводной таблице дел, но эта таблица может содержать некоторые данные в будущем.

Благодарю вас

1 ответ1

1

Вставьте эту формулу в ячейку B4 листа "Случаи":

=IF(NOT(ISBLANK('1st'!B25)),'1st'!B25,IF(NOT(ISBLANK(INDIRECT("'2nd'!R" & (ROW($B4)-(COUNTA('1st'!$B:$B)-COUNTA('1st'!$B$1:$B$24))-4+25) & "C" & COLUMN(B4),FALSE))),INDIRECT("'2nd'!R" & (ROW($B4)-(COUNTA('1st'!$B:$B)-COUNTA('1st'!$B$1:$B$24))-4+25) & "C" & COLUMN(B4),FALSE),""))

Скопируйте формулу в другие ячейки рабочего листа; относительные адреса будут настроены автоматически.


Формула работает так:

  1. Проверьте, есть ли контент в 1-м. Если да, скопируйте его.
  2. Если нет, выясните, сколько всего записей в 1-м месте. (Это делается с помощью функции COUNTA на всем столбце B в 1-м и вычитая количество непустых ячеек над фактическими данными случая.) Используйте эту информацию вместе с номером текущей ячейки, чтобы узнать местоположение ячейки, которая должна быть скопирована со 2-й.
  3. Создайте адрес ячейки и использовать функцию ISBLANK на INDIRECT функции с этим адресом , чтобы проверить , если ячейка пуста.
  4. Если это не так, снова используйте функцию INDIRECT чтобы отобразить ее. Если он пуст, просто отобразите пустую строку.

Хотя это работает, это в некоторой степени беспорядок и - в зависимости от количества случаев - может вызвать проблемы с производительностью, потому что использование большого количества функций INDIRECT довольно медленное.

Я бы порекомендовал использовать другой инструмент для таких задач, как ваша, например, Microsoft Access или другой инструмент для работы с базами данных.

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