【导语】“ina”通过精心收集,向本站投稿了7篇Excel多表处理,删除其他表中出现过的数据,下面就是小编给大家分享的Excel多表处理,删除其他表中出现过的数据,希望大家喜欢!
- 目录
篇1:Excel2013多表处理,删除其他表中出现过的数据
多表处理,利用公式来计算,公式处该怎么填写呢?这个问题可能难倒了一些新手,下面,我就通过一则实例来告诉大家解决方法,
下面是一份上次已经领取了的名单,公司严格规定:上次领取了的,这次不允许在领。那么如何在本次领取中将上次领取的人删掉呢?具体操作步骤如下:
①在G列建立辅助列,在下面的单元格输入公式: =COUNTIF(上次已领取名单!C:C,本次领取名单!C2) 这里直接点击表的名字即可键入中文,
②回车得到结果,双击填充柄,完成整列的数据。然后单击筛选按钮。
③只选1,将0取消,确定。
④这样就选出了辅助列为1的项,删除这些行。
⑤再次单击筛选按钮,这样辅助列为0的项又出来了。这就是最终的要发物品的人员名单。
公式说明
统计C2单元格的姓名在上次已领取名单工作表中的出现次数。
篇2:删除大表的数据:普通删除语句和游标处理的比较
1. 普通删除的方法:
SQL>delete from robo where wner='TEST';
delete from robo
where
wner='TEST'
性能数据:
-------------
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 1 1 0 0
Execute 1 0.65 0.64 59842 60092 5280 4992
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2 0.65 0.64 59843 60093 5280 4992
Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: 52
Rows Row Source Operation
------- ---------------------------------------------------
0 DELETE ROBO (cr=60092 pr=59842 pw=0 time=642682 us)
4992 TABLE ACCESS FULL ROBO (cr=60092 pr=59840 pw=0 time=485683 us)
只要全表扫描一次,删除效率很快
2. 游标处理(每次提取一条)
declare
v_rowid varchar2(25);
v_sqltext varchar2(200);
cursor c1 is select rowid from robo where wner='TEST';
begin
v_sqltext := 'delete from robo where rowid=:1';
open c1;
loop
fetch c1 into v_rowid;
execute immediate v_sqltext using v_rowid;
exit when c1%notfound;
end loop;
dbms_output.put_line(c1%rowcount||' row deleted.');
close c1;
end;
/
4992 row deleted.
PL/SQL procedure successfully completed.
性能数据:
-------------
delete from robo
where
rowid=:1
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 4993 0.33 0.31 1 4993 5280 4992
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 4994 0.33 0.31 1 4993 5280 4992
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 52 (recursive depth: 1)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
db file sequential read 1 0.00 0.00
********************************************************************************
declare
v_rowid varchar2(25);
v_sqltext varchar2(200);
cursor c1 is select rowid from robo where wner='TEST';
begin
v_sqltext := 'delete from robo where rowid=:1';
open c1;
loop
fetch c1 into v_rowid;
execute immediate v_sqltext using v_rowid;
exit when c1%notfound;
end loop;
dbms_output.put_line(c1%rowcount||' row deleted.');
close c1;
end;
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.26 0.22 0 0 0 1
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2 0.26 0.22 0 0 0 1
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 52
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 1 0.00 0.00
********************************************************************************
SELECT ROWID
FROM
ROBO WHERE WNER='TEST'
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 49930.70 0.73 60078 69059 0 4992
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 4995 0.70 0.73 60078 69059 0 4992
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 52 (recursive depth: 1)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 1 0.00 0.00
SQL*Net message from client 1 3.13 3.13
db file sequential read 1 0.00 0.00
db file scattered read 3784 0.00 0.27
性能数据:
-----------------
delete from robo
where
rowid=:1
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 49930.33 0.31 1 4993 5280 4992
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 4994 0.33 0.31 1 4993 5280 4992
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 52 (recursive depth: 1)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
db file sequential read 1 0.00 0.00
********************************************************************************
全表扫描次数为一次,但游标提取和删除次数等于结果集数目+1次,执行效率比普通删除来得低
篇3:删除大表的数据:普通删除语句和游标处理的比较
1. 普通删除方法
SQL>delete from robo where wner='SYS';
1909760 rows deleted.
Elapsed: 00:01:20.23
性能数据:
-------------
delete from robo
where
wner='SYS'
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 31 87 0 0
Execute 1 17.52 78.34 27888 60322 2123625 1909760
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2 17.53 78.34 27919 60409 2123625 1909760
Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: 52
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
db file sequential read 2998 0.00 0.02
db file scattered read 2318 0.00 0.07
log file switch completion 17 0.97 14.43
log file switch (checkpoint incomplete) 84 0.97 45.38
log buffer space 4 0.19 0.29
SQL*Net message to client 1 0.00 0.00
********************************************************************************
主要耗时是等待在线日志的切换,过程当中产生大量在线日志,执行效率大。
2. 游标处理(每交提取一条)
SQL>declare
v_rowid varchar2(25);
v_sqltext varchar2(200);
cursor c1 is select rowid from robo where wner='SYS';
begin
v_sqltext := 'delete from robo where rowid=:1';
open c1;
loop
fetch c1 into v_rowid;
execute immediate v_sqltext using 2 3 4 5 6 7 8 9 10 v_rowid;
exit when c1%notfound;
end loop;
dbms_output.put_line(c1%rowcount||' row deleted.');
close c1;
end;
/
11 12 13 14 15 16
PL/SQL procedure successfully completed.
Elapsed: 00:04:12.89
性能数据:
-------------
delete from robo
where
rowid=:1
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1909761 112.14 162.39 344 1909874 2124331 1909760
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 1909762 112.14 162.39 344 1909874 2124331 1909760
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 52 (recursive depth: 1)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
db file sequential read 342 0.00 0.00
log file switch completion 19 0.97 12.66
log file switch (checkpoint incomplete) 76 0.97 39.72
********************************************************************************
declare
v_rowid varchar2(25);
v_sqltext varchar2(200);
cursor c1 is select rowid from robo where wner='SYS';
begin
v_sqltext := 'delete from robo where rowid=:1';
open c1;
loop
fetch c1 into v_rowid;
execute immediate v_sqltext using v_rowid;
exit when c1%notfound;
end loop;
dbms_output.put_line(c1%rowcount||' row deleted.');
close c1;
end;
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 77.46 75.43 0 0 0 1
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2 77.46 75.43 0 0 0 1
Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: 52
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 1 0.00 0.00
********************************************************************************
SELECT ROWID
FROM
ROBO WHERE WNER='SYS'
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 1 1 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 1909761 11.68 11.27 59936 2035069 0 1909760
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 1909763 11.69 11.27 59937 2035070 0 1909760
Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: 52 (recursive depth: 1)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 1 0.00 0.00
SQL*Net message from client 1 18.98 18.98
db file sequential read 7 0.00 0.00
db file scattered read 3798 0.00 0.21
游标执行一次,将所有符合条件的ROWID一次性查询出来,但提取次数和删除次数与结果集相当,
比起直接删除效率来得慢.
3. 游标处理(批量提取)
declare
type var_tab is table of varchar2(25) index by pls_integer;
v_rowid var_tab;
v_sqltext varchar2(200);
cursor c1 is select rowid from robo where wner='SYS';
begin
v_sqltext := 'delete from robo where rowid=:1';
open c1;
loop
fetch c1 bulk collect into v_rowid limit 50000;
for i in 1..v_rowid.count loop
execute immediate v_sqltext using v_rowid(i);
end loop;
exit when c1%notfound;
end loop;
dbms_output.put_line(c1%rowcount||' row deleted.');
close c1;
end;
/
性能数据:
------------
delete from robo
where
rowid=:1
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute1909760113.98 154.81 36737 2053459 2121671 1909760
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 1909761 113.98 154.81 36737 2053459 2121671 1909760
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 52 (recursive depth: 1)
Rows Row Source Operation
------- ---------------------------------------------------
1909760 DELETE ROBO (cr=2053679 pr=36737 pw=0 time=79817096 us)
1909760 TABLE ACCESS BY USER ROWID ROBO (cr=2053394 pr=36266 pw=0 time=12527588 us)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
db file sequential read 36735 0.00 0.22
log file switch completion 21 0.97 12.30
log file switch (checkpoint incomplete) 72 0.97 30.14
********************************************************************************
declare
type var_tab is table of varchar2(25) index by pls_integer;
v_rowid var_tab;
v_sqltext varchar2(200);
cursor c1 is select rowid from robo where wner='SYS';
begin
v_sqltext := 'delete from robo where rowid=:1';
open c1;
loop
fetch c1 bulk collect into v_rowid limit 50000;
for i in 1..v_rowid.count loop
execute immediate v_sqltext using v_rowid(i);
end loop;
exit when c1%notfound;
end loop;
dbms_output.put_line(c1%rowcount||' row deleted.');
close c1;
end;
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 49.21 47.42 0 0 0 1
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2 49.21 47.42 0 0 0 1
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 52
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 2 0.00 0.00
SQL*Net message from client 2 0.00 0.00
********************************************************************************
SELECT ROWID
FROM
ROBO WHERE WNER='SYS'
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 392.48 2.42 126813 221222 1 1909760
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 41 2.48 2.42 126813 221222 1 1909760
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 52 (recursive depth: 1)
Rows Row Source Operation
------- ---------------------------------------------------
1909760 TABLE ACCESS FULL ROBO (cr=221222 pr=126813 pw=0 time=1910539 us)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
db file sequential read 306 0.00 0.00
db file scattered read 7945 0.00 0.47
latch: object queue header operation 2 0.00 0.00
db file parallel read 1 0.00 0.00
全表扫描一次,但由于是批量提取数据(每次定为5万条)提高,减少提取次数,比起上一种方法节省了很大一部分时间.删除的次数依然与结果集相当.
三、总结:
普通删除和游标处理两种方法,删除操作的执行次数都相同。
1. 普通删除的方法:
较游标处理的方法相比较,虽然时间快,但记录数不好控制,从头删到尾,加上在线日志的归档,和不能批量提交给回滚段的压力非常大。
2. 游标处理的方法:
结果集的查询次数为一次,但提取次数跟方法相关.
批量提取的带来很大优势,主要体现在节省两个方面的时间: 1) 游标提取次数的减少,结果集提取时间缩短;2)游标执行时间的缩短
游标处理的最大优势是,虽然花费更多的时间,但能通过游标自由控制结果集,如批量删除和提交,减少回滚段的压力。
篇4:删除大表中的字段
Only with the release of Oracle 8i has it been possible to drop a column from a table.
Prior to this it was neccessary to drop the entire table and rebuild it.
Now you can mark a column as unused (logical delete) or delete it completely (physical delete).
从Oracle 8i开始才能对表中的字段进行drop操作,在这之前只能通过DROP整个表,然后重建来完成这个操作:
Logical Delete
On large tables the process of physically removing a column can be very time and resource consuming.
For this reason you may decide to logically delete it.
对于大表字段的删除是十分耗时而且消耗资源的,基于这个原因我们可以通过下面的方法来逻辑删除这个表字段:
[sql]
ALTER TABLE table_name SET UNUSED (column_name);
ALTER TABLE table_name SET UNUSED (column_name1, column_name2);
--下面我来举个例子
这里有某个表的字段如下:
[sql]
SQL>desc user_objects_tmp
Name Type Nullable Default Comments
-------------- ------------- -------- ------- --------
OBJECT_NAME VARCHAR2(128) Y
SUBOBJECT_NAME VARCHAR2(30) Y
OBJECT_ID NUMBER Y
DATA_OBJECT_ID NUMBER Y
OBJECT_TYPE VARCHAR2(19) Y
CREATED DATE Y
LAST_DDL_TIME DATE Y
TIMESTAMP VARCHAR2(19) Y
STATUS VARCHAR2(7) Y
TEMPORARY VARCHAR2(1) Y
GENERATED VARCHAR2(1) Y
SECONDARY VARCHAR2(1) Y
[sql]
--我们先将表中的字段设置为不可用
ALTER TABLE user_objects_tmp SET UNUSED(secondary,GENERATED);--TEMPORARY
ALTER TABLE user_objects_tmp SET UNUSED(TEMPORARY);
SQL>desc user_objects_tmp
Name Type Nullable Default Comments
-------------- ------------- -------- ------- --------
OBJECT_NAME VARCHAR2(128) Y
SUBOBJECT_NAME VARCHAR2(30) Y
OBJECT_ID NUMBER Y
DATA_OBJECT_ID NUMBER Y
OBJECT_TYPE VARCHAR2(19) Y
CREATED DATE Y
LAST_DDL_TIME DATE Y
TIMESTAMP VARCHAR2(19) Y
STATUS VARCHAR2(7) Y
TEMPORARY VARCHAR2(1) Y
--可见这两个字段已经查不到了,在下面的表中我们可以知道 USER_OBJECTS_TMP 表有两个字段被置为UNUSED的
[sql]
SQL>SELECT * FROM DBA_UNUSED_COL_TABS;
OWNER TABLE_NAME COUNT
------------------------------ ------------------------------ ----------
LUBINSU USER_OBJECTS_TMP 2
--要彻底删除这两个字段可以在数据库不繁忙,或者对该表操作较少的时间段进行
[sql]
ALTER TABLE table_name DROP COLUMN column_name;
ALTER TABLE table_name DROP (column_name1, column_name2);
--如下所示:这里添加 checkpoint 250 是为了避免回滚段占用过大
[sql]
ALTER TABLE user_objects_tmp DROP UNUSED COLUMNS CHECKPOINT 250;
Once you user SET UNUSED COLUMN then you cannot get back the column again,
it is treated as a dropped column. Moreover you can add a new column with that name.
Any time you can drop the SET UNUSED COLUMNS with the following command.
ALTER TABLE table_name DROP UNUSED COLUMNS;
--记住,如果在删除过程中终止操作,这个表是无法访问的!!
[sql]
SQL>SELECT * FROM user_objects_tmp a WHERE ROWNUM <= 10;
SELECT * FROM user_objects_tmp a WHERE ROWNUM <= 10
ORA-12986: columns in partially dropped state. Submit ALTER TABLE DROP COLUMNS CONTINUE
--必须删除结束才能访问:
[sql]
ALTER TABLE user_objects_tmp DROP COLUMNS CONTINUE;
--如果从始至终,并未终止操作,但是该操作正在执行,会发现查不到数据:
[sql]
SQL>SELECT * FROM user_objects_tmp a WHERE ROWNUM <= 10;
SQL>SELECT * FROM user_objects_tmp a WHERE ROWNUM <= 10;
SQL>
--另外:表中的字段如果设置为 UNUSED 则无法恢复,但是未DROP之前我们可以重新创建同名字段,
--而如long类型的字段,必须要DROP之后才能创建,每个表中只能有一个long类型的字段
[sql]
SQL>ALTER TABLE user_objects_tmp SET UNUSED(TIMESTAMP);
Table altered
SQL>alter table user_objects_tmp add(TIMESTAMP VARCHAR2(19));
Table altered
SQL>alter table user_objects_tmp add(long_tmp long);
Table altered
SQL>ALTER TABLE user_objects_tmp SET UNUSED(long_tmp);
Table altered
SQL>alter table user_objects_tmp add(long_tmp long);
alter table user_objects_tmp add(long_tmp long)
ORA-01754: a table may contain only one column of type LONG
SQL>alter table drop unused columns;
alter table drop unused columns
ORA-00903: invalid table name
SQL>alter table user_objects_tmp drop unused columns;
Table altered
SQL>alter table user_objects_tmp add(long_tmp long);
Table altered
SQL>alter table user_objects_tmp add(long_tmp2 long);
alter table user_objects_tmp add(long_tmp2 long)
ORA-01754: a table may contain only one column of type LONG
篇5:在Excel中删除重复数据
请仔细阅读并修改相关数据,
1、打开有重复数据的EXCEL
2、Alt+F11 打开宏编辑器
3、左边双击:ThisWorkBook
4、贴入以下代码并运行即可:
Sub 删除重复数据
'删除col列的重复数据
'本例是删除标题为sheet1的EXCEL表中A列(从A2单元格开始)的重复数据
Application.ScreenUpdating = False
'可根据实际情况修改下面三行的结尾值
Dim sheetsCaption As String: sheetsCaption = Sheet1
Dim Col As String: Col = A
Dim StartRow As Integer: StartRow = 2
'以下不需要修改
Dim EndRow As Integer: EndRow = Sheets(sheetsCaption).Range(Col 65536).End(xlUp).Row
Dim Count_1 As Integer: Count_1 = 0
Dim count_2 As Integer: count_2 = 0
Dim i As Integer: i = StartRow
With Sheets(sheetsCaption)
Do
Count_1 = Count_1 + 1
For j = StartRow To i - 1
If .Range(Col i) = .Range(Col j) Then
Count_1 = Count_1 - 1
.Range(Col i).EntireRow.Delete
EndRow = Sheets(sheetsCaption).Range(Col 65536).End(xlUp).Row
i = i - 1
count_2 = count_2 + 1
Exit For
End If
Next
i = i + 1
Loop While i EndRow + 1
End With
MsgBox 共有 Count_1 条不重复的数据
MsgBox 删除 count_2 条重复的数据
Application.ScreenUpdating = True
End Sub
5、按F5键运行即可
篇6:Excel2003/2007如何中删除重复数据、重复行
大家在使用Excel表格总汇大批量数据时,难免会发现一些重复行和重复数据,这时我们就应该将那些重复的数据删除,以免会影响我们的工作,在Excel中删除重复数据和重复行的方法有N多,下面针对Excel2003和Excel2007这两个版本来具体讲讲如何删除这些重复数据,
Excel2003删除重复数据和重复行方法:
第1种情况:重复行的内容完全一致
如下图所示,第2行和第4行的内容完全相同:
操作方法:
选中表中的所有记录(注意,此时应将每列的标题行也选择上,否则筛选完的数据表中将不再包含有该标题行),执行“数据”菜单→“筛选→高级筛选”命令;在弹出的“高级筛选”对话框中选择“将筛选结果复制到其他位置”一项,并点击“复制到”选择框后面的范围按钮来选择一块区域以存放筛选后的数据(注意:此处千万不要与原数据所处的单元格相重合,否则数据表将会混乱),最后,勾选“选择不重复的记录”复选框后,点击“确定”按钮即可。
详细操作如下动画所示:
第2种情况:行与行中,某列内容重复,其他列内容可能不一致
此时我们希望以某列为条件,找出重复的内容,把其所在的整行删除,
如下图所示:
我们只需要A列(即:姓名列)没有重复。
操作方法:
1、添加新列E,输入数字等差序列(如1、2、3……),拖动手动柄就可以。
2、将全表按A列排序。
3、在F2输入公式: =IF(A2=A1,“重复”,“”) 拖动手动柄,将公式向下复制到相应行。
4、全选表,“数据→自动筛选”,选定F列“(空白)”,这样就筛选出没有重复的数据了。
5、复制筛选后的表,把表黏贴到另外的工作表中。
6、将全表按E列排序,恢复数据原始顺序,然后把E列删除。
详细操作如下动画所示:
Excel2007删除重复行和重复数据方法:
如今在Excel2007里面删除重复数据就是件非常简单的事情了,直接有“删除重复项”功能。
选择“数据”选项卡,再点击“排序与筛选”区中的“删除重复项”按钮即可。
篇7:如何永久删除硬盘中的数据
根据纽约时报的一项基础隐私调查表明,人们在硬盘中数据的清除上存在着普遍的错误认识,绝大多数的人们并不知道仅仅删除文件是不够的,因为这样做并没有真正的将数据从计算机上清除干净。调查还发现,事实上仅有33%的二手硬盘将数据清除干净。在你想将硬盘丢弃或卖掉之前最好先确定硬盘是否还存有任何有关隐私的个人数据。如果你想通过格式化或数据粉碎软件彻底的清除数据,那么这篇文章可以给你提供帮助。
当你删除存储在计算机上的文件时,这些数据并没有真正移除,它们的信息被保存在操作系统可以查询到的目录中。当你删除文件时,实际上仅仅是将文件从文件夹中移走,并且将这部分区域标识为可写入新数据。因此,这个区域在被新的数据覆盖之前,原始数据都是可以被还原的。这就是所有数据还原软件的工作原理,根据目录还原那些已经删除的数据文件。完全清除数据的唯一方法就是覆盖它。你可以通过格式化硬盘或是可以在硬盘中填充随机数字的数据擦除软件来实现这个目标。
两种主要的数据覆盖方法。
一、The Gutmann Method
它的理论依据是1996年奥克兰大学计算机科学学院皮特.古特曼教授在第六届USENIX安全会议上所作的论文-《安全删除磁固存储器上的数据》。这是迄今为止最安全的数据删除方法------覆盖数据35次,使得任何还原数据的企图都是徒劳的。遗憾的是这种方法会耗费相当长的时间。
二、US DoD 5220-22.M
这种方法是美国国防部《清理和消毒标准》中的一部分,这种方法仅仅需要覆盖数据几次,安全性没有古特曼方法高,但耗费的时间却相对较少,
当然这覆盖数据的几次都是有讲究的,比如使用补码及随机数字来覆盖数据等。
当然,如果有人告诉您覆盖数据所需的最多次数,那么他一定在误导您。没人知道要多少次才够。如果您根本不想冒险,那么需要确保从未将任何重要内容加密地写入磁盘,并将它们直接解密到锁定的内存。别无选择。
Windows下如何彻底的清除数据
Eraser是一款免费开源的数据清除软件。操作平台,从DOS到 Windows 2003,支持单个文件,文件夹及整个硬盘的数据清除。这个软件提供了三种方式来覆盖数据,包括上面介绍的两种,还有一种叫“伪随机数据方式”。这种方法仅仅用在未使用过的区域和压缩驱动器上。
整个驱动器的数据清除
DBAN(Darik's Boot and Nuke)是另外一款免费开源的软件,它可以运行在几乎任何机器上,它可以清除你整个计算机上每一个硬盘上的数据,因此使用它要加倍小心。下载后刻录到光盘,重启计算机,输入“autonuke”。
终极永久删除方法
1、将硬盘从计算机上拆卸下来
2、拧开螺丝,打开外壳,暴露磁盘
3、将它们敲成粉碎
你的数据安全了
感谢Airate的关注,他所说的工具Secure Data Disposal联想的 有下载,下载链接,但是没有说明其安全性高低,不过IBM出的软件我还是比较放心的。
同样感谢ihome提出的新方法,他提出的方法比文章介绍的方法更完美:
真正确保安全删除的方法
1,将磁盘扔到炼钢炉中融化
2,用火箭发射到太阳
3,用航天器将其扔进黑洞
★ 出现的反义词
Excel多表处理,删除其他表中出现过的数据(整理7篇)




