Как отфильтровать частичное совпадение в строке Excel? - PullRequest
0 голосов
/ 18 января 2020

У меня есть лист Excel с датами в строках. Данный месяц следует использовать только один раз подряд. Как я могу отфильтровать, если в одной и той же строке есть две даты из одного и того же месяца?

Например, у меня есть следующий массив, и я хотел бы в результате получить совпадение в в этой строке (2012-03).

2012-03-04  2012-02-05  2012-04-06  2012-03-07  2012-10-08  2012-11-09  2012-12-10

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

=aggregate(9,6,(MATCH("*"&LEFT(A8,7)&"*","*"&LEFT(b8,7)&"*",0), MATCH("*"&LEFT(b8,7)&"*","*"&LEFT(c8,7)&"*",0)))

Хорошо, теперь я попробовал другой способ, и я мог бы найти решение, но с кодом длиной в километр ... Сначала я создал новый набор данных, сокращая дни с помощью: = "" & LEFT (A8,7) & "" Затем я сравнил все ячейки в данном ряду моего нового набора данных. Может ли кто-нибудь помочь мне, как сократить точные () части? Цель состоит в том, чтобы сравнить все.

= если ((или (точное (A2, B2), точное (A2, C2), точное (A2, D2), точное (A2, E2), точное (A2) , F2), точный (А2, G2), точный (А2, Н2), точный (А2, I2), точный (А2, J2), точный (А2, К2), точный (А2, L2), точный (А2, М2), точный (А2, N2), точный (А2, О2), точный (А2, Р2), точный (А2, В2), точный (А2, К2), точный (В2, С2), точный (В2, D2, ), точный (В2, Е2), точный (В2, F2), точный (В2, С2), точный (В2, Н2), точный (В2, I2), точный (В2, J2), точный (В2, К2) , точный (В2, L2), точный (В2, М2), точный (В2, Н2), точный (В2, О2), точный (В2, Р2), точный (В2, В2), точный (В2, R2), Точный (C2, D2), точный (С2, Е2), точный (С2, F2), точный (С2, С2), точный (С2, Н2), точный (С2, I2), точный (С2, J 2), точное (С2, К2), точный (С2, К2), точный (С2, L2), точный (С2, М2), точный (С2, Н2), точный (С2, О2), точный (С2, Р2), точный ( С2, Q2), точный (С2, R2), точный (D2, E2), точный (D2, F2), точный (D2, G2), точный (D2, Н2), точный (D2, I2), точный (D2 , J2), точный (D2, К2), точный (D2, L2), точный (D2, М2), точный (D2, N2), точный (D2, О2), точный (D2, Р2), точный (D2, Q2), точный (D2, R2), точный (Е2, F2), точный (Е2, G2), точный (Е2, Н2), точный (Е2, I2), точный (Е2, J2), точный (Е2, К2 ), точный (Е2, L2), точный (Е2, М2), точный (Е2, Н2), точный (Е2, О2), экс действовать (E2, P2), точный (Е2, Q2), точный (E2, R2), точный (F2, G2), точный (F2, H2), точный (F2, I2), точный (F2, J2), точное (F2, К2), точный (F2, L2), точный (F2, М2), точный (F2, N2), точный (F2, О2), точный (F2, P2), точный (F2, Q2), точный ( F2, R2), точный (G2, Н2), точный (G2, I2), точный (G2, J2), точный (G2, К2), точный (G2, L2), точный (G2, М2), точный (G2 , N 2), точный (G2, О2), точный (G2, Р2), точный (G2, Q2), точный (G2, R 2), точное (Н2, I2), точный (Н2, J 2), точное (Н2, К2), точный (Н2, L2), точный (Н2, М2), точный (Н2, N2), точный (Н2, О2), точный (Н2, Р2), точный (Н2, Q2), точный (Н2, R2, ), точный (I2, J2), точный (I2, К2), точный (I2, L2), точный (I2, М2), точный (I2, N 2), точное (I2, О2), точный (I2, Р2) , точный (I2, Q2), точный (I 2, R 2), точный (J2, К2), точный (J2, L2), точный (J2, М2), точный (J2, N2), точный (J2, О2), точное (J2, Р2), точный (J2, Q2), точный (J2, К2), точный (К2, L2), точный (К2, М2), точный (К2, N 2), точный (К2, О2), точное (К2, Р2), точный (К2, Q2), точный (К2, К2), точный (L2, М2), точный (L2, N2), точный (L2, О2), точный (L2, Р2), точный ( L2, Q2), точный (L2, R2), точный (М2, N2), точный (М2, О2), точный (М2, Р2), точный (М2, Q2), точный (М2, R 2), точное (N2, , О2), точный (N2, Р2), точный (N2, Q2), точный (N2, R 2), точное (О2, Р2), точный (О2, Q2), е xact (O2, R2), точный (P2, Q2), точный (P2, R2), точный (Q2, R2))), «тот же месяц», «ок»)

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 21 января 2020

Может быть, это поможет. Предположим, что диапазон дат находится в $A$1:$G$1. Также предположим, что записи являются числовыми датами; если они вместо текста, вы можете справиться с этим с помощью функции DATEVALUE. Тогда мы можем получить годы и месяцы диапазона с помощью:

{=YEAR($A$1:$G$1)}
{=MONTH($A$1:$G$1))

Эта и все другие формулы должны быть введены в виде формул массива ( Crtl Shift Введите ).

Далее мы конвертируем обратно в дату, но используем 1 для дня, чтобы все даты были перенесены на первый день месяца ( это означает, что любые даты того же месяца сдвигаются к одной и той же дате):

{=DATE(YEARS,MONTHS,1)}

Мы можем произвести NxN сравнение смещенных дат на:

{=TRANSPOSE(SHIFTED_DATES)=SHIFTED_DATES}

Мы может подсчитать количество True в этом массиве следующим образом:

{=SUM(--(ARRAY))}

Если бы у нас не было дат за один и тот же месяц, мы ожидаем, что это сумма составит N, потому что этот метод сравнивает каждую дату для себя, а также другие даты. Причины N элементов на главной диагонали этого массива равны True. Если какие-либо даты находятся в том же месяце, недиагональные элементы также будут True. Таким образом, чтобы определить, есть ли даты за один и тот же месяц, мы проводим сравнение:

{=SUM(--(ARRAY)) > N}

или, в более общем случае:

{=SUM(--(ARRAY)) > COUNT($A$1:$G$1)}

Объединяя все это в одну формулу:

=IF(SUM(--(TRANSPOSE(DATE(YEAR($A$1:$G$1),MONTH($A$1:$G$1),1))=DATE(YEAR($A$1:$G$1),MONTH($A$1:$G$1),1)))>COUNT(DATE(YEAR($A$1:$G$1),MONTH($A$1:$G$1),1)),"same month","ok")

Если ваши даты находятся в диапазоне, отличном от $A$1:$G$1, сделайте соответствующие замены.

Надеюсь, это поможет.

0 голосов
/ 18 января 2020

Я не уверен, что есть лучший способ, но вот как я бы решил эту проблему, основываясь на моих знаниях в Excel:

  1. Добавьте данные дат выше в ячейках A1-G1
  2. В строке ниже даты добавьте формулы для дат: A2=DATE(A1) ..... G2=DATE(G1)
  3. В конце исходного ряда дат добавьте числа от 1 до 12: используя ячейку формулы H1=1, I1=H1+1 ..... S1=R1+1
  4. После нескольких месяцев в строке 2: H2=COUNTIF($A2:$G2,H1) ..... S2=COUNTIF($A2:$G2,S1) Частота счета для каждого из 12 месяцев
  5. T2=MAX(H2:S2)
  6. Затем выберите в ячейке T2 значение, превышающее 1.

Здесь это как Google лист (вы можете скачать его и открыть в Excel, если хотите)

Formulas (1 of 3)

Formulas (2 of 3)

Formulas (3 of 3)

data

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...