Можно ли использовать функцию AVERAGE для данных, которые записываются автоматически и многократно, но начинаются снова после неопределенного периода времени?

  • Столбец 1 - это номер образца на данном компьютере. Так будет 1, 2, 3 и т.д.
  • Столбец 2 представляет собой фактические данные, записанные с тестового устройства. Это будет 4,35, 3,46, 7,89 и т.д.
  • В столбце 3 указано DAQ Start в строке, где записан первый образец. Затем, когда эта серия семплирования будет завершена, появится DAQ PAUSE .

В каждом тесте может быть взято 15 или 20 образцов. Затем, когда начинается следующая выборка, она начинается заново с DAQ Start и продолжается до тех пор, пока эта выборка не будет завершена. Это повторяется много раз в одной таблице.

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

Я хотел бы использовать ячейки DAQ Start и DAQ Pause чтобы установить эталон для каждого среднего значения. Как я могу это сделать?

2 ответа2

0

Да.

Вы могли бы, вероятно, сделать немного магии с AVERAGEIF , MATCH и OFFSET .

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

Чтобы объяснить это, добавьте столбец D и используйте эту формулу:

=IFERROR(IF(C2="DAQ Start",D1+1,D1),1)

IFERROR просто чтобы сделать его чистым. Этот столбец увеличивается каждый раз, когда попадает в "DAQ Start".

Четвертая колонка для «Серии»

Затем выберите весь набор данных и столбцов и создайте сводную таблицу (на ленте "Вставка"). Установите "Серии" в качестве строк и среднее значение "Данные" в качестве значений. Теперь у вас есть среднее значение каждой серии.

Сводная таблица с использованием «Series» в качестве строк и «Data» в качестве значений

0

Я не очень понимаю, что у вас есть в Колонка 1 Колонка A , но она кажется неважной, поэтому я ее проигнорирую.  Если это важно, пожалуйста, объясните это лучше.

Я предполагаю, что ваши данные начинаются со строки 1; т.е. у вас нет строки заголовка.  Положил 

=IF(C1="DAQ Start", AVERAGE(OFFSET(B1, 0, 0, MATCH("DAQ PAUSE",C1:C$8,0), 1)), "")

в ячейку D1 (или куда вы хотите, чтобы среднее значение пошло).  Измените 8 (в C$8) на номер последней строки, в которой у вас есть данные, или большее число (например, 999), если (как вы говорите) данные добавляются часто / автоматически, а строки между хорошими данными и Строка 999 пуста.  Затем перетащите / заполните ячейку D1 настолько, насколько вам нужно, чтобы покрыть все ваши данные.

  • =IF(C1="DAQ Start", …, "") говорит просто отображать пустым в столбце D в любой строке, где столбец C не является DAQ Start .

    В строках, где столбец C является DAQ Start (первая строка теста),

  • используйте MATCH("DAQ PAUSE",C1:C$8,0) чтобы найти первое вхождение DAQ PAUSE в столбце C под текущей строкой.  Это возвращает относительную позицию этого значения.  Например, если бы он был в текущей строке, MATCH вернул бы 1 - но, конечно, это невозможно, потому что текущая строка содержит DAQ Start там.  Но если бы DAQ PAUSE была в следующем ряду, MATCH вернул бы 2.
  • OFFSET(B1, 0, 0, MATCH("DAQ PAUSE",C1:C$8,0), 1) указывает диапазон, начинающийся с ячейки в столбце B текущей строки (со смещениями 0 и 0), который достаточно высок чтобы добраться до строки DAQ PAUSE (используя возвращаемое значение из MATCH в качестве количества строк) и шириной в один (1) столбец.
  • AVERAGE(OFFSET(B1, 0, 0, MATCH("DAQ PAUSE",C1:C$8,0), 1)) вычисляет среднее значение этого диапазона.

Например,

пример листа

среднее значение для 2, 3 и 10 - 5, а среднее для 1, 2, 3 и 42 - 12.  Мне не было ясно, что может быть между окончанием одного теста и началом другого; пока это не DAQ Start , моей функции все равно.

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