الانتقال إلى الأداة
ViewCSV
الملفات تبقى على جهازك

دمج ملفات CSV: تجميع الصفوف أو الربط حسب عمود

2 ملفّان
  1. customers.csv8 صفوف · customer_id, name, country, segment
  2. invoices.csv10 صفوف · customer_id, invoice_no, total, paid
طريقة الدمج
النتيجة
النتيجة
#customer_idnamecountrysegmentinvoice_nototalpaid
100301علي العليالإمارات العربية المتحدةretail···
200302سارة الحربيالإمارات العربية المتحدةeducation···
300303سارة المصريالإمارات العربية المتحدةbusiness···
400304يوسف الدوسريالإمارات العربية المتحدةbusiness···
500305ليلى المصريالإمارات العربية المتحدةretail···
600306فاطمة المنصورالإمارات العربية المتحدةretail···
700307هدى النجارالإمارات العربية المتحدةbusiness···
800308أحمد الخطيبالإمارات العربية المتحدةretail···
900306···INV-2400186.47true
1000303···INV-2401195.69true
1100304···INV-240250.04true
1200303···INV-2403585.43false
1300303···INV-2404650.06false
1400306···INV-2405160.22false
1500308···INV-2406377.90true
1600309···INV-2407524.62true
1700306···INV-2408822.73true
1800307···INV-2409877.15true

18 صفًا · 7 الأعمدة

لدمج ملفات CSV، أضف ملفين أو أكثر واختر طريقة الجمع بينها. يجمع التجميع صفوف كل الملفات في جدول واحد، مع مطابقة الأعمدة حسب اسم العنوان، فيبقى العمود الموجود في بعض الملفات فقط ويُترك فارغًا في غيرها؛ وهذا ما يقصده أغلب الناس بدمج الملفات الشهرية أو ملفات الفروع. أما الربط فيضع ملفين جنبًا إلى جنب حسب عمود مفتاحي أو أكثر، كدالة البحث في جداول البيانات، ويذكر عدد الصفوف المتطابقة والمفاتيح المكررة وعدد الصفوف الإضافية الناتجة عنها. يتحدّث الجدول المدمج مع تغيير الخيارات، وتُدمج الملفات في متصفحك ولا تُرفع أبدًا.

طريقة دمج ملفات CSV

  1. أضِف الملفات. يُقرأ كل ملف مع اكتشاف محدِّده وترميزه، ويُعدّ صفه الأول صف عناوين. تعرض القائمة عدد صفوف كل ملف وأعمدته الأولى؛ ويمكن نقل الملفات لأعلى أو لأسفل لتحديد الترتيب.
  2. اختر التجميع لوضع صفوف كل الملفات بعضها تلو بعض، أو الربط لمطابقة صفوف أول ملفين حسب مفتاح.
  3. راجع المعاينة والملاحظات فوقها، ثم نزّل النتيجة بصيغة CSV أو افتحها في محرر CSV لمواصلة العمل.

تحتفظ الصفوف بترتيب قائمة الملفات: كل صفوف الملف الأول، ثم كل صفوف الثاني، وهكذا. ولدمج ملفات مصدَّرة شهريًا كثيرة، أضِفها كلها دفعة واحدة وفعّل عمود المصدر، فيذكر كل صف الملف الذي جاء منه.

التجميع: ملفات بأعمدة مختلفة بعضها تحت بعض

للتجميع ثلاث طرق لمحاذاة الأعمدة، ويُختار منها ما يناسب طريقة اختلاف الملفات.

المطابقة حسب اسم العنوان (افتراضي)تضم النتيجة كل عناوين كل الملفات، بترتيب أول ظهور لها. والصف القادم من ملف ينقصه عمود يحصل فيه على قيمة فارغة. ويجب أن تتطابق الأسماء تمامًا: ⁦SKU⁩ و⁦sku⁩ يصبحان عمودين.
اشتراط تطابق العناوينيتوقف برسالة خطأ تذكر أول ملف تختلف عناوينه في الاسم أو العدد أو الترتيب. يُستخدم عندما يُفترض أن تأتي كل الملفات من التصدير نفسه، فيدل العمود الذي أُعيدت تسميته على خلل.
المطابقة حسب الموضعالعمود 1 تحت العمود 1، وهكذا. تُؤخذ العناوين من الملف الذي فيه أكبر عدد من الأعمدة، وتحصل الملفات الأقصر على قيم فارغة في النهاية. لا يُستخدم إلا إذا لم يكن للملفات صف عناوين صالح، أو كانت لها البنية نفسها بأسماء مختلفة.
إضافة عمود المصدريضيف عمودًا أخيرًا اسمه ⁦source_file⁩ ما لم يُغيَّر، فيه اسم ملف كل صف. ويجب ألا يكون هذا الاسم عنوانًا موجودًا.
إزالة الصفوف المكررةبعد التجميع يحذف كل صف مطابق لصف سابق، ويذكر عدد الصفوف المحذوفة. وتبقى النسخة الأولى. يجب أن تتطابق القيم تمامًا بما فيها حالة الأحرف والمسافات؛ ويُتجاهل عمود المصدر، فيُعدّ الصف نفسه في ملفين مكررًا.

المطابقة حسب الموضع تضع القيم تحت عنوان خاطئ إذا كان في أحد الملفات عمود زائد أو أعمدة بترتيب مختلف: في المثال أدناه كانت قيمة qty في الملف april.csv ستقع تحت name. والمطابقة حسب اسم العنوان تتجنب ذلك ما دام للملفات صف عناوين.

الربط: ضم ملفين حسب مفتاح

يستخدم الربط أول ملفين في القائمة طرفًا أيسر وطرفًا أيمن. يُختار زوج واحد أو أكثر من الأعمدة المفتاحية، ويمكن أن يختلف الاسمان في كل زوج، مثل customer_id في الملف الأيسر وid في الأيمن. ومع عدة أزواج لا يتطابق الصف إلا إذا تطابقت كل الأزواج.

الربط الأيسر (افتراضي)كل صفوف الملف الأيسر، مع ملء أعمدة الملف الأيمن حيث تطابق المفتاح وتركها فارغة حيث لم يتطابق.
الربط الداخليصفوف الملف الأيسر التي يوجد مفتاحها في الملف الأيمن فقط.
الربط الأيمنكل صفوف الملف الأيمن: الصفوف المتطابقة بترتيب الملف الأيسر، تليها صفوف الملف الأيمن التي لم تطابق شيئًا.
الربط الكاملكل صفوف الملفين: نتيجة الربط الأيسر تليها صفوف الملف الأيمن التي لم تطابق شيئًا.
تجاهل حالة الأحرف والمسافات المحيطة في المفاتيحتطابق ⁦ C02 ⁩ القيمة ⁦c02⁩. ويُكتب في النتيجة نص المفتاح من الملف الأيسر.

تضم النتيجة كل أعمدة الملف الأيسر، ثم أعمدة الملف الأيمن عدا أعمدته المفتاحية. والعمود الأيمن الذي اسمه مستخدم مسبقًا تُضاف إليه اللاحقة ⁦ (2)⁩، مثل ⁦total (2)⁩، وتذكر الملاحظات الأعمدة التي أُعيدت تسميتها. وفي صف الملف الأيمن الذي لم يطابق شيئًا يُكتب مفتاحه في العمود المفتاحي الأيسر، وتبقى أعمدة الملف الأيسر الأخرى فارغة.

إذا ظهر مفتاح أكثر من مرة في الملف الأيمن، يتكرر كل صف أيسر مطابق مرة لكل تطابق. تعدّ الملاحظات الصفوف المتطابقة، والصفوف الموجودة في الأيسر فقط أو في الأيمن فقط، والمفاتيح المكررة في كل طرف، والصفوف الإضافية الناتجة، فيظهر فورًا أن عملية بحث يُفترض أن تكون واحدًا لواحد ليست كذلك.

القيم والعناوين والمحدِّدات المختلفة

  • القيم نصوص وتبقى كما كُتبت تمامًا، فتحتفظ ⁦00123⁩ بأصفارها في البداية. والمفاتيح أيضًا تُقارَن كنص: ⁦00123⁩ و⁦123⁩ لا يتطابقان، حتى مع تجاهل حالة الأحرف والمسافات.
  • المحدِّدات وعلامات الاقتباس وفواصل الأسطر داخل القيم بين علامات اقتباس تُقرأ وفق RFC 4180، وتُحاط بعلامات اقتباس من جديد حيث يلزم في الملف المنزَّل.
  • داخل الملف الواحد يصبح العنوان الفارغ ⁦Column 3⁩ والمكرر ⁦name (2)⁩. وتشارك هذه الأسماء المولَّدة في المطابقة حسب اسم العنوان كأي اسم آخر.
  • يمكن أن تستخدم الملفات محدِّدات وترميزات مختلفة، ويُكتشف كل منها على حدة. يكون الملف المنزَّل مفصولًا بفواصل، وتتبع نهايات أسطره وترميزه الملف الأول في القائمة. والترميزات التي لا يستطيع المتصفح كتابتها، مثل ⁦Shift_JIS⁩، تُحفظ بـ⁦UTF-8⁩.

مشكلات التجميع والربط

  • أعمدة تظهر مرتين بأسماء مختلفة قليلًا. الملفات تكتب العنوان بطرق مختلفة (⁦Email⁩ و⁦email⁩، أو مسافة في الآخر). أعِد تسمية أحدها بأداة إعادة تسمية أعمدة CSV وترتيبها قبل الدمج، أو استخدم المطابقة حسب الموضع إذا كانت البنية متطابقة.
  • الربط لم يطابق شيئًا تقريبًا. تحقّق من أن المفاتيح مكتوبة بالطريقة نفسها في الملفين: الأصفار في البداية والبادئات والمسافات كلها تُحتسب. فعّل تجاهل حالة الأحرف والمسافات المحيطة، أو أزِل المسافات من العمود أولًا بأداة تنظيف بيانات CSV.
  • في نتيجة الربط صفوف أكثر من الملف الأيسر. الملف الأيمن يكرر مفتاحًا؛ وتذكر الملاحظات عدد المفاتيح المكررة وعدد الصفوف الإضافية التي أنتجتها. احذف التكرارات أو اختر زوج مفاتيح أدق.
  • الجدول المدمج يتجاوز حد المتصفح. يمكن أن تضم النتيجة 100 ألف صف ومليوني خلية على الأكثر. صفِّ المدخلات أولًا، أو ادمج عددًا أقل من الملفات في كل مرة.

حدود الدمج والخصوصية

يمكن أن يصل كل ملف إلى 25 ميغابايت و100 ألف صف و250 عمودًا ومليوني خلية، وتخضع نتيجة الدمج أو الربط للحد نفسه: 100 ألف صف ومليونا خلية. والدمج لا يعمل تدفقيًا: يُحمَّل كل ملف في الذاكرة.

تُقرأ الملفات في عامل خلفي داخل علامة التبويب هذه وتُدمج في متصفحك، ولا تُرسل أبدًا إلى أي خادم. ولمعرفة ما تغيّر بين نسختين من ملف بدل جمعهما، استخدم مقارنة ملفات CSV؛ ولتقطيع ملف واحد إلى عدة ملفات، استخدم تقسيم ملفات CSV.

مثال: تجميع ملفَّي مخزون بأعمدة مختلفة

ملفا مخزون مُصدَّران بأعمدة مختلفة، جُمعا بالمطابقة حسب اسم العنوان مع تفعيل عمود المصدر. العمودان name وwarehouse موجودان في ملف واحد فقط، فتبقى صفوف الملف الآخر فارغة فيهما، وتحتفظ رموز SKU بأصفارها في البداية.

CSV
march.csv
sku,name,qty
00123,"Desk lamp, brass",4
00456,Shelf,2

april.csv
sku,qty,warehouse
00789,10,North
00456,2,
merged.csv
sku,name,qty,warehouse,source_file
00123,"Desk lamp, brass",4,,march.csv
00456,Shelf,2,,march.csv
00789,,10,North,april.csv
00456,,2,,april.csv

أسئلة وأجوبة

هل يمكن ربط أكثر من ملفين؟

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

هل تقارن إزالة الصفوف المكررة عمودًا مفتاحيًا فقط؟

لا. لا يُحذف الصف إلا إذا تطابقت كل قيمه تمامًا مع صف سابق. وللإبقاء على صف واحد لكل معرّف، مرّر النتيجة على تنظيف بيانات CSV واحذف التكرارات هناك حسب العمود المفتاحي.

لماذا وضعت المطابقة حسب الموضع قيمًا تحت عنوان خاطئ؟

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

المعايير والمراجع