WedX - журнал о программировании и компьютерных науках

HLOOKUP с подстановочным знаком и SUM для нескольких столбцов

Мне нужна помощь в следующем:

  1. У меня есть рабочий лист, содержащий некоторые данные. Строка 1 — это заголовок, а начиная со строки 2 — данные. В конце есть сумма для всех данных выше. Этот рабочий лист является динамическим, т. Е. Если за неделю 1 содержится 200 строк данных, то за неделю 2 может быть 250 или 190 строк данных.

Аналогично, столбцы меняются каждую неделю. На этой неделе у меня 18 столбцов, а на следующей неделе у меня может быть 20 столбцов.

  1. В строке № 1 заголовка у меня есть два заголовка «CTAEO1P» и «CTAEO2P».

  2. На другом листе я хочу добавить «итоговы» обоих этих столбцов, т. Е. Отдельные итоги CTAEO1P = 32,98 + CTAEO2P = 46,25 = 79,23.

  3. Я использую именованные диапазоны и назвал весь рабочий лист с данными «MT». Диапазон - это весь рабочий лист, поэтому, когда на следующей неделе я скопирую данные с другого листа, мне не нужно будет настраивать диапазон.

  4. Я использую следующую формулу, любезно предоставленную другим экспертом на этом форуме:

=HLOOKUP("CT*",MT,MATCH(9^99,INDEX(MT,0,MATCH("CT*",INDEX(MT,1,0),0))),0)

  1. Эта формула ищет любой столбец, начинающийся с «CT», а затем «Сопоставление (9 ^ 99» и «индекс» находит последнее число в этом столбце (в данном случае общее), а затем возвращает это значение на листе. В этом случае эта формула возвращает только "32,98", так как это первое вхождение.

  2. Я думаю, что могу использовать здесь формулу «Суммапроизведение», но тогда а) мне придется создать более одного именованного диапазона, один для строки заголовка, а другой для строки «Итого», б) каждую неделю мне придется корректировать диапазон для строки "Всего". Если только я не смогу вложить часть "Match (9 ^ 99...") в функцию "СУММПРОИЗВ".

  3. Я хочу использовать только диапазон «MT» и хочу добавить итоги всех столбцов, начинающихся с «CT».

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

С уважением

Тарик

09.03.2014

  • ПОЧЕМУ ТЫ КРИЧИШЬ? (По этому поводу я убрал крики для вас.) 09.03.2014
  • Я разместил ответ, но также отмечу, что вы можете упростить формулу в 4. выше, используя эту версию - =LOOKUP(9^99,INDEX(MT,0,MATCH("CT*",INDEX(MT,1,0),0))) 09.03.2014

Ответы:


1

Я забуду о диапазоне MT, пока ваши данные начинаются с A1, это будет работать

=SUMPRODUCT(ISNUMBER(SEARCH("CT*";OFFSET(A1;0;0;1;MATCH(9^99;2:2))))*OFFSET(A1;MATCH(9^99;A:A)-1;0;1;MATCH(9^99;2:2)))

В зависимости от региональных настроек вам может потребоваться заменить разделитель полей ";" к ","

09.03.2014
  • Это может не быть проблемой здесь, но если вы ИЩИТЕ CT *, который будет соответствовать любому столбцу, который содержит CT в заголовке, а не только столбцам, начинающимся с CT, я бы использовал функцию LEFT согласно моему ответу. 09.03.2014

  • 2

    Я думаю, вы можете использовать относительно простое SUMPRODUCT решение, подобное этому

    =SUMPRODUCT((LEFT(INDEX(MT,1,0),2)="CT")*ISNUMBER(MT),MT)/2

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

    Если вам не нравится такой подход, то предполагая, что в первом столбце MT всегда есть данные и что итоги для каждого столбца будут в одной строке, вы можете использовать SUMIF, как это

    =SUMIF(INDEX(MT,1,0),"CT*",INDEX(MT,MATCH(9^99,INDEX(MT,0,1)),0))

    Это должно быть более эффективным, чем первая версия

    09.03.2014
  • Большое спасибо, Барри. Хотя все формулы работали, но СУММЕСЛИ работал лучше. Промежуточные итоги для каждого столбца начинались после столбца 27, поэтому я изменил последний бит формулы на ....,INDEX(MT,0,27)),0)). Спасибо большое. 09.03.2014
  • Новые материалы

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..


    Для любых предложений по сайту: [email protected]