Đưa toàn bộ số liệu trong bảng vào 1 cột (4 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Loannie

Thành viên mới
Tham gia
22/9/09
Bài viết
30
Được thích
1
Em có bảng số liệu ví dụ như trong file đính kèm cỡ 15 cột x 500 dòng. Làm thế nào để tổng hợp tất cả số liệu trong bảng thành một cột?

Em xin cảm ơn
 

File đính kèm

Em có bảng số liệu ví dụ như trong file đính kèm cỡ 15 cột x 500 dòng. Làm thế nào để tổng hợp tất cả số liệu trong bảng thành một cột?

Em xin cảm ơn

Dùng công thức sau cho Q2
PHP:
=INDEX($A$2:$O$328,MOD(ROW(1:1)-1,327)+1,INT((ROW(1:1)-1)/327)+1)

Kéo copy cho các ô tiếp đến hết

(số 327 ở đây được tính: 327=328-2+1 là số dòng của vùng bảng đó)
 
Lần chỉnh sửa cuối:
dear bạn vodoi2x: Mình thử công thức của bạn nhưng excel báo sai công thức. Bạn kiểm tra giúp mình xem nhé
dear bạn chanhtq@: cám ơn bạn đã nhắc nhở, mình ko biết phân loại ở mục nào nên mới liều đưa vậy. Mình sẽ rút kinh nghiệm.
 
dear bạn vodoi2x: Mình thử công thức của bạn nhưng excel báo sai công thức. Bạn kiểm tra giúp mình xem nhé
dear bạn chanhtq@: cám ơn bạn đã nhắc nhở, mình ko biết phân loại ở mục nào nên mới liều đưa vậy. Mình sẽ rút kinh nghiệm.

=INDEX($A$2:$O$328,MOD(ROW(1:1)-1,327)+1, INT((ROW(1:1)-1)/327 )+1)

do dấu cách đó , bạn thử lại COPY ở đây nhé
 
Lần chỉnh sửa cuối:
Công thức của vodoi chuyển dọc trước ngang sau:
=
INDEX($A$2:$O$328,MOD(ROW(1:1)-1,327)+1, INT((ROW
S(1:1)-1)/327 )+1)
Chỗ đỏ đỏ phải là Row (không S) mới đúng

Nếu muốn ngang trước dọc sau thì:
=INDEX($A$2:$O$328;INT((ROW(1:1)-1)/15)+1;MOD(ROW(1:1)-1;15)+1)
Vói 15 là số cột.

Nếu muốn loại bỏ ô trống thì dùng VBA:
Tham khảo thêm Chuyển dữ liệu 2 chiều thành 1 chiều có loại bỏ ô trống.
 
Lần chỉnh sửa cuối:
NẾU không được thì bạn download file kèm vậy,

Diễn đàn hôm nay làm sao nhỉ, copy công thức lại sai (?)
 

File đính kèm

Lần chỉnh sửa cuối:
Cám ơn các bạn đã bớt chút thời gian giải quyết vấn đề này. Mình sẽ thử theo chỉ dẫn của các bạn.

Trong quá trình google, mình thấy 1 bài hướng dẫn cách tích hợp 1 file đuôi ".xla" cho mục đích chuyển từ bảng thành cột như sau:
http://michiel.wordpress.com/2009/03/12/convert-excel-tables-to-lists/

Mình đọc dc = tiếng Anh nhưng ko hiểu thao tác ntn. Bạn nào rành thì giảng giải cho anh em nhé. Mình có thể dịch ra tiếng Việt nếu bạn cần.

Xin cảm ơn!
 
Chả cần dịch cũng làm được. Copy code vào 1 file excel, chọn 1 ô trong bảng cần chuyển đổi, rồi chạy code.
Nếu tự dịch được, lại càng dễ. Nhất là dịch cái đoạn sử dụng xla, download xla, cài đặt xla, và cách chạy code của xla.
Code nó đây:
PHP:
Sub TableToList()
   If ActiveCell.CurrentRegion.Rows.Count < 2 Then
   Exit Sub
   End If
   If ActiveCell.CurrentRegion.Columns.Count < 2 Then
   Exit Sub
   End If
   Dim table As Range:   Dim rngColHead As Range
   Dim rngRowHead As Range:   Dim rngData As Range
   Dim rngCurrCell As Range:   Dim rowVal As Variant
   Dim colVal As Variant:   Dim val As Variant
Set table = ActiveCell.CurrentRegion
Set rngColHead = table.Rows(1)
Set rngRowHead = table.Columns(1)
Set rngData = table.Offset(1, 1)
Set rngData = rngData.Resize(rngData.Rows.Count - 1, rngData.Columns.Count - 1)
ActiveWorkbook.Worksheets.Add
ActiveCell.Value = "Row#"
ActiveCell.Offset(0, 1).Value = "RowValue"
ActiveCell.Offset(0, 2).Value = "ColValue"
ActiveCell.Offset(0, 3).Value = "Data"
ActiveCell.Offset(1, 0).Select
Dim n As Long
For Each rngCurrCell In rngData
colVal = rngColHead.Cells(rngCurrCell.Column - table.Column + 1)
rowVal = rngRowHead.Cells(rngCurrCell.Row - table.Row + 1)
n = n + 1
ActiveCell.Value = n
ActiveCell.Offset(0, 1).Value = rowVal
ActiveCell.Offset(0, 2).Value = colVal
ActiveCell.Offset(0, 3).Value = rngCurrCell.Value
ActiveCell.Offset(1, 0).Select

ActiveCell.Offset(0, 3).Value = "=" & rngCurrCell.Worksheet.Name & "!" & rngCurrCell.Address
Next
End Sub

Code dài dòng mà bảo đảm chạy không nhanh như các code dùng mảng trong topic tôi đưa link ở trên.
 
Lần chỉnh sửa cuối:
Code của Tây, giải toán Tây. Bảng dữ liệu của Tây thường có cả tiêu đề cột lẫn tiêu đề dòng thế này:

a|b|c|d|
x|
1​
|
3​
|
5​
|
y|
2​
|
9​
|
15​
|
z|
3​
|
27​
|
45​
|
t|
4​
|
81​
|
135​
|

Và kết quả là tạo 1 sheet mới và chuyển thành list thế này:

Row#|RowValue|ColValue|Data|
1​
|x|b|
1​
|
2​
|x|c|
3​
|
3​
|x|d|
5​
|
4​
|y|b|
2​
|
5​
|y|c|
9​
|
6​
|y|d|
15​
|
7​
|z|b|
3​
|
8​
|z|c|
27​
|
9​
|z|d|
45​
|
10​
|t|b|
4​
|
11​
|t|c|
81​
|
12​
|t|d|
135​
|
| | |
=Sheet1!$D$5​
|
 
Lần chỉnh sửa cuối:
Ko tự động nhảy số

Chào bạn,

Mình kéo công thức dọc "cột tổng hợp các mã số bên" thì thấy số ko tự nhảy mà vẫn giữ y nguyên mã số đầu tiên 7010761. Phải click vào các ô đó và enter thì nó mới nhảy ra các mã số tiếp theo.

Mình gửi file đính kèm minh họa, bạn xem và chỉ dẫn cho mình nhé
 

File đính kèm

Chào bạn,

Mình kéo công thức dọc "cột tổng hợp các mã số bên" thì thấy số ko tự nhảy mà vẫn giữ y nguyên mã số đầu tiên 7010761. Phải click vào các ô đó và enter thì nó mới nhảy ra các mã số tiếp theo.

Mình gửi file đính kèm minh họa, bạn xem và chỉ dẫn cho mình nhé
Đấy là excel của bạn đang đặt ở chế độ Calulation Manual.
Bạn vào Excel options\Formulas. Trong mục Calulation options bạn đánh dấu vào Automatic và lưu thay đổi này vào. Các công thức từ đây sẽ tự động tính toán khi có thay đổi.

- Chế độ Calulation Manual: là mọi tính toán trên excel thì không được tự động tính toán luôn mà chỉ được tính toán khi lưu lại, ấn F9, hoặc như bạn là click vào ô kết quả. (chế độ này thường để khi làm việc với những bảng tính dữ liệu nhiều, và làm cho các công thức trong bảng tính đỡ ì ạch khi có nhiều công thức)
- Chế độ Calulation Automatic: thì excel tự động tính toán khi có sự thay đổi dữ liệu
 
Lần chỉnh sửa cuối:
Web KT

Bài viết mới nhất

Back
Top Bottom