1

У меня есть 5-значный номер, например, 23450 в одной ячейке. Я хочу отобразить цифры от 0 до 9, которые отсутствуют в этом номере. В этом примере моя другая ячейка должна отображать 16789 которые являются пропущенными цифрами. Ниже приведен пример:

Column A        Column B (should display missing number)
23456          17890
34877          125690
22344          1567890
27788          1345690

Обратите внимание, что число в столбце A может содержать кратные числа одной и той же цифры, и в этом случае столбец B будет содержать более пяти пропущенных цифр.

Я понятия не имею, как подойти к этой проблеме.

3 ответа3

1

Мое решение не VBA похоже на решение Máté Juhász, но без замены; он просто строит строку:

=IF(ISERROR(FIND("0",A1)),"0","")&IF(ISERROR(FIND("1",A1)),"1","")
 &IF(ISERROR(FIND("2",A1)),"2","")&IF(ISERROR(FIND("3",A1)),"3","")
 &IF(ISERROR(FIND("4",A1)),"4","")&IF(ISERROR(FIND("5",A1)),"5","")
 &IF(ISERROR(FIND("6",A1)),"6","")&IF(ISERROR(FIND("7",A1)),"7","")
 &IF(ISERROR(FIND("8",A1)),"8","")&IF(ISERROR(FIND("9",A1)),"9","")
0

Это может быть легко достигнуто с VBA:

Public Function uniquenumbers(cellvalue As String)
    originalseries = "1234567890"
    totallength = Len(cellvalue)
    For i = 1 To totallength
        thevalue = Mid(cellvalue, i, 1)
        theposition = InStr(1, originalseries, thevalue)
        If theposition > 0 Then
            originalseries = Mid(originalseries, 1, theposition - 1) & Mid(originalseries, theposition + 1)
        End If
    Next i
    uniquenumbers = originalseries
End Function

Откройте Macros /VBA с помощью ALT+F11. Щелкните правой кнопкой мыши ThisWorkbook и вставьте модуль. Вставьте код с правой стороны.

В ячейку B2 положите =uniquenumbers(A2) .

0

Мой подход состоит в том, чтобы начать со строки всех цифр (0123456789), а затем удалить каждую цифру, которая присутствует в исходной строке, например, для 0:

=SUBSTITUTE("0123456789",IF(ISERROR(FIND("0",A1)),"","0"),"")

Затем вам нужно вложить его для следующего уровня, чтобы работать с его результатом:

=SUBSTITUTE(SUBSTITUTE("0123456789",IF(ISERROR(FIND("0",A1)),"","0"),""),IF(ISERROR(FIND("1",A1)),"","1"),"")

И для всех цифр:

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE("0123456789",IF(ISERROR(FIND("0",A1)),"","0"),""),IF(ISERROR(FIND("1",A1)),"","1"),""),IF(ISERROR(FIND("2",A1)),"","2"),""),IF(ISERROR(FIND("3",A1)),"","3"),""),IF(ISERROR(FIND("4",A1)),"","4"),""),IF(ISERROR(FIND("5",A1)),"","5"),""),IF(ISERROR(FIND("6",A1)),"","6"),""),IF(ISERROR(FIND("7",A1)),"","7"),""),IF(ISERROR(FIND("8",A1)),"","8"),""),IF(ISERROR(FIND("9",A1)),"","9"),"")

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .