sarxip
Дата: Понедельник, 13.11.2017, 22:31 |
Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 46
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Добрый вечер, как можно подсчитать количество совпадений из ячеек
Добрый вечер, как можно подсчитать количество совпадений из ячеекsarxip
иии
Сообщение отредактировал sarxip - Понедельник, 13.11.2017, 22:43
Ответить
Сообщение Добрый вечер, как можно подсчитать количество совпадений из ячеекАвтор - sarxip Дата добавления - 13.11.2017 в 22:31
Karataev
Дата: Понедельник, 13.11.2017, 22:45 |
Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 1336
Репутация:
533
±
Замечаний:
0% ±
Excel
С помощью макроса:
[vba]
Код
Sub Подсчет() Dim arr(), res(), lngCounter As Long Dim var, lr As Long, i As Long, ii As Long lr = Cells(Rows.Count, "A").End(xlUp).Row arr() = Range("A1:B" & lr).Value For i = 1 To UBound(arr) arr(i, 1) = "," & arr(i, 1) & "," arr(i, 1) = LCase(arr(i, 1)) arr(i, 2) = LCase(arr(i, 2)) Next i ReDim res(1 To UBound(arr), 1 To 1) For i = 1 To UBound(arr) var = Split(arr(i, 2), ",") lngCounter = 0 For ii = 0 To UBound(var) If InStr(arr(i, 1), "," & var(ii) & ",") <> 0 Then lngCounter = lngCounter + 1 End If Next ii res(i, 1) = lngCounter Next i Range("C1").Resize(UBound(res)).Value = res() End Sub
[/vba]
С помощью макроса:
[vba]
Код
Sub Подсчет() Dim arr(), res(), lngCounter As Long Dim var, lr As Long, i As Long, ii As Long lr = Cells(Rows.Count, "A").End(xlUp).Row arr() = Range("A1:B" & lr).Value For i = 1 To UBound(arr) arr(i, 1) = "," & arr(i, 1) & "," arr(i, 1) = LCase(arr(i, 1)) arr(i, 2) = LCase(arr(i, 2)) Next i ReDim res(1 To UBound(arr), 1 To 1) For i = 1 To UBound(arr) var = Split(arr(i, 2), ",") lngCounter = 0 For ii = 0 To UBound(var) If InStr(arr(i, 1), "," & var(ii) & ",") <> 0 Then lngCounter = lngCounter + 1 End If Next ii res(i, 1) = lngCounter Next i Range("C1").Resize(UBound(res)).Value = res() End Sub
[/vba]
Karataev
Ответить
Сообщение С помощью макроса:
[vba]
Код
Sub Подсчет() Dim arr(), res(), lngCounter As Long Dim var, lr As Long, i As Long, ii As Long lr = Cells(Rows.Count, "A").End(xlUp).Row arr() = Range("A1:B" & lr).Value For i = 1 To UBound(arr) arr(i, 1) = "," & arr(i, 1) & "," arr(i, 1) = LCase(arr(i, 1)) arr(i, 2) = LCase(arr(i, 2)) Next i ReDim res(1 To UBound(arr), 1 To 1) For i = 1 To UBound(arr) var = Split(arr(i, 2), ",") lngCounter = 0 For ii = 0 To UBound(var) If InStr(arr(i, 1), "," & var(ii) & ",") <> 0 Then lngCounter = lngCounter + 1 End If Next ii res(i, 1) = lngCounter Next i Range("C1").Resize(UBound(res)).Value = res() End Sub
[/vba]
Автор - Karataev Дата добавления - 13.11.2017 в 22:45
_Boroda_
Дата: Понедельник, 13.11.2017, 23:29 |
Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 16885
Репутация:
6593
±
Замечаний:
±
2003; 2007; 2010; 2013 RUS
Для Вашего примера (по одному символу через запятую и пробел) можно так Формула массива, вводится одновременным нажатием Контрл Шифт ЕнтерКод
=СЧЁТ(ПОИСК(ПСТР(" "&A1&",";(СТРОКА(D$1:ИНДЕКС(D:D;(ДЛСТР(A1)+2)/3))-1)*3+1;3);" "&B1&","))
Или обычная формулаКод
=СУММПРОИЗВ(Ч(ПОДСТАВИТЬ(B1;ПСТР(ПОДСТАВИТЬ(A1;", ";);СТОЛБЕЦ(A:Z);1);)<>B1))
Только гнетут меня смутные сомнения, что окажется, что "Этот пример я выдумал, а на самом деле у меня все не так"
Для Вашего примера (по одному символу через запятую и пробел) можно так Формула массива, вводится одновременным нажатием Контрл Шифт ЕнтерКод
=СЧЁТ(ПОИСК(ПСТР(" "&A1&",";(СТРОКА(D$1:ИНДЕКС(D:D;(ДЛСТР(A1)+2)/3))-1)*3+1;3);" "&B1&","))
Или обычная формулаКод
=СУММПРОИЗВ(Ч(ПОДСТАВИТЬ(B1;ПСТР(ПОДСТАВИТЬ(A1;", ";);СТОЛБЕЦ(A:Z);1);)<>B1))
Только гнетут меня смутные сомнения, что окажется, что "Этот пример я выдумал, а на самом деле у меня все не так" _Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение Для Вашего примера (по одному символу через запятую и пробел) можно так Формула массива, вводится одновременным нажатием Контрл Шифт ЕнтерКод
=СЧЁТ(ПОИСК(ПСТР(" "&A1&",";(СТРОКА(D$1:ИНДЕКС(D:D;(ДЛСТР(A1)+2)/3))-1)*3+1;3);" "&B1&","))
Или обычная формулаКод
=СУММПРОИЗВ(Ч(ПОДСТАВИТЬ(B1;ПСТР(ПОДСТАВИТЬ(A1;", ";);СТОЛБЕЦ(A:Z);1);)<>B1))
Только гнетут меня смутные сомнения, что окажется, что "Этот пример я выдумал, а на самом деле у меня все не так" Автор - _Boroda_ Дата добавления - 13.11.2017 в 23:29
Che79
Дата: Понедельник, 13.11.2017, 23:31 |
Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1649
Репутация:
306
±
Замечаний:
0% ±
2013 Win, 365 Mac
sarxip , чётко по Вашему примеру Код
=СУММПРОИЗВ(--ЕЧИСЛО(ПОИСК(ПСТР(B1;({1;4;7})*(ДЛСТР(B1)>1);1);A1)))
UPD Мой вариант оказался нерабочим. Вот так, если строго под пример. Пишу во сне, формула страшно - неоптимизированная, поэтому под спойлер её
Код
=СУММПРОИЗВ(--ЕЧИСЛО(ПОИСК(ПСТР(B1;ЕСЛИ(ДЛСТР(B1)<=2;1;ЕСЛИ(ДЛСТР(B1)=4;{1;4};ЕСЛИ(ДЛСТР(B1)=7;{1;4;7};ЕСЛИ(ДЛСТР(B1)=10;{1;4;7;10}))));1);A1)))
Файл перевложил.
sarxip , чётко по Вашему примеру Код
=СУММПРОИЗВ(--ЕЧИСЛО(ПОИСК(ПСТР(B1;({1;4;7})*(ДЛСТР(B1)>1);1);A1)))
UPD Мой вариант оказался нерабочим. Вот так, если строго под пример. Пишу во сне, формула страшно - неоптимизированная, поэтому под спойлер её
Код
=СУММПРОИЗВ(--ЕЧИСЛО(ПОИСК(ПСТР(B1;ЕСЛИ(ДЛСТР(B1)<=2;1;ЕСЛИ(ДЛСТР(B1)=4;{1;4};ЕСЛИ(ДЛСТР(B1)=7;{1;4;7};ЕСЛИ(ДЛСТР(B1)=10;{1;4;7;10}))));1);A1)))
Файл перевложил.Che79
Делай нормально и будет нормально!
Сообщение отредактировал Che79 - Вторник, 14.11.2017, 02:38
Ответить
Сообщение sarxip , чётко по Вашему примеру Код
=СУММПРОИЗВ(--ЕЧИСЛО(ПОИСК(ПСТР(B1;({1;4;7})*(ДЛСТР(B1)>1);1);A1)))
UPD Мой вариант оказался нерабочим. Вот так, если строго под пример. Пишу во сне, формула страшно - неоптимизированная, поэтому под спойлер её
Код
=СУММПРОИЗВ(--ЕЧИСЛО(ПОИСК(ПСТР(B1;ЕСЛИ(ДЛСТР(B1)<=2;1;ЕСЛИ(ДЛСТР(B1)=4;{1;4};ЕСЛИ(ДЛСТР(B1)=7;{1;4;7};ЕСЛИ(ДЛСТР(B1)=10;{1;4;7;10}))));1);A1)))
Файл перевложил.Автор - Che79 Дата добавления - 13.11.2017 в 23:31
sarxip
Дата: Вторник, 14.11.2017, 01:20 |
Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 46
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Благодарю
иии
Сообщение отредактировал sarxip - Вторник, 14.11.2017, 01:20
Ответить
Сообщение Благодарю Автор - sarxip Дата добавления - 14.11.2017 в 01:20