Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.11.2018, 11:56   #1
Old--man
Новичок
Джуниор
 
Регистрация: 07.11.2018
Сообщений: 1
По умолчанию Сумма букв в ячейке

Добрый день! Вот возникла такая задача. И гуглил, и яндексил, но ничего аналогичного не нашел. Если не сложно, то подскажите с чего начать... Условия задачи: Цифрам от 1 до 9 поставлены в соответствие буквы алфавита. В трех столбцах записаны Фамилия, Имя, Отчество. Необходимо просуммировать значения цифр в каждой ячейке соответствующего столбца.
Вложения
Тип файла: xlsx Сумма букв.xlsx (10.6 Кб, 9 просмотров)
Old--man вне форума Ответить с цитированием
Старый 07.11.2018, 14:26   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

на формулах это всё сложно, громоздко и не универсально.
я бы на VBA сделал.

на формулах примерно так получается:
Сумма букв_1.xlsx

ВНИМАНИЕ! в примере берутся по 10 букв из фамилии, имени и отчества
если нужно больше, то нужно дописать нужное число слагаемых в соответствующие формулы


p.s.
расскажу о решении.
расположил все буквы в одну строку (для удобства поиска)
формула сложения такая:
Код:
ЕСЛИОШИБКА(ОСТАТ(ПОИСКПОЗ(ПСТР(L1;1;1);$A$14:$AG$14;);9);0)+
ЕСЛИОШИБКА(ОСТАТ(ПОИСКПОЗ(ПСТР(L1;2;1);$A$14:$AG$14;);9);0)+

...

ЕСЛИОШИБКА(ОСТАТ(ПОИСКПОЗ(ПСТР(L1;10;1);$A$14:$AG$14;);9);0)

Последний раз редактировалось Serge_Bliznykov; 07.11.2018 в 14:29.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.11.2018, 00:02   #3
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

вариант для любой длины текста в ячейке, формула массива
Код:
=СУММ(ЕСЛИ($A$14:$AG$14=ПСТР(L1;СТРОКА(ДВССЫЛ("1:"&ДЛСТР(L1)));1);$A$13:$AG$13))
Вложения
Тип файла: xlsx Сумма букв_1.xlsx (11.3 Кб, 13 просмотров)
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 08.11.2018, 06:21   #4
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Посмотрите пример во вложении.
Там 2 варианта пользовательских функций.
В ячейках "L4:N4" - функция "SumLet", которая использует Вашу таблицу из диапазона "A1:I5".
В ячейках "L6:N6" - функция "SumLet2", которая содержит Вашу таблицу внутри своего кода.
Вложения
Тип файла: rar Сумма букв_2.rar (14.7 Кб, 8 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 08.11.2018, 09:30   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Казанский Посмотреть сообщение
вариант для любой длины текста в ячейке, формула массива
Код:
=СУММ(ЕСЛИ($A$14:$AG$14=ПСТР(L1;СТРОКА(ДВССЫЛ("1:"&ДЛСТР(L1)));1);$A$13:$AG$13))
Обалдеть!!!

я так не умею.
А можно пояснить решение?
Мне неясен момент, как происходит разбиение по буквам.
что возвращает, например, ДВССЫЛ("1:7") (для L1 = ФАМИЛИЯ) ?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.11.2018, 10:43   #6
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
что возвращает, например, ДВССЫЛ("1:7")
Диапазон 1:7. СТРОКА возвращает массив {1:2:3:4:5:6:7}. ПСТР возвращает массив {"Ф":"А":"М":"И":"Л":"И":"Я"}. Оператор сравнения возвращает массив ЛОЖЬ/ИСТИНА размером 7х32. Функция ЕСЛИ выбирает для каждой ИСТИНЫ соотв. ячейку в одномерном диапазоне $A$13:$AG$13.
В данном случае команда Вычислить формулу (fx в Формулы - Зависимости формул) показывает этапы вычислений. Или выделить фрагмент формулы и нажать F9, как в 2003 и старше.
Есть как минимум 4 человека, которые смогут написать формулу, которая возьмет данные из исходного диапазона A1:I5 без разворачивания в строку. Вот это будет "обалдеть" Я так не могу.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 08.11.2018, 11:03   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Казанский, спасибо большое за объяснение!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.11.2018, 14:42   #8
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,536
По умолчанию

Кстати пришлось. Мы с приятелем из NY обсуждали мою прогу (простенькую, домашняя статистика), так он говорит - это же все можно было в Екселе. Но глянув на эту формулу, вспоминается известный анекдот про квадратный трехчлен: "Я, Петька, не то, что изобразить - я и вообразить-то такое не могу". В общем, можно - но сложно.
Плата за универсальность, ничего не поделаешь.
Я вот пытался в Екселе вести статистику моих боев с компом в нарды. Чувствую - мозги набекрениваются. Плюнул, наваял на Дельфи - вся статистика - по играм, марсам, броскам и пр. да еще с кучей гистограмм.
Надеюся, я не шибко соффтопил ?

Последний раз редактировалось digitalis; 08.11.2018 в 17:39.
digitalis вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Расшифровать ребус, полученный в результате замены одинаковых букв одинаковыми цифрами. Найти также такие значения цифр, при которых сумма цифр в результате окажется наибольшей. kotuk Паскаль, Turbo Pascal, PascalABC.NET 6 27.06.2018 21:19
Сумма числе в одной ячейке s00r Microsoft Office Excel 6 10.03.2014 21:17
Рзделение букв и цифр в одной ячейке (без разделителя) на две ячейки student-ua Microsoft Office Excel 4 03.04.2013 09:19
Макрос с подсчетом букв в ячейке. Verona12 Microsoft Office Excel 3 07.12.2010 20:53
Сумма цифр числа в ячейке Arlen Microsoft Office Excel 9 16.05.2009 12:10