Как подсчитать уникальные или последние повторяющиеся значения на основе другого столбца? - PullRequest
2 голосов
/ 18 июня 2020

Я приложил пример ниже. У меня есть большой лист, похожий на таблицу Raw Data с изображения. Моя цель - подсчитать уникальные вхождения на основе первого столбца (идентификатора) таблицы результатов.

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

Однако в таблице сырых данных есть несколько повторяющихся идентификаторов. Я хочу подсчитывать только те, которые отмечены зеленым (то есть последнее появление), а не считать первое появление красным. В этом примере есть только 2 дубликата, но может быть и 3 дубликата.

Наконец, я хочу добавить цену из таблицы сырых данных с тем же основным идентификатором, который показан в столбце «Итого» таблицы результатов.

Example Data

Ответы [ 3 ]

2 голосов
/ 18 июня 2020

используйте:

=ARRAYFORMULA(QUERY(REGEXREPLACE(""&SORTN(ARRAY_CONSTRAIN(SORT({A3:B, 
 ROW(A3:A)}, 1, 1, 3, 0), 99^99, 2), 99^99, 2, 1, 0), "-\d+", )*1, 
 "select Col1,count(Col1),sum(Col2) 
  where Col1 <> 0 
  group by Col1 
  label Col1'ID', count(Col1)'Count',sum(Col2)'Total'"))

enter image description here

0 голосов
/ 18 июня 2020

Попробуйте следующее:

=QUERY(
  FILTER(
    {REGEXEXTRACT(A3:A, "^0*(\d+)-"), B3:B},
    MATCH(
      ROW(A3:A),
      QUERY(
        FILTER({A3:A, ROW(A3:A)}, A3:A <> ""),
        "SELECT MAX(Col2)
         GROUP BY Col1
         LABEL MAX(Col2) ''",
        0
      ),
      0
    )
  ),
  "SELECT Col1, COUNT(Col1), SUM(Col2)
   GROUP BY Col1
   ORDER BY Col1
   LABEL Col1 'ID', COUNT(Col1) 'Count', SUM(Col2) 'Total'",
  0
)

enter image description here

0 голосов
/ 18 июня 2020

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

Один из подходов к этому - чтение вашей таблицы вверх ногами, чтобы разрешить использование для нее Vlookup (поскольку Vlookup ищет верхние значения), а затем применить Vlookup к результатам. Все это можно сделать в одной формуле, но, чтобы вам было проще ее модифицировать, я разделил ее на несколько этапов.

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

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

enter image description here

...