SUBSTITUTE FORMULA EXCEL - sayı değiştirme


0

Yapılması gereken bir hesaplamanın parçası olarak 1,2,3,4,5 sayı kümesini ters sayı ile değiştirmeye çalışıyorum. 1 = 5, 2 = 4, 3 = 3, 4 = 2, 5 = 1.

Kullandığım formül

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(F13,"2","4",1 ),"1", "5", 1 ),"4", "2", 1 ),"5", "1", 1 ),"2","4", 1)

Ancak, yalnızca 2 ve 5 sayıları için çalışıyor ve 1 ve 4 yerine değil.


biraz test verisi ve beklenen çıktı sağlayabilir misiniz?
Scott Craner

Numaranız sadece numaranız mı yoksa , yukarıdaki gibi?
Scott Craner

MACRO ile rahat ederseniz, size basit bir Makro hücrenin içeriklerini ters sırayla yeniden yazacağını önerebilirim.
Rajesh S

Yanıtlar:


0

Bu sayıları değiştirme yapacak (metin yok)

=SUMPRODUCT((6-MID(A1,ROW($A$1:INDEX(A:A,LEN(A1))),1))*10^(LEN(A1)-ROW($A$1:INDEX(A:A,LEN(A1)))))

enter image description here

Sadece çevrilen sayıyı almak için her bir parçayı 6'dan çıkartan sayıyı tekrar eder ve ardından doğru sıraya koymak için 10 katıyla çarpar.


İplerle biraz daha karmaşıklaşır. Office 365 Excel ile birlikte sunulan bir dizi CONCAT sürümünü kullanabiliriz.

=CONCAT(IF(ISNUMBER(--MID(A1,ROW($A$1:INDEX(A:A,LEN(A1))),1)),6-MID(A1,ROW($A$1:INDEX(A:A,LEN(A1))),1),MID(A1,ROW($A$1:INDEX(A:A,LEN(A1))),1)))

Bir dizi formülü olduğundan, düzenleme modundan çıkarken Enter yerine Ctrl-Shift-Enter ile onaylanmalıdır.

enter image description here

Bu da stringi tekrar eder ve eğer bir sayı ise 6'dan çıkarır ve concat ile geri koyar.


İç içe SUBSTITUTES ile devam etmek istiyorsanız, diğer ikisini değiştirmeden önce sayılardan ikisini başka bir şeyle değiştirmeniz gerekir. Ardından özel karakterleri istenen çıktıya çevirin.

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,1,"!"),2,"@"),4,2),5,1),"@",4),"!",5)

enter image description here


Çok teşekkürler bu çok yardımcı oldu! Düzeltilmiş SUBSTITUTE formülü ile çalışmak için aldım.
Ryann

Lütfen cevaptaki onay işaretine tıklayarak doğru işaretlemeyi dikkate alınız.
Scott Craner

0

enter image description here

Bu Dizi formülünü Hücre'ye yaz B2:

{=RIGHT(SUM(VALUE(MID(A2&"1",ROW(INDIRECT("1:"&LEN(A2&"1"))),1))*10^(ROW(INDIRECT("1:"&LEN(A2&"1")))-1)),LEN(A2))}

Not, formülü bitirmek Ctrl+Shift+Enter.

Virgül için ayrılmış numara / metin listesi Kopyala ve; Aşağıdaki yazılı VBA kodunu Sayfa ile Modül olarak yapıştırın.

Function ReverseTxt(ByVal Target As Range)
    myLength = Len(Target.Value)
    For x = 0 To myLength
        ReverseTxt = Left(WorksheetFunction.Substitute(Target.Value, Left(Target.Value, x), ""), 1) & ReverseTxt
    Next x
End Function

UDF'yi Hücreye Yaz B4 & Sons; doldurun: =ReverseTxt(A2)

N.B.

  • Yukarıda gösterilen UDF, tek basamak / karakter listesi için uygundur.
  • İçin UDF'yi denerseniz 12, 13 o zaman olacak 31, 21 & Sons; DA irade AD.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.