Как правильно выровнять средние и стандартные отклонения в электронной таблице?

2

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

ID  Value   
1   1235        
1   326     
1   567     
2   768     
2   646     
3   4367        
3   346     
3   35      
4   436     
5   3467        
5   46      
6   3467        
6   3532        
6   457     
7   3463        
7   3463
7   9328
7   2498

и т.д

Я хочу вычислить в Excel / Calc среднее и SD, чтобы значения были выровнены должным образом (в идеале это были бы объединенные ячейки), учитывая его одну, две, три ... и т. Д. Ячейки ввода, одну ячейку вывода.

Пример скриншота:

введите описание изображения здесь

Что я хочу получить. AVG и SD означают правильные значения для (случайных) данных; таким образом, AVG и SD правильно выровнены] 1

Я хочу, то есть автоматизированный способ расчета среднего и SD с учетом разных n, чтобы он был правильно выровнен / отформатирован.

Должен быть простой способ сделать это, но сейчас я ничего не понимаю. -_-

Буду признателен за любое предложение.

Jack6
источник

Ответы:

1

Это несложно, если вы предполагаете, что Столбец Aотсортирован, поэтому мы имеем дело со смежными диапазонами в Столбце B (что и предлагает визуальный аспект вашего вопроса). Настройте Столбец Eкак вспомогательный столбец с этой формулой:

  • E2=IF(A2=A3, E3, ROW())

Для каждой строки это определяет последнюю строку диапазона, в котором находится текущая строка. Затем вы можете получить нужные результаты с

  • B2=IF(A1=A2, "", AVERAGE(B2:INDIRECT("B" & E2)))
  • C2=IF(A1=A2, "", STDEV(B2:INDIRECT("B" & E2)))

(Или используйте любой другой метод расчета стандартного отклонения.) Это проверяет, является ли это первая строка диапазона. Если это так, он использует INDIRECT()функцию для построения диапазона между текущей ячейкой и последней ячейкой с тем же значением идентификатора.

       

И, конечно, вы можете скрыть Столбец Eили использовать какой-либо столбец вне поля зрения (например, Z) в качестве вспомогательного столбца. Обратите внимание, что это решение не использует формулы массива.

Скотт
источник
Небольшой код и элегантный, и вспомогательный столбец не является проблемой, так как он может быть удален с пути, если это будет необходимо. Это делает то, что я хотел. Конечно, я должен был рассмотреть и сводную таблицу. Спасибо всем троим за ваш вклад.
Jack6
2

Это не совсем то, что вы просили, но я бы использовал сводную таблицу:

Сводная таблица со средним и стандартным отклонением

(Я изменил заголовок первого столбца на ID и отформатировал второй и третий столбцы, чтобы показывать только два десятичных знака, в противном случае это только то, что показано в PivotTable Builder.)

Вы можете получить то, что просили, разместив:

=IF($A2=$A1,"",AVERAGEIF($A2:$A19,$A2,$B2:$B19))

в С2 и:

=IF($A2=$A1,"",STDEV.P(INDIRECT("R"&MATCH($A2,$A:$A,0)&"C2:R"&MATCH($A2,$A:$A,1)&"C2",0)))

в D2 и заполнение обеих колонок вниз. Внешний IF в каждой формуле должен помещать значение только в первую строку, содержащую определенный идентификатор. Остальная часть формулы C2 должна быть простой, AVERAGEIF усредняет числа, для которых верны определенные критерии. В этом случае он просматривает первый столбец, выбирает числа с тем же значением, что и значение в текущей строке в первом столбце, а затем усредняет соответствующие числа во втором столбце.

К сожалению, нет «STDEVIF» (по крайней мере, в Excel 2011 на Mac, возможно, есть в какой-либо программе для работы с электронными таблицами, которую вы используете. Если это так, просто используйте его вместо AVERAGE в формуле C2), поэтому вы должны быть хитрыми :-). Подход заключается в том, чтобы найти диапазон ячеек, для которого требуется стандартное отклонение, создать ссылку на эти ячейки, а затем передать эту ссылку в STDEV.P. Диапазон строится путем нахождения первой строки в столбце 1 с тем же значением, что и значение в текущей строке в столбце 1, затем нахождения последнейстрока в столбце 1 с тем же значением, что и значение в текущей строке в столбце 1. Эти два значения очерчивают верхнюю и нижнюю часть поддиапазона столбца 1, который вы хотите использовать, поэтому создайте ссылку на стиль R1C1 в строке, используйте INDIRECT чтобы превратить его в реальную ссылку, а затем передать ее в STDEV.P. Просто! :-) Хорошо, это немного отвратительно, но это работает.

карта с легендой и пояснительными подписями на двух языках
источник
2

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

введите описание изображения здесь

Для построения таблицы с формулами используйте следующие две функции.

В С2 поставь

=IF(A2<>A1,AVERAGEIF($A$2:$A$13,A2,$B$2:$B$13),"")

В D2 поставить и войти нажатием ctrl+shift+enter

=IF(A2<>A1,STDEV(IF($A$2:$A$13=A2,$B$2:$B$13)),"")

Затем скопируйте эти формулы вниз

IF (A2 <> A1 ... в начале говорит, что показывает только то, что столбец A отличается между этой строкой и приведенной выше.

Averageif работает точно так, как вы думаете.

Столбец D - это формула массива, поэтому сначала он вводится и выполняет оператор if для каждой ячейки в диапазоне, и он будет возвращать массиву что-то вроде (1,14,13,3, FALSE, FALSE ...) для каждой ячейки и затем рассчитывает стандартное отклонение, которое должно игнорировать значения FALSE.

Этот метод предполагает, что данные отсортированы по идентификатору. Среднее и стандартное вычисление Dev были бы правильными, если бы они не были отсортированы, но они будут отображаться при каждом изменении идентификатора, а не только при первом.

gtwebb
источник