جستجوی یک کاراکتر در یک سلول اکسل

Collapse
این تاپیک قفل است.
X
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • hamid59
    • 2013/12/09
    • 3

    [حل شده] جستجوی یک کاراکتر در یک سلول اکسل

    با سلام به دوستان عزیز
    متاسفانه به مشکل بزرگی برخورد کردم ، وقتی از گردش حساب بانک خروجی اکسل میگیرم و ذخیره میکنم
    مجدد که مراجعه میکنم و یک شماره رو جستجو میکنم ، پیدا نمیکنه
    ولی اگه شماره ای که داخل اون سلول باشه رو بصورت دستی کپی کنم ، جستجو پیداش میکنه
    لازم به ذکره که تمامی ستونهای بانکی در یک ستون ذخیره شده که با علامت "|" از هم جدا شده اند
    ممنون میشم کمک کنید
    خیلی واجبه
  • iranweld

    • 2015/03/29
    • 3341

    #2
    با سلام

    یک نمونه کوچک از فایل بانک را ضمیمه کنید

    کامنت

    • hamid59
      • 2013/12/09
      • 3

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

      یک نمونه کوچک از فایل بانک را ضمیمه کنید
      با سلام و وقت بخیر
      یک سلول را که حاوی اطلاعات است براتون میذارم ، مابقی مثل هم استبانک.xlsxبانک.xlsx

      کامنت

      • generalsamad
        مدير تالار توابع

        • 2014/06/22
        • 1496

        #4
        با سلام
        وقتی که از find اکسل استفاده میکنید کلمه یا حرفی رو که وارد میکنید اگه در یک سلول باشه واستون پیدا میکنه
        اگه قبل یا بعد اون کلمه یا حرف مورد نظرتون ، کاراکتری موجود باشه هنگام جستجو چیزی یافت نمیکنه
        برای رفع مشکلتون میتونید از ریبون data
        text to columns رو انتخاب کرده و برای جدا کردن متون از کاراکتر | استفاده کرد
        البته ساختار خروجی فایلتون جوری هست که 2 مرحله این کار رو باید انجام داد
        یکی برای ,
        یکی برای |
        که با این کار تا حدودی مشکلتون حل میشه
        علاوه بر روش توضیح داده شده میتونید از کد نویسی و فرمول نویسی نیز استفاده کرد
        [CENTER]
        [SIGPIC][/SIGPIC]
        [/CENTER]

        کامنت

        • iranweld

          • 2015/03/29
          • 3341

          #5
          از ماکروی ذیل نیز میتوانید برای جداسازی اعداد استفاده کنید

          کد PHP:
          Sub test()

          Dim str As String

          Columns
          ("B:I").ClearContents

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

          For 1 To Z1

          xx 
          Cells(J1)

          2

          For 1 To Len(xx)

          str str Mid(xxi1)

          If 
          Mid(xxi1) = "|" Or Mid(xxi1) = "P" Then

          Cells
          (Jk).NumberFormat "0"

          If Left(str1) = "T" Then

          Cells
          (Jk) = Left(strLen(str) - 1)

          Cells(Jk) = Right(Cells(Jk), Len(Cells(Jk)) - 1)

          str ""

          1

          Else

          Cells(Jk) = Left(strLen(str) - 1)

          str ""

          1

          End 
          If


          ElseIf 
          Mid(xxi2) = "CT" Then

          Cells
          (Jk).NumberFormat "0"

          Cells(Jk) = Left(strLen(str) - 2)

          str ""

          1


          End 
          If

          Next
          Next


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

          کامنت

          • Ali Parsaei
            مدير تالارتوابع اکسل

            • 2013/11/18
            • 1522
            • 71.67

            #6
            نوشته اصلی توسط generalsamad
            با سلام
            وقتی که از find اکسل استفاده میکنید کلمه یا حرفی رو که وارد میکنید اگه در یک سلول باشه واستون پیدا میکنه
            اگه قبل یا بعد اون کلمه یا حرف مورد نظرتون ، کاراکتری موجود باشه هنگام جستجو چیزی یافت نمیکنه
            برای رفع مشکلتون میتونید از ریبون data
            text to columns رو انتخاب کرده و برای جدا کردن متون از کاراکتر | استفاده کرد
            البته ساختار خروجی فایلتون جوری هست که 2 مرحله این کار رو باید انجام داد
            یکی برای ,
            یکی برای |
            که با این کار تا حدودی مشکلتون حل میشه
            علاوه بر روش توضیح داده شده میتونید از کد نویسی و فرمول نویسی نیز استفاده کرد
            فکر نکنم اينطور باشد! در فايل ايشان حروف با find يافت مي شود ولي اعداد داراي کد غير معمول مي باشند و به همين دليل يافت نمي شوند.
            [SIGPIC][/SIGPIC]

            کامنت

            • Ali Parsaei
              مدير تالارتوابع اکسل

              • 2013/11/18
              • 1522
              • 71.67

              #7
              سلام،
              در هنگام گرفتن خروجي براي اکسل متأسفانه نرم افزار مربوطه که اين کار را انجام مي دهد اعداد صفر تا نه را با کد غير معمولي با شماره هاي 1776 الي 1785 انتقال مي دهد در صورتي که کد معمول آنها 48 تا 57 است و به همين خاطر نمي توان با find آنها را يافت! و تا آنجا که من خاطرم هست اين اشکال معمولا" در انتقال اطلاعات براي خيلي ها پيش مي آيد، تنها کاري که مي شود کرد اصلاح و تعويض کاراکترها بوسيله ماکرو (کدنويسي) است.
              شما مي توانيد يک ماکرو ضبط کنيد و بدون انجام کاري آن ماکرو را خاتمه دهيد.
              سپس از منوي view گزينه view macros را انتخاب کرده و در پنجره باز شده ماکرو ياد شده را انتخاب و گزينه edit را کليک کنيد.
              در پنجره باز شده کد ماکرو را با کد زير تعويض کرده و سپس ماکرو را run کنيد:
              کد PHP:
              Sub Macro1()
              ActiveSheet.Cells.Replace What:=ChrW(1776), Replacement:=ChrW(48)
              ActiveSheet.Cells.Replace What:=ChrW(1777), Replacement:=ChrW(49)
              ActiveSheet.Cells.Replace What:=ChrW(1778), Replacement:=ChrW(50)
              ActiveSheet.Cells.Replace What:=ChrW(1779), Replacement:=ChrW(51)
              ActiveSheet.Cells.Replace What:=ChrW(1780), Replacement:=ChrW(52)
              ActiveSheet.Cells.Replace What:=ChrW(1781), Replacement:=ChrW(53)
              ActiveSheet.Cells.Replace What:=ChrW(1782), Replacement:=ChrW(54)
              ActiveSheet.Cells.Replace What:=ChrW(1783), Replacement:=ChrW(55)
              ActiveSheet.Cells.Replace What:=ChrW(1784), Replacement:=ChrW(56)
              ActiveSheet.Cells.Replace What:=ChrW(1785), Replacement:=ChrW(57)
              End Sub 
              تمام کاراکترهاي عددي شما در صفحه درست خواهد شد و مي توانيد هر کاري خواستيد از قبيل جستجو و .... روي آنها انجام دهيد.
              در excel 2013 کاملا" درست کار مي کند، ليکن اگر اکسل شما ورژن پايينتر است حتما" يکي از شماره ها را که تمام اعداد 0 تا 9 در آن باشد را چک کنيد ببينيد درست تعويض مي شود يا خير.
              در خاتمه نيز مي توانيد از مسير ياد شده ماکرو مربوطه را حذف کنيد.
              البته اگر اين کار را هر روز بايد تکرار کنيد بهتر است ماکرو را نگه داريد که در اين صورت بايد فايل را با فرمت xlsm يا فرمتهاي قديمي save کنيد.
              Last edited by Ali Parsaei; 2016/03/22, 12:02.
              [SIGPIC][/SIGPIC]

              کامنت

              • hamid59
                • 2013/12/09
                • 3

                #8
                نوشته اصلی توسط علي پارسا
                سلام،
                در هنگام گرفتن خروجي براي اکسل متأسفانه نرم افزار مربوطه که اين کار را انجام مي دهد اعداد صفر تا نه را با کد غير معمولي با شماره هاي 1776 الي 1785 انتقال مي دهد در صورتي که کد معمول آنها 48 تا 57 است و به همين خاطر نمي توان با find آنها را يافت! و تا آنجا که من خاطرم هست اين اشکال معمولا" در انتقال اطلاعات براي خيلي ها پيش مي آيد، تنها کاري که مي شود کرد اصلاح و تعويض کاراکترها بوسيله ماکرو (کدنويسي) است.
                شما مي توانيد يک ماکرو ضبط کنيد و بدون انجام کاري آن ماکرو را خاتمه دهيد.
                سپس از منوي view گزينه view macros را انتخاب کرده و در پنجره باز شده ماکرو ياد شده را انتخاب و گزينه edit را کليک کنيد.
                در پنجره باز شده کد ماکرو را با کد زير تعويض کرده و سپس ماکرو را run کنيد:
                کد PHP:
                Sub Macro1()
                ActiveSheet.Cells.Replace What:=ChrW(1776), Replacement:=ChrW(48)
                ActiveSheet.Cells.Replace What:=ChrW(1777), Replacement:=ChrW(49)
                ActiveSheet.Cells.Replace What:=ChrW(1778), Replacement:=ChrW(50)
                ActiveSheet.Cells.Replace What:=ChrW(1779), Replacement:=ChrW(51)
                ActiveSheet.Cells.Replace What:=ChrW(1780), Replacement:=ChrW(52)
                ActiveSheet.Cells.Replace What:=ChrW(1781), Replacement:=ChrW(53)
                ActiveSheet.Cells.Replace What:=ChrW(1782), Replacement:=ChrW(54)
                ActiveSheet.Cells.Replace What:=ChrW(1783), Replacement:=ChrW(55)
                ActiveSheet.Cells.Replace What:=ChrW(1784), Replacement:=ChrW(56)
                ActiveSheet.Cells.Replace What:=ChrW(1785), Replacement:=ChrW(57)
                End Sub 
                تمام کاراکترهاي عددي شما در صفحه درست خواهد شد و مي توانيد هر کاري خواستيد از قبيل جستجو و .... روي آنها انجام دهيد.
                در excel 2013 کاملا" درست کار مي کند، ليکن اگر اکسل شما ورژن پايينتر است حتما" يکي از شماره ها را که تمام اعداد 0 تا 9 در آن باشد را چک کنيد ببينيد درست تعويض مي شود يا خير.
                در خاتمه نيز مي توانيد از مسير ياد شده ماکرو مربوطه را حذف کنيد.
                البته اگر اين کار را هر روز بايد تکرار کنيد بهتر است ماکرو را نگه داريد که در اين صورت بايد فايل را با فرمت xlsm يا فرمتهاي قديمي save کنيد.



                با سلام و وقت بخیر

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

                کامنت

                چند لحظه..