Note: The other languages of the website are Google-translated. Back to English
English English

จะเพิ่มหลายช่องลงในตาราง Pivot ได้อย่างไร?

เมื่อเราสร้างตาราง Pivot เราจำเป็นต้องลากฟิลด์ลงใน Row Labels หรือ Values ​​ด้วยตนเองทีละรายการ หากเรามีรายการฟิลด์ยาวเราสามารถเพิ่มป้ายชื่อแถวสองสามแถวได้อย่างรวดเร็ว แต่ควรเพิ่มฟิลด์ที่เหลือลงในพื้นที่ค่า มีวิธีการที่รวดเร็วสำหรับเราในการเพิ่มฟิลด์อื่น ๆ ทั้งหมดลงในพื้นที่ค่าด้วยการคลิกเพียงครั้งเดียวในตาราง Pivot หรือไม่?

เพิ่มหลายฟิลด์ในพื้นที่ค่าของตาราง Pivot ด้วยรหัส VBA

แท็บ Office เปิดใช้งานการแก้ไขและเรียกดูแบบแท็บใน Office และทำให้งานของคุณง่ายขึ้นมาก ...
Kutools สำหรับ Excel ช่วยแก้ปัญหาส่วนใหญ่ของคุณและเพิ่มผลผลิตของคุณได้ถึง 80%
  • ใช้ซ้ำอะไรก็ได้: เพิ่มสูตรที่ใช้มากที่สุดหรือซับซ้อนแผนภูมิและสิ่งอื่นใดในรายการโปรดของคุณและนำกลับมาใช้ใหม่ได้อย่างรวดเร็วในอนาคต
  • คุณสมบัติข้อความมากกว่า 20 รายการ: แยกหมายเลขจากสตริงข้อความ แยกหรือลบบางส่วนของข้อความ แปลงตัวเลขและสกุลเงินเป็นคำภาษาอังกฤษ
  • ผสานเครื่องมือ: สมุดงานและแผ่นงานหลายเล่มเป็นหนึ่งเดียว ผสานหลายเซลล์ / แถว / คอลัมน์โดยไม่สูญเสียข้อมูล รวมแถวและผลรวมที่ซ้ำกัน
  • แยกเครื่องมือ: แยกข้อมูลออกเป็นหลายแผ่นตามมูลค่า; สมุดงานหนึ่งเล่มเป็นไฟล์ Excel, PDF หรือ CSV หลายไฟล์ หนึ่งคอลัมน์ถึงหลายคอลัมน์
  • วางการข้าม แถวที่ซ่อน / กรอง; นับและผลรวม โดย Background Color; ส่งอีเมลส่วนบุคคลไปยังผู้รับหลายคนในกลุ่ม
  • ซุปเปอร์กรอง: สร้างโครงร่างตัวกรองขั้นสูงและใช้กับแผ่นงานใด ๆ ประเภท ตามสัปดาห์วันความถี่และอื่น ๆ กรอง by ตัวหนาสูตรคอมเม้น ...
  • คุณสมบัติที่ทรงพลังมากกว่า 300 รายการ ทำงานร่วมกับ Office 2007-2019 และ 365; รองรับทุกภาษา ใช้งานง่ายในองค์กรหรือองค์กรของคุณ

ลูกศรสีฟ้าฟองขวา เพิ่มหลายฟิลด์ในพื้นที่ค่าของตาราง Pivot ด้วยรหัส VBA


น่าเสียดายที่ไม่มีช่องทำเครื่องหมายให้เราตรวจสอบช่องทั้งหมดในรายการเขตข้อมูลตาราง Pivot ได้อย่างรวดเร็วด้วยการคลิกเพียงครั้งเดียว แต่ด้วยรหัส VBA ต่อไปนี้จะช่วยให้คุณสามารถเพิ่มช่องที่เหลือลงในพื้นที่ค่าได้ในครั้งเดียว โปรดดำเนินการดังนี้:

1. หลังจากสร้างตาราง Pivot ประการแรกคุณควรเพิ่มช่องป้ายชื่อแถวตามที่คุณต้องการและปล่อยฟิลด์ค่าไว้ใน เลือกช่องที่จะเพิ่มในรายงาน ดูภาพหน้าจอ: </ p>

doc-add-multiple-fields-1

2. กด ALT + F11 คีย์เพื่อเปิด หน้าต่าง Microsoft Visual Basic for Applications.

3. คลิก สิ่งที่ใส่เข้าไป > โมดูลและวางรหัสต่อไปนี้ในไฟล์ หน้าต่างโมดูล.

รหัส VBA: เพิ่มหลายฟิลด์ลงในพื้นที่ค่าของตาราง Pivot ในแผ่นงานที่ใช้งานอยู่

Sub AddAllFieldsValues()
'Update 20141112
    Dim pt As PivotTable
    Dim I As Long
    For Each pt In ActiveSheet.PivotTables
        For I = 1 To pt.PivotFields.Count
            With pt.PivotFields(I)
              If .Orientation = 0 Then .Orientation = xlDataField
            End With
        Next
    Next
End Sub

4. จากนั้นกด F5 คีย์เพื่อเรียกใช้รหัสนี้เพิ่มฟิลด์ที่เหลือทั้งหมดลงในพื้นที่ค่าในเวลาเดียวกันดูภาพหน้าจอ:

doc-add-multiple-fields-1

หมายเหตุ: รหัส VBA นี้ใช้กับตาราง Pivot ทั้งหมดของแผ่นงานที่ใช้งานอยู่


บทความที่เกี่ยวข้อง:

จะแสดงรายการตาราง Pivot ทั้งหมดในสมุดงานได้อย่างไร?

วิธีตรวจสอบว่ามีตาราง Pivot อยู่ในสมุดงานหรือไม่?


เครื่องมือเพิ่มประสิทธิภาพการทำงานในสำนักงานที่ดีที่สุด

Kutools สำหรับ Excel ช่วยแก้ปัญหาส่วนใหญ่ของคุณและเพิ่มผลผลิตของคุณได้ถึง 80%

  • นำมาใช้ใหม่: ใส่อย่างรวดเร็ว สูตรที่ซับซ้อนแผนภูมิ และสิ่งที่คุณเคยใช้มาก่อน เข้ารหัสเซลล์ ด้วยรหัสผ่าน; สร้างรายชื่อผู้รับจดหมาย และส่งอีเมล ...
  • ซุปเปอร์ฟอร์มูล่าบาร์ (แก้ไขข้อความและสูตรหลายบรรทัดได้อย่างง่ายดาย); การอ่านเค้าโครง (อ่านและแก้ไขเซลล์จำนวนมากได้อย่างง่ายดาย); วางลงในช่วงที่กรองแล้ว...
  • ผสานเซลล์ / แถว / คอลัมน์ โดยไม่สูญเสียข้อมูล แยกเนื้อหาของเซลล์ รวมแถว / คอลัมน์ที่ซ้ำกัน... ป้องกันเซลล์ซ้ำ; เปรียบเทียบช่วง...
  • เลือกซ้ำหรือไม่ซ้ำ แถว; เลือกแถวว่าง (เซลล์ทั้งหมดว่างเปล่า); Super Find และ Fuzzy Find ในสมุดงานจำนวนมาก สุ่มเลือก ...
  • สำเนาถูกต้อง หลายเซลล์โดยไม่เปลี่ยนการอ้างอิงสูตร สร้างการอ้างอิงอัตโนมัติ ถึงหลายแผ่น ใส่สัญลักษณ์แสดงหัวข้อย่อย, กล่องกาเครื่องหมายและอื่น ๆ ...
  • แยกข้อความ, เพิ่มข้อความ, ลบตามตำแหน่ง, ลบ Space; สร้างและพิมพ์ผลรวมย่อยของเพจ แปลงระหว่างเนื้อหาของเซลล์และความคิดเห็น...
  • ซุปเปอร์ฟิลเตอร์ (บันทึกและใช้โครงร่างตัวกรองกับแผ่นงานอื่น ๆ ); การเรียงลำดับขั้นสูง ตามเดือน / สัปดาห์ / วันความถี่และอื่น ๆ ตัวกรองพิเศษ โดยตัวหนาตัวเอียง ...
  • รวมสมุดงานและแผ่นงาน; ผสานตารางตามคอลัมน์สำคัญ แยกข้อมูลออกเป็นหลายแผ่น; Batch แปลง xls, xlsx และ PDF...
  • คุณสมบัติที่ทรงพลังมากกว่า 300 รายการ. รองรับ Office / Excel 2007-2019 และ 365 รองรับทุกภาษา ใช้งานง่ายในองค์กรหรือองค์กรของคุณ ทดลองใช้ฟรี 30 วันเต็ม รับประกันคืนเงิน 60 วัน
kte แท็บ 201905

แท็บ Office นำอินเทอร์เฟซแบบแท็บมาที่ Office และทำให้งานของคุณง่ายขึ้นมาก

  • เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
  • เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
  • เพิ่มผลผลิตของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!
ด้านล่าง officetab

 

จัดเรียงความคิดเห็นโดย
ความคิดเห็น (23)
ยังไม่มีการให้คะแนน เป็นคนแรกที่ให้คะแนน!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
มาโครที่ดีและมีประโยชน์จริงๆ อย่างไรก็ตาม ฉันได้เพิ่มเขตข้อมูลของฉันไปครึ่งหนึ่งในค่าแล้ว และเมื่อฉันเรียกใช้แมโครนี้ มันเพิ่มเขตข้อมูลเดิมทั้งหมดอีกครั้ง ความคิดใด ๆ ว่าทำไม?
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ว้าว. มันทำงานได้ดีมาก ขอบคุณมาก! อย่างไรก็ตาม ฉันค่อนข้างประหลาดใจที่ Microsoft ไม่มีฟีเจอร์ในตัวสำหรับงานที่ค่อนข้างง่าย...
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
นี่เป็นเรื่องที่ยอดเยี่ยม สามารถแก้ไขมาโครเพื่อเพิ่มทั้งหมดลงใน Row Labels แทน Values ​​ได้หรือไม่
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
มีวิธีเรียกใช้เฉพาะสำหรับฟิลด์ที่แยกออกหรือไม่ เพื่อที่เมื่อเรียกใช้ ฉันจะไม่ลงเอยด้วยฟิลด์ที่ซ้ำกัน เช่น. "ฟิลด์" และ "ฟิลด์_2"
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
[quote]มีวิธีเรียกใช้สิ่งนี้เฉพาะสำหรับฟิลด์ที่แยกออกหรือไม่ เพื่อที่เมื่อฉันเรียกใช้ฉันจะไม่ลงเอยด้วยฟิลด์ที่ซ้ำกัน เช่น. "ฟิลด์" และ "ฟิลด์_2"By ชอน[/quote] ใช่- สองตัวอย่าง ใช้สิ่งนี้เพื่อเพิ่มรายการที่ไม่ได้เลือกทั้งหมดไปยัง ROWS Sub AddAllFieldsRow() Dim pt As PivotTable Dim iCol As Long Dim iColEnd As Long Set pt = ActiveSheet.PivotTables(1) ด้วย pt iCol = 1 iColEnd = .PivotFields.Count For iCol = 1 ถึง iColEnd ด้วย .PivotFields(iCol) หาก .Orientation = 0 จากนั้น .Orientation = xlRowField End หากสิ้นสุดด้วย iCol ถัดไป End With End Sub ใช้สิ่งนี้เพื่อเพิ่มรายการที่ไม่ได้ตรวจสอบที่เหลืออยู่ใน VALUES Sub AddAllFieldsValues() Dim pt As PivotTable Dim iCol นาน Dim iColEnd As Long Set pt = ActiveSheet.PivotTables(1) ด้วย pt iCol = 1 iColEnd = .PivotFields.Count For iCol = 1 ถึง iColEnd ด้วย .PivotFields(iCol) = 0 จากนั้น .Orientation .Orientation = xlDataField End ถ้าจบด้วย iCol ถัดไป End With End Sub
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
มีวิธีเพิ่มเฉพาะบางฟิลด์ ekstra ไม่ใช่ส่วนที่เหลือหรือทั้งหมด แต่เพียงคู่ที่ยังไม่ได้ตรวจสอบหรือไม่? :)
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ใช่ เพื่อสะท้อนมาร์คัส มีวิธีแก้ไขโค้ดเพื่อเพิ่มเฉพาะฟิลด์ที่ไม่ได้เลือกที่มีป้ายกำกับฟิลด์อย่างแน่นอน (เช่นฟังก์ชัน if มี) หรือไม่ ตัวอย่างเช่น ฉันมีคำถามที่เป็นจริง 50 ค่าใช่/ไม่ใช่ตามหัวข้อ และฉันต้องการย้ายค่าเหล่านั้นทั้งหมดไปยังฟิลด์ค่า พวกเขาทั้งหมดเริ่มต้นด้วยป้ายกำกับคำถามเดียวกัน q9_[หัวข้อคำถามเฉพาะ]
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
มีอยู่แล้วหรือไม่ถ้าเราต้องการเพิ่มบางคอลัมน์ที่เลือกจากไฟล์ฐานแทนที่จะเป็นทั้งหมด?
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
มูลค่าตะเกียงของมันนับ ฉันจะแปลงทั้งหมดนับเป็น Sum . ได้อย่างไร
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
คุณสามารถคลิกที่ฟิลด์ของคุณ (ในพื้นที่ที่คุณลากฟิลด์ของคุณไป: ป้ายกำกับคอลัมน์, ป้ายกำกับแถว ฯลฯ ) จากนั้นคลิกที่ "การตั้งค่าฟิลด์ค่า" จากนั้นคุณจะได้รับรายการแบบหล่นลงซึ่งคุณสามารถเลือก "ผลรวม" ได้!
A     El
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
รหัส VBA: เปลี่ยนการตั้งค่าหลายฟิลด์ในตาราง Pivot
https://www.extendoffice.com/documents/excel/2354-excel-pivot-table-change-multiple-field-settings.html
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
นี้ดีมาก! ขอบคุณ.
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
"xlDataField" ไม่ทำงานกับ PowerPivot หรือไม่ ฉันมีโค้ดด้านล่าง ซึ่งใช้เพื่อเพิ่มการวัดทั้งหมดลงในตารางสาระสำคัญ ใช้งานได้กับ "xlColumnField" และ "xlRowField" ความคิดใดที่จะทำให้งานนี้?

ย่อย AddAllFieldsValues()
Dim pt เป็น PivotTable
หรี่ iCol ตราบ
หรี่ iColEnd ตราบใดที่

ตั้งค่า pt = ActiveSheet.PivotTables(1)

ด้วยpt

ไอโคล = 1
iColEnd = .CubeFields.Count

สำหรับ iCol = 1 ถึง iColEnd
ด้วย .CubeFields (iCol)
ถ้า .Orientation = xlHidden แล้ว
.Orientation = xlDataField
End If
จบด้วย
ต่อไป iCol

จบด้วย

ย่อยสิ้นสุด
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี

มันทำให้ฉันมีข้อผิดพลาดในการคอมไพล์เมื่อฉันคลิกที่ Run

กรุณาช่วย
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ทำงานเหมือนมีเสน่ห์ ขอบคุณ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอบคุณครับ ช่วยได้เยอะเลย
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอบคุณมาก!!!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
หมายเหตุ: ข้อความแสดงข้อผิดพลาดของ Che:




ย่อย AddAllFieldsValues()




'อัปเดต 20141112



สลัว
pt เป็น PivotTable





ติ่มซำฉันเป็น
นาน





แต่ละ
pt ใน ActiveSheet.PivotTables





สำหรับ
ฉัน = 1 ถึง pt.PivotFields.Count





จบด้วย







ต่อไป



ต่อไป




ย่อยสิ้นสุด










หมายเหตุ: Che กำลังพยายามเพิ่มสิ่งต่อไปนี้
field/snapshot- "ผลรวมของส่วนต่างอื่น ผลรวมของ 4096
ความแตกต่าง" กว่า 80 สาขา ให้เป็น
ที่เพิ่ม







ความแตกต่างอื่นๆ



4096 ความแตกต่าง



4016 ความแตกต่าง
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ถ้า “ค่าคือ
"0" หรือ "Null" วิธีระงับค่าแถวจากการแสดง

(เช่น ผลรวม 2743 ส่วนต่าง)





หมุน "แถว"
จุดหมุน "ค่า"





ป้ายกำกับแถว





NP9 - รวมที่ไม่ได้ใช้
การจัดสรร





ผลรวมของส่วนต่างอื่น 1,045,355,165.31




ผลรวม 3200 ส่วนต่าง
0.00




ผลรวม 0108 ส่วนต่าง
12,873,630.29



ผลรวม 4586 ส่วนต่าง
(33,024,706.93)



ผลรวม 0148 ส่วนต่าง
(72,046,783.14)



ผลรวม 0129 ส่วนต่าง
(5,583,891.98)



ผลรวม 4598 ส่วนต่าง
(929,574.56)



ผลรวม 2743 ส่วนต่าง



ผลรวม 4041 ส่วนต่าง
0.00



ผลรวม 2799 ส่วนต่าง
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
มีวิธีแก้ไขมาโครที่จะส่งฟิลด์ไปยังป้ายกำกับแถวแทนค่าหรือไม่?
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
Задача же не всегда стоитв получении списка, хочется допустим поправить названия таблиц илинидод. Можете реализовать?
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี มีวิธีเพิ่มเฉพาะคอลัมน์ที่ไม่ได้เลือกหรือไม่ ขอบใจ. 
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันกำลังเรียกใช้รหัสนี้ ใช้เวลานานเท่าใดจึงจะเสร็จสมบูรณ์? ตอนนี้ 45 นาทีก็ยังวิ่งอยู่ โปรดช่วยฉันด้วย อีกอย่าง คอลัมน์เขตข้อมูลทั้งหมดของฉันคือ 3600
มีความคิดเห็นยังไม่มีการโพสต์ที่นี่
แสดงความคิดเห็นของคุณ
โพสต์ในฐานะแขก
×
ให้คะแนนโพสต์นี้:
0   ตัวอักษร
สถานที่แนะนำ