基本上我在数据行之后有行
事件|场地|日期|一些|其他|列|这里|
在同一地点和日期发生了很多重叠事件。
所以我想通过匹配活动,地点,日期来结束唯一的活动。
这有可能在excel中,如何处理这个问题? VBA?还是我不知道的一些选择?
谢谢。更新:
我刚刚访问数据 - >删除重复项
答案 0 :(得分:1)
使用TxtSushi,您可以直接在CSV文件上运行Jerry的选择。所以:
tssql -table event_table events.csv \ 'select event, venue, date from event_table group by event, venue, date'
我将它宣传为* NIX工具,但它也适用于Windows。
答案 1 :(得分:0)
最简单的方法可能是将数据导入数据库。此时,SQL查询(例如)将类似于:
select event, venue, date
from event_table
group by event, venue, date
无论您将其视为电子表格,Excel 都不是一个优秀的数据库管理器。
答案 2 :(得分:0)
如果您使用的是* nix,则可以使用awk
awk -F"|" '{a[$1$2$3]=$0}END{ for(i in a) print i,a[i]}' csv
答案 3 :(得分:0)
到目前为止很棒的答案。
学习脚本语言 任何脚本语言。
在Python中执行所需操作的一种方法:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import csv
def main():
FIN = 'in.csv'
with open(FIN, 'r') as fin:
col_name_reader = csv.reader(fin)
# assuming the first line of your csv file has column names
col_names = col_name_reader.next()
csv_dict_reader = csv.DictReader(fin, col_names)
uniq_events = set(tuple((row['event'], row['venue'], row['date'])
for row in csv_dict_reader))
print uniq_events
if __name__ == "__main__":
main()
使用填充如下的测试文件:
event,venue,date an_event,a_venue,2010-01-01 an_event,a_venue,2010-01-01 an_event,a_venue,2010-01-01 another_event,another_venue,2010-01-02 another_event,another_venue,2010-01-02
我们得到:
set([('an_event', 'a_venue', '2010-01-01'),
('another_event', 'another_venue', '2010-01-02')])
祝你好运!