پیدا کردن موقعیت در یک رشته

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • Amin_D

    • 2010/12/22
    • 399

    پیدا کردن موقعیت در یک رشته

    با سلام

    یه ستون دارم که بر اساس یه سری اطلاعات نتیجه اون بوسیله 0 و 1 مشخص مییشه.

    مثلا:
    000000000100000
    000000000100000
    000000000110000
    100000000000000
    100000000000001
    100000000000001
    تعداد کاراکتر های اون 15 تایی هست .
    میخواستم ببینم چطوری میشه نتیجه رو به این صورت در بیارم که
    اگه کاراکتر 3 برابر 1 بود مورد a رو داره
    اگه کاراکتر 4 برابر 1 بود مورد b رو داره
    , و به همین منوال
    اگر دو تا یا سه تا یک داشت بسته به موقعیت 1 اون ممکنه a-b و... داشته باشه
    با تشکر
    فایل های پیوست شده
    [COLOR=#008000][SIZE=7][FONT=arial][B]خواستن ، توانستن است.[/B][/FONT][/SIZE][/COLOR]
  • iranweld

    • 2015/03/29
    • 3341

    #2
    با سلام

    چرا رقم اول سمت چپ عددهای شما در فایل یک هستش ؟ آیا بایستی در نظر گرفته نشود؟

    کامنت

    • Amin_D

      • 2010/12/22
      • 399

      #3
      نوشته اصلی توسط iranweld
      با سلام

      چرا رقم اول سمت چپ عددهای شما در فایل یک هستش ؟ آیا بایستی در نظر گرفته نشود؟
      سلام
      چرا باید لحاظ شود
      مثلا ردیف اول نتیجه با یستی a شود و برای سطر دوم a,g و به همین منوال...

      با تشکر
      [COLOR=#008000][SIZE=7][FONT=arial][B]خواستن ، توانستن است.[/B][/FONT][/SIZE][/COLOR]

      کامنت

      • mohammad_ashooryan

        • 2014/08/13
        • 480
        • 80.00

        #4
        با سلام
        من با استفاده از 30 ستون کمکی (15تا سمت راست و 15 تا سمت چپ جدول) اینکار رو انجام دادم.
        با توجه به اینکه داده ها رو به جدول تبدیل کردم. با اضافه کردن داده جدید به نتیجه دلخواه می رسید.
        سوالی بود در خدمتم.
        suspen0.xlsx

        کامنت

        • amir_ts

          • 2015/03/17
          • 1247

          #5
          با سلام
          این روش رو هم با دو ردیف کمکی انجام دادم.فرمول طولانی هست.به تعداد کاراکتر باید فرمول رو بسط بدید.
          کد PHP:
          =IF(MID(F2;$J$1;1)="1";$J$2;""
          میتونید یک تابع هم بسازید و به راحتی به نتیجه برسید.
          کد:
          [LEFT]
          Public Function Correspone(StrText As String) As String
          Dim i As Long
              For i = 1 To Len(StrText)
                  If Mid(StrText, i, 1) = "1" Then Correspone = Correspone & ChrW(64 + i)
              Next
          
          End Function
          [/LEFT]
          فایل های پیوست شده
          [SIZE=7][B][COLOR=navy][FONT=IranNastaliq]ای برادر تو همه اندیشه ای[/FONT][/COLOR][/B][/SIZE]

          کامنت

          • iranweld

            • 2015/03/29
            • 3341

            #6
            با سلام

            با استفاده از کدنویسی و select case فایل پیوست تهیه گردید.

            کد PHP:
            Public XX As String

            Sub test
            ()

            Z1 Sheet1.Cells(Sheet1.Rows.Count"F").End(xlUp).Row

            Range
            ("E2:E" Z1).ClearContents

            '=======  1   ============'

            For 2 To Z1

            XX 
            ""

            '===========    2    ==============='

            For 1 To Len(Range("f" J))

            If 
            Mid(Range("f" J), i1) = "1" Then
             
             Select 
            Case i

            Case Is "1"
            XX XX "A"

            Case Is "2"
            XX XX "B"

            Case Is "3"
            XX XX "C"

            Case Is "4"
            XX XX "D"

            Case Is "5"
            XX XX "E"

            Case Is "6"
            XX XX "F"

            Case Is "7"
            XX XX "G"

            Case Is "8"
            XX XX "H"

            Case Is "9"
            XX XX "I"

            Case Is "10"
            XX XX "J"

            Case Is "11"
            XX XX "K"

            Case Is "12"
            XX XX "L"

            Case Is "13"
            XX XX "M"

            Case Is "14"
            XX XX "N"

            Case Is "15"
            XX XX "O"

            Case Is "16"
            XX XX "P"

            Case Is "17"
            XX XX "Q"

            Case Is "18"
            XX XX "R"

            Case Is "19"
            XX XX "S"

            Case Is "20"
            XX XX "T"

            End Select

             
              End 
            If
              
             
            Next
             

            Range
            ("E" J) = XX

            '======    2   ==========='

            Next

            '=======   1   ========='
            End Sub 
            فایل های پیوست شده
            Last edited by iranweld; 2016/07/03, 01:09.

            کامنت

            • iranweld

              • 2015/03/29
              • 3341

              #7
              بصورت User define Function

              کافیست addtotext= را تایپ نموده و سلول مورد نظر را انتخاب و اینتر نمایید

              کد PHP:
              Function ADDtoTEXT(YY As Variant)


              For 
              1 To Len(YY)

              If 
              Mid((YY), i1) = "1" Then
               
               Select 
              Case i

              Case Is "1"
              ADDtoTEXT ADDtoTEXT "A"

              Case Is "2"
              ADDtoTEXT ADDtoTEXT "B"

              Case Is "3"
              ADDtoTEXT ADDtoTEXT "C"

              Case Is "4"
              ADDtoTEXT ADDtoTEXT "D"

              Case Is "5"
              ADDtoTEXT ADDtoTEXT "E"

              Case Is "6"
              ADDtoTEXT ADDtoTEXT "F"

              Case Is "7"
              ADDtoTEXT ADDtoTEXT "G"

              Case Is "8"
              ADDtoTEXT ADDtoTEXT "H"

              Case Is "9"
              ADDtoTEXT ADDtoTEXT "I"

              Case Is "10"
              ADDtoTEXT ADDtoTEXT "J"

              Case Is "11"
              ADDtoTEXT ADDtoTEXT "K"

              Case Is "12"
              ADDtoTEXT ADDtoTEXT "L"

              Case Is "13"
              ADDtoTEXT ADDtoTEXT "M"

              Case Is "14"
              ADDtoTEXT ADDtoTEXT "N"

              Case Is "15"
              ADDtoTEXT ADDtoTEXT "O"

              Case Is "16"
              ADDtoTEXT ADDtoTEXT "P"

              Case Is "17"
              ADDtoTEXT ADDtoTEXT "Q"

              Case Is "18"
              ADDtoTEXT ADDtoTEXT "R"

              Case Is "19"
              ADDtoTEXT ADDtoTEXT "S"

              Case Is "20"
              ADDtoTEXT ADDtoTEXT "T"

              End Select

               
                End 
              If
                
               
              Next


              YY 
              ADDtoTEXT

              End 
              Function 
              فایل های پیوست شده

              کامنت

              چند لحظه..