<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ppip: 流浪的天空 &#187; excel</title>
	<atom:link href="http://www.happysky.org/archives/tag/excel/feed" rel="self" type="application/rss+xml" />
	<link>http://www.happysky.org</link>
	<description>以群，以独</description>
	<lastBuildDate>Tue, 24 Jan 2012 13:06:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>如何在Excel里面实现折行打印？</title>
		<link>http://www.happysky.org/archives/1012</link>
		<comments>http://www.happysky.org/archives/1012#comments</comments>
		<pubDate>Mon, 25 Aug 2008 13:03:13 +0000</pubDate>
		<dc:creator>ppip</dc:creator>
				<category><![CDATA[Computer/计算机]]></category>
		<category><![CDATA[excel]]></category>

		<guid isPermaLink="false">http://www.happysky.org/?p=1012</guid>
		<description><![CDATA[　　一个小问题：如果我有一个Excel表，列数非常的多（比如说有二十列），以至于在一张纸上横着打不下，想折行打印，也就是把一行打成两行，或者更多行，应该怎么做？（而且这个表非常大，不考虑纯手工操作） ———————— 先想后看 ———————— 　　我的答案，用一个VBA来做一个复制。我对VBA不是很熟，尤其对于VBA复杂的对象体系感到头晕，因此花了一天半的时间来看文档，还翻了一本叫《Excel 2003高级VBA编程宝典》的书，才写出这么几句。VBA基本的语法其实不麻烦，麻烦还在于找到正确的对象和属性。现代语言似乎都是这样？应用层面上体系比算法重要。 Sub SheetToPrint() Application.ScreenUpdating = False ' 停止屏幕刷新 For i = 1 To Worksheets("Sheet1").Range("a1", Range("a65535").End(xlUp)).Count ' 这个是从第一行到最后一行的遍历，VBA的这个写法是挺奇怪的。 Worksheets("Sheet1").Cells(i, 1).Copy Worksheets("Sheet2").Cells((i - 1) * 3 + 1, 1) ' 然后采用单元格对单元格的拷贝，以便于控制。虽然麻烦，其实复制一下就OK了。 ' 省略单元格拷贝操作若干 Next i Application.ScreenUpdating = True End Sub 　　然后是丫头的答案，不用Excel，只需要用排序就搞定了。丫头真是聪明的不得了！步骤如下： 　　1、如果是折两行的话，构造一个包含1, 3, 5, &#8230; , 2n-1, 2, 4, 6, &#8230;, 2n [...]]]></description>
			<content:encoded><![CDATA[<p>　　一个小问题：如果我有一个Excel表，列数非常的多（比如说有二十列），以至于在一张纸上横着打不下，想折行打印，也就是把一行打成两行，或者更多行，应该怎么做？（而且这个表非常大，不考虑纯手工操作）</p>
<p>———————— 先想后看 ————————</p>
<p>　　我的答案，用一个VBA来做一个复制。我对VBA不是很熟，尤其对于VBA复杂的对象体系感到头晕，因此花了一天半的时间来看文档，还翻了一本叫《Excel 2003高级VBA编程宝典》的书，才写出这么几句。VBA基本的语法其实不麻烦，麻烦还在于找到正确的对象和属性。现代语言似乎都是这样？应用层面上体系比算法重要。</p>
<p><code>Sub SheetToPrint()<br />
    Application.ScreenUpdating = False<br />
    ' 停止屏幕刷新<br />
    For i = 1 To Worksheets("Sheet1").Range("a1", Range("a65535").End(xlUp)).Count<br />
    ' 这个是从第一行到最后一行的遍历，VBA的这个写法是挺奇怪的。<br />
        Worksheets("Sheet1").Cells(i, 1).Copy Worksheets("Sheet2").Cells((i - 1) * 3 + 1, 1)<br />
        ' 然后采用单元格对单元格的拷贝，以便于控制。虽然麻烦，其实复制一下就OK了。<br />
        ' 省略单元格拷贝操作若干<br />
    Next i<br />
    Application.ScreenUpdating = True<br />
End Sub</code></p>
<p>　　然后是丫头的答案，不用Excel，只需要用排序就搞定了。丫头真是聪明的不得了！步骤如下：<br />
　　1、如果是折两行的话，构造一个包含1, 3, 5, &#8230; , 2n-1, 2, 4, 6, &#8230;, 2n 的列。 n和要拷贝的行数相同。<br />
　　2、把要折行的两部分前后分别拷贝到这个构造的列的后面。<br />
　　3、按照构造的列排序。<br />
　　两分钟就搞定了！真是令人愉快啊。</p>
<p>PS. 我最近要找一个小型软件/网站的外包，工作量很小，但要求服务商比较稳定，能够提供长期持续的维护和升级。不知道谁有相关方面的信息？我在天津。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.happysky.org/archives/1012/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>从Excel的vlookup()函数说起</title>
		<link>http://www.happysky.org/archives/755</link>
		<comments>http://www.happysky.org/archives/755#comments</comments>
		<pubDate>Tue, 25 Sep 2007 12:46:31 +0000</pubDate>
		<dc:creator>ppip</dc:creator>
				<category><![CDATA[Computer/计算机]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[办公自动化]]></category>
		<category><![CDATA[数据复用]]></category>

		<guid isPermaLink="false">http://www.happysky.org/archives/755</guid>
		<description><![CDATA[1，一个实际问题 　　提问：我有一张很大的表，比如说，全国所有城市和对应的人口数。现在我要把我所研究的10个城市的人口数找出来，我应该怎么做？ 　　最简单的答案：把这张大表打印出来，然后圈出自己要研究的城市的人口，然后再输入到对应的表里面去。　　我找到的答案：将大表放到Excel中，然后使用vlookup()函数，应用关键字索引，将所需要的对应人口数量找出来。具体用法如下：　　=vlookup(关键字, 搜索表, 返回值所在列, 精确搜索开关)　　当然，你也可以用python，或者任何你喜欢的自动化工具来完成这件事情，欢迎提供更高效的方法。 　　这个是我最近两周在做的一件工作，有一组研究对象，我需要从不同的大型数据库中抽取他们的属性值，进行比较研究。幸运的是，这几个数据库都有导出到Excel的功能，不然我真的会疯了，因为有100个研究对象，4个数据库。最后，是vlookup()救了我一命。是的，只一条命令。 2，数据复用 　　英文里面有一个词叫mashup，原意是声轨合成。简单的说，就是将不同来源的数据整合到一起，重新组合，以创造新的价值。很多文章都在讨论这个问题，很多博客都在做这件事情——比如说，他们将自己读过的好的博客，在自己的博客文章中列出来。方军最近在讨论的新闻聚合，还有他最近引用的IBM的新闻，都在说明，数据的整合和重复利用已经成为一个新的增长点，在这一点上，我们能够做更多的工作。　　从根本上来说，博客的流行和RSS（订阅源）有关，而RSS就是一种标准的数据交换手段。虽然他只是一个小小的文件，但是它通过标准化的数据交换，使每一个博客上的数据可以被第三方站点很容易的重新展示和复用，从而增加了信息的价值。　　另外，也曾经看到有些博客讨论在国内还没有流行起来的微格式，比如说，用标准格式展示个人名片，便于在互联网上交流和沟通。这些都是增加信息复用方便程度的手段。　　相对来说，很多的商用数据库还是比较封闭的，除了用自己的查询手段之外，无法与第三方软件对接。这一次我还算幸运，至少他们能够导出Excel。但更多的是一种传统思维的问题，比如说，很多人喜欢用Word做表格，因为打印出来比较漂亮，或者比较容易调整格式——但却因此大大增加了数据复用的难度。（在此我们暂不讨论使用.doc之类封闭格式所带来的负面影响） 3，软件帝国 　　曾经很流行一句话：“用户往往只用到Office中10%的功能而已。”　　我想，那是说Office 97吧，那个时候刚刚整合进去VBA。现在应该是1%了。比如说，Office的多语言和全球部署，已经是2000年出来的功能；后来是2003，然后是2007。MS已经不知道往里面添加了多少新功能了。　　问题是，用户会去探索这些功能么？　　记得似乎是在Linus的Just for fun里面读过，绝大多数人用计算机，学习编程，仅仅是停留在&#8221;hello world&#8221;上面而已。&#8221;hello world&#8221;，然后呢？没有了。　　这一次周末在火车上，和unclewang聊了一路，也是说的这个问题。unclewang用计算机不太久，不过她觉得很新奇——原来计算机除了看电影、上BBS，还能做这么多有趣的事情？　　其实很多时候，我们只需要多想一点：“这件事情用计算机来做，能够在哪些地方更为省力？”　　经验表明，最懒惰的人，往往才是最好的玩家。　　反过来说，对于“勤奋”的普通人，商家要考虑的就是发布粒度的问题了，用可以接收的方式，把好的功能推给用户。微软？太大了，简直没有所谓粒度的问题…… Powered by ScribeFire.]]></description>
			<content:encoded><![CDATA[<p>1，一个实际问题</p>
<p>　　提问：我有一张很大的表，比如说，全国所有城市和对应的人口数。现在我要把我所研究的10个城市的人口数找出来，我应该怎么做？</p>
<p>　　最简单的答案：把这张大表打印出来，然后圈出自己要研究的城市的人口，然后再输入到对应的表里面去。<br />　　我找到的答案：将大表放到Excel中，然后使用vlookup()函数，应用关键字索引，将所需要的对应人口数量找出来。具体用法如下：<br />　　<i>=vlookup(关键字, 搜索表, 返回值所在列, 精确搜索开关)</i><br />　　当然，你也可以用python，或者任何你喜欢的自动化工具来完成这件事情，欢迎提供更高效的方法。</p>
<p>　　这个是我最近两周在做的一件工作，有一组研究对象，我需要从不同的大型数据库中抽取他们的属性值，进行比较研究。幸运的是，这几个数据库都有导出到Excel的功能，不然我真的会疯了，因为有100个研究对象，4个数据库。最后，是vlookup()救了我一命。是的，只一条命令。</p>
<p>2，数据复用</p>
<p>　　英文里面有一个词叫<a href="http://www.answers.com/topic/mashup-web-application-hybrid">mashup</a>，原意是声轨合成。简单的说，就是将不同来源的数据整合到一起，重新组合，以创造新的价值。很多文章都在讨论这个问题，很多博客都在做这件事情——比如说，他们将自己读过的好的博客，在自己的博客文章中列出来。方军最近在讨论的<a href="http://www.mindmeters.com/showlog.asp?log_id=6211">新闻聚合</a>，还有他最近引用的<a href="http://media.mindmeters.com/ar/3307">IBM的新闻</a>，都在说明，数据的整合和重复利用已经成为一个新的增长点，在这一点上，我们能够做更多的工作。<br />　　从根本上来说，博客的流行和RSS（订阅源）有关，而RSS就是一种标准的数据交换手段。虽然他只是一个小小的文件，但是它通过标准化的数据交换，使每一个博客上的数据可以被第三方站点很容易的重新展示和复用，从而增加了信息的价值。<br />　　另外，也曾经看到有些博客讨论在国内还没有流行起来的<a href="http://www.google.com/search?q=%E5%BE%AE%E6%A0%BC%E5%BC%8F&amp;ie=utf-8&amp;oe=utf-8&amp;aq=t&amp;rls=org.mozilla:zh-CN:official&amp;client=firefox">微格式</a>，比如说，用标准格式展示个人名片，便于在互联网上交流和沟通。这些都是增加信息复用方便程度的手段。<br />　　相对来说，很多的商用数据库还是比较封闭的，除了用自己的查询手段之外，无法与第三方软件对接。这一次我还算幸运，至少他们能够导出Excel。但更多的是一种传统思维的问题，比如说，很多人喜欢用Word做表格，因为打印出来比较漂亮，或者比较容易调整格式——但却因此大大增加了数据复用的难度。（在此我们暂不讨论使用.doc之类封闭格式所带来的负面影响）</p>
<p>3，软件帝国</p>
<p>　　曾经很流行一句话：“用户往往只用到Office中10%的功能而已。”<br />　　我想，那是说Office 97吧，那个时候刚刚整合进去VBA。现在应该是1%了。比如说，Office的<a href="http://www.microsoft.com/china/office/2000/feature/articles/language.mspx">多语言和全球部署</a>，已经是2000年出来的功能；后来是2003，然后是2007。MS已经不知道往里面添加了多少新功能了。<br />　　问题是，用户会去探索这些功能么？<br />　　记得似乎是在Linus的<i>Just for fun</i>里面读过，绝大多数人用计算机，学习编程，仅仅是停留在&#8221;hello world&#8221;上面而已。&#8221;hello world&#8221;，然后呢？没有了。<br />　　这一次周末在火车上，和unclewang聊了一路，也是说的这个问题。unclewang用计算机不太久，不过她觉得很新奇——原来计算机除了看电影、上BBS，还能做这么多有趣的事情？<br />　　其实很多时候，我们只需要多想一点：“这件事情用计算机来做，能够在哪些地方更为省力？”<br />　　经验表明，最懒惰的人，往往才是最好的玩家。<br />　　反过来说，对于“勤奋”的普通人，商家要考虑的就是<a href="http://ofblog.com/zhengzhi/151.html">发布粒度</a>的问题了，用可以接收的方式，把好的功能推给用户。微软？太大了，简直没有所谓粒度的问题……</p>
<p>
<p class="poweredbyperformancing">Powered by <a href="http://scribefire.com/">ScribeFire</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.happysky.org/archives/755/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>

