Лист анализа сейчас выглядит так. Извините, что этого нет в разметке.
У меня есть список месяцев в столбце A, количество повторяющихся ретро-номеров по старению в столбце B, повторяющиеся номера случаев старения в столбце C. Столбец C работает и извлекает информацию из моей таблицы данных - и я использовал столбец C для своих актуальный отчет.
В столбцах от E до N (и далее) указаны номера дел, по которым в определенном месяце были получены платежи по конкретному соглашению, но задача состоит в том, чтобы определить, какие из них получили дубликаты. И мы получаем это путем сравнения тех, кто получил ретро-платежи в том же месяце. Кроме того, они кажутся неправильно выровненными.
Причина вопроса в том, что мне бы очень хотелось иметь возможность просматривать столбец C и условно форматировать мою таблицу данных, хранящуюся на другом листе, чтобы можно было выделить номера случаев на этом листе; эти номера дел являются дубликатами, их необходимо идентифицировать и предпринять соответствующие корректирующие действия. В нынешнем виде я вручную фильтрую таблицу данных по этим числам и предпочитаю этого не делать.
Я хотел иметь возможность объединить все эти числа в один массив, чтобы затем можно было использовать условное форматирование для моей таблицы данных, чтобы сказать: «Находится ли число в моей таблице данных в списке дубликатов?» Если да, отформатируйте его.
Смотрите исходные данные. Например, вы можете видеть, что номер дела 13138858 появляется дважды и имеет ненулевое число в «ретро» и ненулевое число в одном и том же месяце (август). Это означает, что это повторяющееся событие, и мне нужно это отследить. Однако число 9556 появляется дважды, но не соответствует этим критериям; это просто означает, что на этот счет в течение двух разных периодов произошло два платежа, ни один из которых не был ретро-платежом. Ретро-единицы могут быть 1, -1 или 0; единицы «месяца» могут быть 1, -1 или 0, но меня волнует только тот случай, когда ретро-единицы и месячные единицы для этого конкретного номера случая не равны нулю в течение одного и того же месяца.
Кстати, можно ли в этом случае упростить до FILTER(July24_Details_1[Case Number]
вместо CHOOSECOLS(FILTER(July24_Details_1, ... XMATCH(July24_Details_1[[#Headers],[Case Number]],July24_Details_1[#Headers])
?
Я получил отрицательный голос и комментарий: «Не повторяйте этого постоянно. Когда кто-то публикует сообщение, есть какая-то причина, вы спрашивали этого человека, прежде чем публиковать ответ? Почему вы всегда это делаете?» Мои искренние извинения всем, кого обидели мои ответы. Я не знаю, нужно ли мне спрашивать человека, разместившего ответ, прежде чем публиковать мой.
Зачем мне копировать ваши ответы?
Знаете, что я имел в виду под копированием. Изменение имени переменных не меняет ответ. Хотите, чтобы я показал все ссылки и в одних и тех же ответах?
спасибо вам обоим и @nkalvi за вашу помощь. Я опробовал все вышеперечисленные формулы в своем наборе данных, но не получил правильного результата (сейчас для меня это слишком сложно), и я не могу поделиться слишком большим количеством информации, не рискуя ненадлежащим раскрытием личной информации.
Я до сих пор не понимаю, почему вы думаете, что мне нужно копировать ваши ответы, меняя имена и т. д. Что кто-то выиграет, сделав такое, то есть намеренно?
Тогда что это: stackoverflow.com/a/78826545/8162520 это ваш ответ и посмотрите мой ответ, и хотите ли вы увидеть те ваши ответы, которые вы удалили.
Мне не нужно просматривать ваши ответы, чтобы найти ответы самостоятельно. Но поскольку в некоторых случаях есть сходство, и вы, похоже, обижаетесь на такое сходство, я удалил те, где, по моему мнению, не добавляю ничего нового. Я также удивлен, что вы думаете, что кто-то не может самостоятельно найти ответы, подобные вашим.
Видите ли, я не хочу вдаваться в какие-то необоснованные аргументы, очень легко сказать, что я еще не видел ваших ответов, я упоминаю ваше имя, в ответах смотрите время ответов. если бы у вас был собственный ответ, вам следовало опубликовать его задолго до моего комментария, а не только это, как вы всегда делаете в большинстве своих ответов.
Привет, я обновил ОП.
Какой источник? Источник данных?
Как отмечалось выше, вы можете попробовать использовать следующее, используя тот или иной метод:
• Использование MAP()
=LET(
_Head, July24_Details_1[#Headers],
_Output, MAP(A8#, LAMBDA(a, LET(b, INDEX(July24_Details_1,,XMATCH(a, _Head)),
c, XMATCH(July24_Details_1[[#Headers],[Case Number]],_Head),
TEXTJOIN(", ",1,IFNA(INDEX(FILTER(July24_Details_1, July24_Details_1[Retro Units]*b),,c),""))))),
_Delim, SEQUENCE(,MAX(LEN(_Output)-LEN(SUBSTITUTE(_Output,",",))+1)),
IFERROR(TEXTSPLIT(TEXTAFTER(","&_Output,",",_Delim),",",,1),""))
• Или используйте REDUCE()
=LET(
_Head, July24_Details_1[#Headers],
DROP(IFNA(REDUCE("",A8#,LAMBDA(r,c,VSTACK(r,
IFNA(TOROW(INDEX(FILTER(July24_Details_1,July24_Details_1[Retro Units]*INDEX(July24_Details_1,,XMATCH(c,_Head))),,
XMATCH(July24_Details_1[[#Headers],[Case Number]],_Head))),"")))),""),1))
Обновлено: обновленное решение. Новое редактирование каждого ОП после публикации решения, которое работало в данном контексте в ОП:
=LET(
_Output, BYROW(A23#,LAMBDA(a, LET(
b, TOROW(XMATCH(a,Table4[#Headers]),2),
c, CHOOSECOLS(Table4,b),
d, c*Table4[Retro Units],
TEXTJOIN(", ",1,IFERROR(UNIQUE(FILTER(Table4[Case Number],d)),""))))),
_Delim, SEQUENCE(,MAX(LEN(_Output)-LEN(SUBSTITUTE(_Output,",",))+1)),
IFERROR(TEXTSPLIT(TEXTAFTER(","&_Output,",",_Delim),","),""))
Используя MAP()
:
=LET(
_Output, MAP(A23#,LAMBDA(a, LET(
b, TOROW(XMATCH(a,Table4[#Headers]),2),
c, CHOOSECOLS(Table4,b),
d, c*Table4[Retro Units],
TEXTJOIN(", ",1,IFERROR(UNIQUE(FILTER(Table4[Case Number],d)),""))))),
_Delim, SEQUENCE(,MAX(LEN(_Output)-LEN(SUBSTITUTE(_Output,",",))+1)),
IFERROR(TEXTSPLIT(TEXTAFTER(","&_Output,",",_Delim),","),""))
Мне интересно идентифицировать дубликаты на основе
когда ретро-единицы и месячные единицы для этого конкретного номера случая не равны нулю в течение одного и того же месяца
мы могли бы выразить это с помощью is_duplicate
=
=LET(
month_units, IFERROR(
BYROW(July24_Details_1[[November]:[June]], OR),
0
),
(July24_Details_1[Retro Units] * month_units) = 1
)
BYROW(July24_Details_1[[November]:[June]], OR)
дает TRUE
, если в каком-то из месяцев было 1
.
(пожалуйста, измените [November]:[June]
в соответствии с вашими данными)
Затем мы могли бы добавить это в диспетчер имен и использовать для условного форматирования.
Пожалуйста, дайте мне знать, если я неправильно понял логику - я удалю ответ.
Попробуйте использовать
REDUCE()
:=DROP(IFNA(REDUCE("",A8#,LAMBDA(r,c,VSTACK(r,IFNA(TOROW(INDEX(FILTER(July24_Details_1,July24_Details_1[Retro Units]*INDEX(July24_Details_1,,XMATCH(c,July24_Details_1[#Headers]))),,XMATCH(July24_Details_1[[#Headers],[Case Number]],July24_Details_1[#Headers]))),"")))),""),1)