سؤال

أنا أقوم hlookup ضد القيمة التي تمتد عبر عدة أعمدة.هي مشابهة لهذه:

      A      B      C      D 
  ---------------------------  
1|       Col1          Col2
2|     x      y      z      w
3|
4|

في الصفوف 3 و 4 (A3, B3, C3, D3, الخ) ، أود أن وضع الصيغ التي سوف تفعل hlookup في مكان آخر في المصنف.هو خدعة ، أود أن ننظر "Col1" عن الأعمدة A و B و "Col2" عن الأعمدة C و D."Col1" في A1, ولكن هو حقا A1 و B1 دمجها.عندما المرجع A1 "Col1" يظهر, ولكن عندما المرجعية B1, عودة قيمة فارغة.

أي أفكار ؟

هل كانت مفيدة؟

المحلول

لوصول إلى "COL1" وتسميات "Col2"، يمكنك استخدام ما يلي:

<اقتباس فقرة>   

و= INDEX ($ 1: $ 1،1، العامود () - MOD (COLUMN () - 1،2))

ملحوظة: هذا يفترض أن يتم تجميع معا على نفس العدد من الخلايا. لو كانت ثلاث خلايا، وكنت مجرد تغيير الرقم الأخير في الصيغة إلى 3، وهلم جرا.

تعديل: وإليك كيف يعمل:

وINDEX ($ 1: $ 1،1، س) بإرجاع قيمة الخلية في الصف 1، العمود العاشر. إذا لم يقع الجدول الخاص بك الواقع في أعلى الزاوية اليسرى من ورقة العمل، يمكنك تغيير هذا النطاق الفعلي التي تضم كل من التسميات دمجها. في هذه الحالة، فإنه سيكون: INDEX ($ A $ 1: $ D $ 1،1، خ)

العمود () إرجاع رقم العمود من الخلية الحالية (1 في العمود A، 2 في العمود B، الخ.)

وزارة الدفاع (عمود () - 1، س) إرجاع إزاحة من العمود الحالي إلى العمود الذي يحمل التسمية المناسبة

نصائح أخرى

هنا هو آخر حل يمكن أن تعمل أيضا عندما دمج الخلايا من العروض المختلفة ، دعوني أوضح مثال على ذلك:

  1. فتح جديد Excel, دمج B1, C1, D1
  2. نوع Col1 في دمج الخلايا
  3. في B2, اكتب الصيغة =B1, و في C2 =C1, في D2 =D1
  4. يجب أن نرى B2 أن يكون Col1 في حين C2 D2 هي 0
  5. في B3, اكتب الصيغة =A3, نسخه
  6. انقر بزر الماوس الأيمن فوق الخلية المدمجة B1:D1, حدد "لصق خاص -> الصيغ"
  7. يجب أن تشاهد دمج الخلايا يجري 0
  8. نوع Col1 في دمج الخلايا
  9. يجب أن تشاهد الآن كل B2 C2 D2 أن يكون Col1, أيالآن يمكنك الرجوع إلى دمج الخلايا كما كنت أتوقع لها أن تكون.

إذا كان يمكنك متعددة الخلايا المدمجة في كل من العروض المختلفة, فقط لصق الصيغة إلى كل منهم في دفعة واحدة.

السبب وراء هذا هو أن من perculier اختيار التصميم من قبل Microsoft.يبدو أن عند لصق الصيغ في الخلايا المدمجة كل الكامنة الخلية يتلقى الصيغة (وعلى النقيض من ذلك ، إذا قمت بإدخال قيمة, فقط أعلى الخلية اليسرى يحصل ذلك) لذلك يمكنك استخدامه في صالحك و لصق الصيغة التي تشير إلى الخلية التالية ، ثم فوق أعلى يسار الخلية التي تحتوي على القيمة التي تريد ثم كل خلية من وراء دمج الخلايا سيكون لها تلك القيمة.

ولقد بنيت وظيفة بسيطة في VBA التي من شأنها حل هذه المشكلة:

Function mergedText(rngMergedCell As Range)

    If rngMergedCell.MergeCells = True Then
        mergedText = rngMergedCell.MergeArea(1, 1)
    Else
        mergedText = rngMergedCell
    End If

End Function

إذا كانت الخلية خلية مدمجة، فإن الدالة بإرجاع القيمة في العنصر الأول من الخلية المدمجة - وهذا هو المكان الذي يخزن الخلية المدمجة قيمته

ومتغير أكثر عمومية من اقتراح e.James هو:

={INDEX($A$1:A1, 1, MAX(NOT(ISBLANK($A$1:A1))*COLUMN($A$1:A1)-COLUMN($A$1)+1))}

وهذا يعتمد على حقيقة أن الخلايا المدمجة فارغة باستثناء أول واحد (إلا إذا كنت في حالة مثل اقتراح مارتن).

ملاحظة: الأقواس المعقوفة هناك لإحياء صيغة صفيف (لا تدخل منهم، بديل فقط اضغط على + عودة للتحقق من صحة الصيغة في الخلية)

.

وأنا أدرك أنا في وقت متأخر لهذا الموضوع ولكنني وجدت إجابة بسيطة حقا لذلك.

إذا، على سبيل المثال، يتم دمج التسمية عبر 4 أعمدة A1: D1، وإذا مرجع B1، وسوف يعود "". لإيجاد حيوي التسميات الصحيحة تستخدم هذا الفوركس في الجدول الجديد:

=if(OriginalTable!B1="",ThisTable!A1,OriginalTable!B1)

وأنا متأكد من أنك سوف ندرك أن هذا سوف التقاط النطاقات في E1: وما H1 أثناء سحب عبر

وهذا كل شيء. آمل أن يساعد شخص ما.

والخلايا B1 و D2 تحتوي على أية قيم، إلا A1 و C1 على شيء بداخلها.

وهكذا سيكون لديك فقط للتأكد من أن الصيغ في الأعمدة A و B على حد سواء تشير إلى A1 كقيمة البحث، وأن الصيغ في الأعمدة C و D على حد سواء تشير إلى C1 لقيمة البحث.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top