Excel, видаліть провідні 0 з IP-адреси


8

У мене є список IP-адрес у такій формі:

    010.125.015.013
    010.125.153.012
    010.125.012.135

Я не можу виконати пінг із цією формою, оскільки Windows вважає, що це пунктирна вісімкова форма. Мені потрібно видалити провідні 0 після кожної крапки.

Це не так просто, оскільки деякі з них взагалі не мають провідних точок після точок, а деякі з них мають лише останній октет, де деякі мають третій октет або обидва.

Якщо не існує рішення, змусити інтерпретувати ping як точку з десятковою IP-адресою.

Хтось може допомогти?

Дякую


2
Чи припустимо, що ви хочете зберегти 0 у чомусь подібному 123.234.000.276? (Так, хибний приклад.)
CVn

в моєму прикладі не повинно бути 0, так: "010.125.015.013" приклад: '010.155.105.013' Це повинно бути: '10 .155.105.13 '
Michal

Ви можете зробити це досить легко, використовуючи силу регексу! Використовуйте це посилання, щоб розпочати роботу. Режекс настільки ж простий, як ^0(відповідь нулю на початку рядка!)
Dudemanword,

2
Видалення провідних нулів змінює IP, оскільки первинний нуль означає восьмеричні числа.
CodesInChaos

1
@CodesInChaos Взагалі так. Але вхід схожий на те, що хтось просто заздалегідь створив нулі, щоб зробити кожен октет тризначним. Мабуть, мабуть, хтось також змінив би позначення на вісімку під час виконання цієї операції, до того ж він не працював би для октетів у діапазоні від 64 до 99. Я здогадуюсь, завдання полягає в тому, щоб перетворити IP-адреси з нестандартної нотації з десятковою числа з провідними нулями до стандартного позначення з десятковими числами без провідних нулів.
kasperd

Відповіді:


11

Ось що можна зробити:

  1. Я припускаю, що кожен IP знаходиться в одній клітині як текст. Тепер перетворіть цю єдину комірку в стовпці (використовуючи функцію «Текст до стовпців»), вказавши .(крапка) як роздільник. Тепер вони будуть розподілені у вигляді цифр у наступних чотирьох послідовних комірках, а теперішній нуль тепер не повинен бути знищеним

  2. Використовуйте функцію Concatenate (докладні відомості див. У довідці Excel та приєднайтесь до 4-х чисел, включаючи .після кожного рядка. Тепер у вас повинна бути комірка з таким же IP, виключаючи всі провідні нулі.


12

А як на рахунок

=INT(MID(A1,1,3)) & "." & 
 INT(MID(A1,5,3)) & "." & 
 INT(MID(A1,9,3)) & "." & 
 INT(MID(A1,13,3))

6

Цей використовується SUBSTITUTE:

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE("@."&TRIM(C5),".0","."),".0","."),"@.","")

введіть тут опис зображення

По- перше, він буде відрізати білий простір навколо IP (в C5), додає префікс @., замінники .0з .двічі , а потім видаляє доданий префікс @..


Вау! Я вважаю цю відповідь такою "бічною думкою" порівняно з іншими поки що :) +1 тому, що (жартуючи) ви виграєте у codegolf (серйозніше) використання, TRIMщоб переконатися, що не залишаєте жодного можливого білого простору (... і все-таки перемогу кодогольфа поки що! ;-D)
danicotra

3

Побито вчасно (я повинен перекласти формули з італійської на англійську ... також я розпоряджаюся лише LibreOffice ...) У будь-якому випадку, припустимо, що IP-адреси в колонці A, я б запропонував це:

=CONCATENATE(VALUE(MID(A1,1,3)),".",VALUE(MID(A1,5,3)),".",VALUE(MID(A1,9,3)),".",VALUE(MID(A1,13,3)))

@fheub: велике спасибі за вдячність Італійська версія Ms-Excel має майже всі назви формул ; тим не менш, ми використовуємо ;не ,як роздільник параметрів формул, тому потрібно їх змінити - btw в Італії ми використовуємо кому (не крапку) як роздільник для десяткової частини для чисел. І останнє, але не менш важливе: я використовую Excel на роботі, але вдома у мене є лише LibreOffice, і я повинен визнати, що це не так добре задокументовано, як Excel (я завжди сподіваюся, що назви формул залишаються однаковими між ними) і, безумовно, не вистачає деяких приємних функцій порівняно з ним ...
danicotra

PS Я забував ... LibreOffice відрізняється від Excel навіть тим, що посилання на аркуші / комірки зроблені .в LibreOffice, тоді як в Excel ви повинні використовувати !замість цього ( 'Sheet 1'.A1<=> 'Sheet 1'!A1).
danicotra
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.