کپی یک مقدار خاص از یک رشته در ستون دیگر

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

    • 2014/01/14
    • 55

    کپی یک مقدار خاص از یک رشته در ستون دیگر

    سلام بر اساتید گرامی
    لطفا ابتدا فایل پیوست را دانلود نمایید.
    در این شیت در ستون B من یک سری اطلاعاتی از مواد شیمیایی دارم که خاصیت Wrap text در این ستون فعال هست و اطلاعات مربوط به هر ماده در چند خط درون یک سلول قرار گرفته است. می خواهم:
    اطلاعات هر ماده از جایی که علامت : هست انتخاب شود و تا پایان همان خط ادامه و سپس کپی شود و در ستون هم نام خود پیست شود.
    مثال:
    Product Name: Trichloroethane
    انتخاب از بعد از علامت : شروع شود یعنی از t شروع و تا e ادامه پیدا کند (یعنی کلمهTrichloroethane کپی شود ) و در ستون C کپی شود.

    نکته: اگر جلوی یک قسمت خالی بود، در ستون مربوطه مقدار خالی را برگرداند.

    توضیحات بیشتر در فایل های پیوست
    فایل های پیوست شده
  • Amir Ghasemiyan

    • 2013/09/20
    • 4598
    • 100.00

    #2
    سلام دوست عزيز.
    اين روشي بود كه به ذهنم رسيد. احتمالا اساتيد روش بهتري هم ميتونن بهتون بگن
    کد:
    =mid(b5;find(":";b5)+1;find(":";b5;14)-14-find(":";b5))
    فايل ضميمه رو ملاحظه بفرماييد
    فایل های پیوست شده

    کامنت

    • afshin3a

      • 2014/01/14
      • 55

      #3
      سلام دوست گرامی
      من شما را به خاطر فرمول فوق العاده ای را که پیشنهاد کردید تحسین می کنم فقط هنوز یه مشکل داره و انوم اینه که وقتی فرمول را به سلول های دیگر اعمال می کنم، در برخی از جاها کار نمی کنه. ظاهرا برای دو قسمت Product Name و Chemical Formula به خوبی کار می کنه.
      فایل پیوست را ببنید.

      خوشحال می شوم نظرتان در مورد این پیشنهاد بدونم:
      ابتدا با یک فرمول مشخص به ابتدا یا انتهای تمام خطوط یک علامت مشخص مانند "." یا "/" اضافه کنیم.

      مثلا به جای
      Product Name: Trichloroethane
      Catalog Codes: SLT4180, SLT2167, SLT3460
      CAS#: 71-55-6
      RTECS: KJ2975000
      TSCA: TSCA 8(b) inventory: 1,1,1-Trichloroethane
      CI#: Not available.
      Synonym:
      Chemical Formula: CH3CCl3

      بنویسیم:
      Product Name: Trichloroethane/
      Catalog Codes: SLT4180, SLT2167, SLT3460/
      CAS#: 71-55-6/
      RTECS: KJ2975000/
      TSCA: TSCA 8(b) inventory: 1,1,1-Trichloroethane/
      CI#: Not available/.
      Synonym/:
      Chemical Formula: CH3CCl3/
      بعد با فرمول CLEAN تمام فاصله های اضافی را حذف کنیم. و آن را به صورت زیر در بیاوریم:
      Product Name: Trichloroethane/Catalog Codes: SLT4180, SLT2167, SLT3460/CAS#: 71-55-6/RTECS: KJ2975000/TSCA: TSCA 8(b) inventory: 1,1,1-Trichloroethane/CI#: Not available./Synonym:/Chemical Formula: CH3CCl3/



      فقط من نمی دونم چه جوری این "/ " را به انتهای آنها اضاف کنم.
      فک کنم اینجوری کار کردن روی آن آسانتر باشه. تازه بعدا می تونیم با استفاده از سربرگ Data با گزینه text to column بقیه کار را انجام بدیم. مشکل این روش اینه که من کلا 8 متغییر زیر را دارم و برای همه مواد شیمایی تمام متغیر ها موجود نیست.
      متغییر ها:

      Product Name:
      Catalog Codes:
      CAS#:
      RTECS:
      TSCA:
      CI#:.
      Synonym:
      Chemical Formula:

      ممکنه برای یک ماده مثلا سه تاشو داشته باشم. اونوقت بعد از زدن گزینه text to column اولین متغییر یعنی Product Name: درست جایگذاری میشه ولی بقیه درست قرار نمی گیرن.

      به هر حال من فایل پیوست رو براتون پیوست کردم و ضمننا فرمول رو اعمال کردم به بقیه سلول ها و براتون کامنت هم گذاشتم.

      تا همین جا از لطفی که کردید سپاسگزارم
      فایل های پیوست شده

      کامنت

      • Amir Ghasemiyan

        • 2013/09/20
        • 4598
        • 100.00

        #4
        کد:
        Sub splitting()
        Dim avarSplit As Variant
        Dim avarSplit2 As Variant
        [COLOR=#FF0000]For j = 2 To 5
        بفرماييد دوست عزيز
        
        از اين كد بايد استفاده كنيد
        
        Text = Cells(j, 2).Value
        avarSplit = Split(Text, Chr(10))
        For k = 0 To UBound(avarSplit, 1)
        For i = 0 To 8
            If InStr(avarSplit(k), Cells(1, i + 3)) <> 0 Then
                avarSplit2 = Split(avarSplit(k), ":")
                If UBound(avarSplit2, 1) > 1 Then avarSplit2(1) = (avarSplit2(1) & ":" & avarSplit2(2))
                Cells(j, i + 3).Value = avarSplit2(1)
                Exit For
            End If
        Next i
        Next k
        Next j
        End Sub
        قسمتي كه قرمز كردم شما بايد شماره سطر هايي كه ميخواين جداسازي انجام بشه رو وارد كنيد. مثلا من از سطر 2 تا سطر 5 رو جدا كردم. درضمن نيازي به / و . و .... نيست. بطور معمولي موارد رو بنويسيد اين كد خودش براتون جدا ميكنه

        درضمن لطف كنيد سلول D1 رو اصلاح كنيد و : رو از انتهاي نوشته حذف كنيد تا كد به درستي كار كنه[/COLOR]

        کامنت

        • afshin3a

          • 2014/01/14
          • 55

          #5
          بسیار ممنونم دوست گرامی!
          راستش من یه پروژه دارم و حالا که دیدم یه چنین کارهای خفنی رو با اکسل میشه انجام داد، یه خورده توقعم رفته بالا!
          من عنوان می کنم که چی می خوام ولی میدونم تقریبا غیر ممکنه که بشه با اکسل یه چنین کاری رو کرد! ولی اگر راهی داره، خوشحال میشم دوستان کمکم کنن!
          شرح پروژه:
          من 5000 ماده شیمیایی را در یک فایل اکسل هاپیرلینک کردم. (مطابق فایل پیوست)
          حالا دنبال کدی می گردم که اطلاعات خاصی را از یک محدوده ی مشخص از فایل های PDF کپی کنه و در اکسل در ستون C پیست کنه!

          فیلم روش انجام کار را نیز پیوست کردم (850 کیلو بایت)


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

          کامنت

          • حسام بحرانی

            • 2013/09/29
            • 2065
            • 72.00

            #6
            نوشته اصلی توسط afshin3a
            بسیار ممنونم دوست گرامی!
            راستش من یه پروژه دارم و حالا که دیدم یه چنین کارهای خفنی رو با اکسل میشه انجام داد، یه خورده توقعم رفته بالا!
            من عنوان می کنم که چی می خوام ولی میدونم تقریبا غیر ممکنه که بشه با اکسل یه چنین کاری رو کرد! ولی اگر راهی داره، خوشحال میشم دوستان کمکم کنن!
            شرح پروژه:
            من 5000 ماده شیمیایی را در یک فایل اکسل هاپیرلینک کردم. (مطابق فایل پیوست)
            حالا دنبال کدی می گردم که اطلاعات خاصی را از یک محدوده ی مشخص از فایل های PDF کپی کنه و در اکسل در ستون C پیست کنه!

            فیلم روش انجام کار را نیز پیوست کردم (850 کیلو بایت)


            [ATTACH=CONFIG]2041[/ATTACH]
            با سلام ، دوست عزیز پیشنهاد می کنم به اینجا مراجعه کنید .
            با سپاس
            ɦɛʂɑɱ ɓɑɦɾɑɳɨ
            [CENTER][B][SIZE=5][COLOR=#006600][FONT=georgia][COLOR=#800000]!With [/COLOR][/FONT][/COLOR][COLOR=#006600][FONT=georgia]God [/FONT][/COLOR][COLOR=#006600][FONT=georgia][COLOR=#800000]all [/COLOR][/FONT][/COLOR][COLOR=#800000][FONT=georgia]things are [/FONT][/COLOR][COLOR=#006600][FONT=georgia]possible[/FONT][/COLOR][/SIZE][/B][B][FONT=Tahoma]
            [/FONT][/B][/CENTER]
            [CENTER][B][FONT=Tahoma] [IMG]http://forum.exceliran.com/attachment.php?attachmentid=5334&d=1419428336[/IMG]
            [/FONT][/B][SIZE=1][FONT=Tahoma][B][FONT=Tahoma]
            [/FONT][/B][/FONT][/SIZE]
            [/CENTER]

            کامنت

            • afshin3a

              • 2014/01/14
              • 55

              #7
              من پیشنهاد پروژه رو ارسال کردم. چه جوری منو خبر می کنید؟

              کامنت

              • Amir Ghasemiyan

                • 2013/09/20
                • 4598
                • 100.00

                #8
                نوشته اصلی توسط afshin3a
                من پیشنهاد پروژه رو ارسال کردم. چه جوری منو خبر می کنید؟
                اساتيد پيشنهادتون رو بررسي ميكنن، در صورت تاييد مديران از طريق پيام خصوصي و يا شماره اي كه دادين ظرف دو سه روز آينده با شما تماس ميگيرن

                کامنت

                چند لحظه..