<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>google-spreadsheets on S Anand</title>
    <link>https://www.s-anand.net/blog/tag/google-spreadsheets/</link>
    <description>Recent content in google-spreadsheets on S Anand</description>
    <generator>Hugo -- 0.164.0</generator>
    <language>en-us</language>
    <lastBuildDate>Fri, 12 Mar 2010 09:54:26 +0000</lastBuildDate>
    <atom:link href="https://www.s-anand.net/blog/tag/google-spreadsheets/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>ImportHtml doesn’t auto-refresh</title>
      <link>https://www.s-anand.net/blog/importhtml-doesnt-auto-refresh/</link>
      <pubDate>Fri, 12 Mar 2010 09:54:26 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/importhtml-doesnt-auto-refresh/</guid>
      <description>&lt;p&gt;A cool thing about &lt;a href=&#34;http://docs.google.com/&#34;&gt;Google Spreadsheets&lt;/a&gt; is that you can scrape websites using &lt;a href=&#34;http://docs.google.com/support/bin/answer.py?hl=en&amp;amp;answer=75507&#34;&gt;external data functions&lt;/a&gt; like importHtml. It’s really easy to use. The formula:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-excel&#34; data-lang=&#34;excel&#34;&gt;=importHtml(&amp;#34;http://www.imdb.com/chart/top&amp;#34;, &amp;#34;table&amp;#34;, 1)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;imports the &lt;a href=&#34;http://www.imdb.com/chart/top&#34;&gt;Internet Movie Database top 250&lt;/a&gt; table on to Google Spreadsheets.&lt;/p&gt;
&lt;p&gt;Since you can &lt;a href=&#34;http://www.mmmeeja.com/blog/web-development/google-spreadsheets-rss.html&#34;&gt;publish these as RSS feeds&lt;/a&gt;, it ought to, in theory, be a great way of generating RSS feeds out of arbitrary content.&lt;/p&gt;
&lt;p&gt;There’s just one problem: &lt;a href=&#34;http://www.google.com/support/forum/p/Google%20Docs/thread?tid=46676d88b38e0c50&amp;amp;hl=en&#34;&gt;it doesn’t auto update&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;There are claims that it does &lt;a href=&#34;http://www.google.com/support/forum/p/Google%20Docs/thread?tid=061199840171feea&amp;amp;hl=en&#34;&gt;every&lt;/a&gt; &lt;a href=&#34;https://docs.google.com/View?docID=dhrr6ms2_523cs7274fv&amp;amp;pageview=1&amp;amp;hgd=1&#34;&gt;hour&lt;/a&gt;. Maybe it does &lt;strong&gt;when the sheet is open&lt;/strong&gt;. I don’t know. But it definitely does not when the sheet is closed. I wrote a simple script that logs the time at which the script was accessed, and prints the log every time it is accessed.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;ch&#34;&gt;#!/usr/bin/env python&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;datetime&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;os.path&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;Content-Type: text/plain; charset=utf-8&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;logfile&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;timenow.log&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;try&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;timelog&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;open&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;logfile&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;readlines&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;except&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;timelog&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;timelog&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;append&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;datetime&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;datetime&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;now&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;())&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;&lt;/span&gt;&lt;span class=&#34;se&#34;&gt;\n&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;open&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;logfile&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;w&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;writelines&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;timelog&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;join&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;timelog&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Then I importHtml’ed it into Google spreadsheets, and left it on for the night. Result: absolutely no hits when the document is closed.&lt;/p&gt;
&lt;p&gt;Pity. Guess &lt;a href=&#34;http://developer.yahoo.com/yql/&#34;&gt;YQL&lt;/a&gt; is still the best option.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;comments&#34;&gt;Comments&lt;/h2&gt;
&lt;!-- wp-comments-start --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;http://www.coachingthebeginningpitcher.com&#34;&gt;pitching manual&lt;/a&gt;&lt;/strong&gt; &lt;em&gt;24 Jun 2010 5:29 pm&lt;/em&gt;:
I&amp;rsquo;ve just started using google spreadsheets. Really impressed with how user friendly they are. I went ine expecting the worse and was very suprised.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;http://www.todosquepaso.com&#34;&gt;Barry&lt;/a&gt;&lt;/strong&gt; &lt;em&gt;7 Jun 2012 6:27 pm&lt;/em&gt;:
I am running into the same thing. Can&amp;rsquo;t get importHtml() to refresh when google spreadsheet is closed. Was thinking I could hammer force a cell value to equal the IH() function via a script but that seems awfully inelegant.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;alois&lt;/strong&gt; &lt;em&gt;6 Sep 2012 4:20 pm&lt;/em&gt;:
so what happens when you add a parameter to the url with a value coming from a field which is set to show the current time - minute or hour ?&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- wp-comments-end --&gt;
</description>
    </item>
    <item>
      <title>Split text</title>
      <link>https://www.s-anand.net/blog/split-text/</link>
      <pubDate>Sat, 06 Sep 2008 12:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/split-text/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;This is a series on what &lt;a href=&#34;http://docs.google.com/&#34;&gt;Google Spreadsheets&lt;/a&gt; can do that Excel can&amp;rsquo;t.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;http://documents.google.com/support/spreadsheets/bin/answer.py?answer=105612&#34;&gt;SPLIT(string, delimiter)&lt;/a&gt; splits a string using a delimiter. So if you have &amp;ldquo;one,two,three,four&amp;rdquo; in cell A1, you could split that into 4 cells using =SPLIT(A1,&amp;quot;,&amp;quot;)&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.s-anand.net/blog/assets/flickr-31_2830261663_o-png.webp&#34;&gt;&lt;img alt=&#34;3.1&#34; loading=&#34;lazy&#34; src=&#34;https://www.s-anand.net/blog/assets/flickr-31_2830261663_o-png.webp&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s similar to Data &amp;gt; Text to Columns, except that if the original data changed, Text to Columns does not revise the output. SPLIT can give you &lt;strong&gt;dynamic text-to-columns&lt;/strong&gt;. This is pretty useful when processing text data, in three ways:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;You retain the original data&lt;/li&gt;
&lt;li&gt;You don&amp;rsquo;t need to re-apply Text to Columns. Extending the formula will work (and that&amp;rsquo;s quicker)&lt;/li&gt;
&lt;li&gt;It&amp;rsquo;s dynamic. If the data changes, your split changes&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Since SPLIT returns an array, you can do a bunch of useful things with it.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;=COUNTA(SPLIT(A1,&amp;quot; &amp;quot;))&lt;/code&gt; gives you the number of words in a string&lt;/p&gt;
&lt;p&gt;&lt;code&gt;=SUM(SPLIT(A1,&amp;quot;,&amp;quot;))&lt;/code&gt; sums up a comma separated list. &amp;ldquo;1,2,3,4&amp;rdquo; is added up to 10.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;=ARRAYFORMULA(SUM(LEN(SPLIT(A1,&amp;quot;,&amp;quot;))))&lt;/code&gt; sums up the word lengths. So &amp;ldquo;one,two,three,four&amp;rdquo; splits into 4 words of length 3,3,5,4 each, which adds up to 15.&lt;/p&gt;
&lt;p&gt;\&lt;/p&gt;
&lt;p&gt;The ability to join and split also lets you &lt;strong&gt;sort by multiple keys&lt;/strong&gt;. For example, say you had income by country and product. You want to show it sorted by Country &amp;amp; Product. You also want to show it by Product &amp;amp; Country.&lt;/p&gt;
&lt;p&gt;So first take the data sorted by Country and Product.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.s-anand.net/blog/assets/flickr-32_2830261665_o-png.webp&#34;&gt;&lt;img alt=&#34;3.2&#34; loading=&#34;lazy&#34; src=&#34;https://www.s-anand.net/blog/assets/flickr-32_2830261665_o-png.webp&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Now, in column E, create a key that&amp;rsquo;s sorted by Product and then by Income. Type&lt;/p&gt;
&lt;p&gt;&lt;code&gt;=SORT(ARRAYFORMULA(B2:B10&amp;amp;&amp;quot;:&amp;quot;&amp;amp;A2:A10&amp;amp;&amp;quot;:&amp;quot;&amp;amp;C2:C10))&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&amp;hellip; in cell E2. That will give you all the data in one cell, sorted by Product and then by Country. Now, just split the data, as shown here.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.s-anand.net/blog/assets/flickr-33_2830261669_o-png.webp&#34;&gt;&lt;img alt=&#34;3.3&#34; loading=&#34;lazy&#34; src=&#34;https://www.s-anand.net/blog/assets/flickr-33_2830261669_o-png.webp&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;\&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: You could have done the whole thing using one formula:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;=ARRAYFORMULA(SPLIT(SORT(ARRAYFORMULA(B2:B10&amp;amp;&amp;quot;:&amp;quot;&amp;amp;A2:A10&amp;amp;&amp;quot;:&amp;quot;&amp;amp;C2:C10)),&amp;quot;:&amp;quot;))&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;But for some reason, this doesn&amp;rsquo;t seem to show the first row properly. No idea why.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Can I do that in Excel?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Well, not really. You&amp;rsquo;re best off creating a user-defined function to duplicate the SPLIT function.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;comments&#34;&gt;Comments&lt;/h2&gt;
&lt;!-- wp-comments-start --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Prakash H Ayer&lt;/strong&gt; &lt;em&gt;9 Sep 2008 8:25 am&lt;/em&gt;:
Thanks Anand. This is very useful.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Prakash Ayer&lt;/strong&gt; &lt;em&gt;9 Sep 2008 8:25 am&lt;/em&gt;:
Thanks Anand. This is very useful.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sridhar&lt;/strong&gt; &lt;em&gt;17 Sep 2008 10:19 am&lt;/em&gt;:
Cant &amp;ldquo;mid&amp;rdquo; with &amp;ldquo;find&amp;rdquo; and &amp;ldquo;len&amp;rdquo; replace &amp;ldquo;split&amp;rdquo;? Even though its a round about way i think it can still do it.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sridhar&lt;/strong&gt; &lt;em&gt;17 Sep 2008 11:11 am&lt;/em&gt;:
@Sridhar: Yes, this can be done, within reason. Chandoo has a post about &lt;a href=&#34;http://chandoo.org/wp/2008/09/08/split-text-excel-functions/&#34;&gt;Splitting text in excel using formulas&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;St&lt;/strong&gt; &lt;em&gt;27 Sep 2008 6:54 am&lt;/em&gt;:
It can be done in excel - we used excel to split up a sentence field into constituent words - but it is a bit roundabout - search for spaces or commas, count, split by count of space/comma&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- wp-comments-end --&gt;
</description>
    </item>
    <item>
      <title>Dynamically eliminate duplicates</title>
      <link>https://www.s-anand.net/blog/dynamically-eliminate-duplicates/</link>
      <pubDate>Thu, 04 Sep 2008 12:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/dynamically-eliminate-duplicates/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;This is a series on what &lt;a href=&#34;http://docs.google.com/&#34;&gt;Google Spreadsheets&lt;/a&gt; can do that Excel can&amp;rsquo;t&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;To get a list of unique values from a list, use the &lt;a href=&#34;http://documents.google.com/support/spreadsheets/bin/answer.py?hl=en-uk&amp;amp;answer=92022&#34;&gt;UNIQUE function&lt;/a&gt; on &lt;a href=&#34;http://docs.google.com/&#34;&gt;Google Spreadsheets&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For example, if you have a list of browsers in column A, type &lt;code&gt;=UNIQUE(A1:A17)&lt;/code&gt; at cell B1 to get a unique list of browsers. This is a dynamic list. If you change the list of browsers, the unique list gets updated automatically.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.s-anand.net/blog/assets/flickr-11_2825546538_o-png.webp&#34;&gt;&lt;img alt=&#34;1.1&#34; loading=&#34;lazy&#34; src=&#34;https://www.s-anand.net/blog/assets/flickr-11_2825546538_o-png.webp&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You can use UNIQUE to &lt;strong&gt;create a dynamic pivot table&lt;/strong&gt;. Quite often, you end up creating a pivot table simply to summarise by one column. The main purpose the pivot table serves is in getting a list of unique values on that column. Plus, it&amp;rsquo;s a bit heavy on the UI. And every time the data changes, you need to refresh the pivot. But with the UNIQUE function, you can get a dynamic list of unique values, and you can use the COUNTIF and SUMIF function next to each value. Here is an example showing the frequency table of the browsers shown earlier. Column C does a COUNTIF of the unique values on the original list.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.s-anand.net/blog/assets/flickr-12_2825546532_o-png.webp&#34;&gt;&lt;img alt=&#34;1.2&#34; loading=&#34;lazy&#34; src=&#34;https://www.s-anand.net/blog/assets/flickr-12_2825546532_o-png.webp&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You can also use UNIQUE as the input to another formula:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;=COUNT(UNIQUE(LIST))&lt;/code&gt; counts the number of unique values&lt;/p&gt;
&lt;p&gt;&lt;code&gt;=COUNT(LIST)-COUNT(UNIQUE(LIST))&lt;/code&gt; gives the number of duplicates&lt;/p&gt;
&lt;p&gt;&lt;code&gt;=INDEX(UNIQUE(LIST),3)&lt;/code&gt; gives you the third unique value&lt;/p&gt;
&lt;p&gt;&lt;code&gt;=LARGE(UNIQUE(LIST),3)&lt;/code&gt; gives you the third largest unique value&lt;/p&gt;
&lt;p&gt;&amp;hellip; and so on.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Can I do that in Excel?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You can, but not easily. There are two approaches, but each has its limitations.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A. Use Advanced Filters: easy but static&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create an advanced filter on column A (Alt-D-F-A)&lt;/li&gt;
&lt;li&gt;Select Copy to another location&lt;/li&gt;
&lt;li&gt;Click in the Copy to box, and then click the cell B1&lt;/li&gt;
&lt;li&gt;Select Unique records only&lt;/li&gt;
&lt;li&gt;Click OK&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a href=&#34;https://www.s-anand.net/blog/assets/flickr-13_2825546548_o-png.webp&#34;&gt;&lt;img alt=&#34;1.3&#34; loading=&#34;lazy&#34; src=&#34;https://www.s-anand.net/blog/assets/flickr-13_2825546548_o-png.webp&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;But the list of unique values that you get here is static. If you changed one of the values, the list of unique values does not change.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;B. Use a complex formulae that are dynamic&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;First, blank out the duplicates by typing this formula:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;=IF(COUNTIF(A$1:A1,A1)=1,A1,&amp;quot;&amp;quot;)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;adjacent to the first cell (into B1), and dragging it all the way down (to B17).&lt;/p&gt;
&lt;p&gt;Now, create a named range (Alt-I-N-D) for these cells (B1:B17) called WithBlanks and another named range called NoBlanks for the cells one column to the right (C1:C17).&lt;/p&gt;
&lt;p&gt;On the first cell of NoBlanks (C1), type this &lt;a href=&#34;http://www.cpearson.com/&#34;&gt;formula&lt;/a&gt;:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-excel&#34; data-lang=&#34;excel&#34;&gt;=IF(ROW()-ROW(NoBlanks)+1&amp;gt;ROWS(WithBlanks)-COUNTBLANK(WithBlanks),&amp;#34;&amp;#34;,
    INDIRECT(ADDRESS(SMALL((IF(WithBlanks&amp;lt;&amp;gt;&amp;#34;&amp;#34;,ROW(WithBlanks),ROW()+
    ROWS(WithBlanks))),ROW()-ROW(NoBlanks)+1),COLUMN(WithBlanks),4)))
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Press Ctrl-Shift-Enter rather than Enter, because it&amp;rsquo;s an array formula. Now drag this all the way down (to C17).&lt;/p&gt;
&lt;p&gt;The list in column C is dynamic. If you change a cell in column A, column C is updated. But the formula can only handle one column. Google Spreadsheets&amp;rsquo; UNIQUE function works with any number of columns. If you had data in the range A1:D100 and wanted the unique rows, UNIQUE(A1:D100) gets that for you.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.s-anand.net/blog/assets/flickr-14_2825546554_o-png.webp&#34;&gt;&lt;img alt=&#34;1.4&#34; loading=&#34;lazy&#34; src=&#34;https://www.s-anand.net/blog/assets/flickr-14_2825546554_o-png.webp&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: I&amp;rsquo;m staying away from &lt;a href=&#34;https://www.s-anand.net/blog/user-defined-functions-in-excel/&#34;&gt;user defined functions&lt;/a&gt;. You could, of course, create a UNIQUE function in Excel using Visual Basic. In fact, you should!&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;comments&#34;&gt;Comments&lt;/h2&gt;
&lt;!-- wp-comments-start --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ken J&lt;/strong&gt; &lt;em&gt;19 Sep 2008 1:10 pm&lt;/em&gt;:
Great entry. I love your site. It is perfect for advanced users.&lt;br&gt;
&lt;br&gt;
Let&amp;rsquo;s hope Google&amp;rsquo;s pressure will force some innovation at excel.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;http://www.isheet.com&#34;&gt;hk&lt;/a&gt;&lt;/strong&gt; &lt;em&gt;21 May 2009 3:30 am&lt;/em&gt;:
What about Data/Consolidate from menu?&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- wp-comments-end --&gt;
</description>
    </item>
    <item>
      <title>Web lookup using Google Spreadsheets</title>
      <link>https://www.s-anand.net/blog/web-lookup-using-google-spreadsheets/</link>
      <pubDate>Mon, 31 Dec 2007 12:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/web-lookup-using-google-spreadsheets/</guid>
      <description>&lt;p&gt;I&amp;rsquo;d written earlier about &lt;a href=&#34;https://www.s-anand.net/blog/web-lookup-using-excel/&#34;&gt;Web lookup in Excel&lt;/a&gt;. I showed &lt;a href=&#34;https://www.s-anand.net/blog/rss-feeds-in-excel/&#34;&gt;an example&lt;/a&gt; how you could create a movie wishlist that showed the links to the torrents from &lt;a href=&#34;http://www.mininova.org/&#34;&gt;Mininova&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;You can do that even easier on &lt;a href=&#34;http://spreadsheets.google.com/&#34;&gt;Google Spreadsheets&lt;/a&gt;. It has 4 functions that let you &lt;a href=&#34;http://documents.google.com/support/spreadsheets/bin/answer.py?hl=en&amp;amp;answer=75507&#34;&gt;import external data&lt;/a&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;=importData&lt;/strong&gt;(&amp;ldquo;URL of CSV or TSV file&amp;rdquo;).&lt;br&gt;
Imports a comma-separated or tab-separated file.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;=importFeed&lt;/strong&gt;(URL).vLets you import any Atom or RSS feed.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;=importHtml&lt;/strong&gt;(URL, &amp;ldquo;list&amp;rdquo; | &amp;ldquo;table&amp;rdquo;, index).&lt;br&gt;
Imports a table or list from any web page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;=importXML&lt;/strong&gt;(&amp;ldquo;URL&amp;rdquo;,&amp;ldquo;query&amp;rdquo;).&lt;br&gt;
Imports anything from any web page using &lt;a href=&#34;http://www.w3.org/TR/1999/REC-xpath-19991116&#34;&gt;XPath&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Firstly, you can see straight off why it&amp;rsquo;s easy to view RSS feeds in Google Spreadsheets. Just use the &lt;code&gt;importFeed&lt;/code&gt; function straight away. So, for example, if I wanted to track all &lt;a href=&#34;http://base.google.com/base/s2?q=ipod&amp;amp;btnG=Search+Base&amp;amp;authorid=81898&amp;amp;a_n0=products&amp;amp;a_y0=9&amp;amp;nd=1&amp;amp;showrefine=1&amp;amp;hl=en&amp;amp;gl=US#ajax%3Fa_n0%3Dproducts%26a_y0%3D9%26start%3D0%26q%3Dipod%26scoring%3D%26%26a_n1%3Dproduct%2Btype%26a_y1%3D1%26a_o1%3D0%26a_v1%3Dmp3%2Bplayers%26a_n2%3Dprice%26a_y2%3D8%26a_o2%3D1%26a_t2%3D200%26a_u2%3Dusd%26a_n3%3Dbrand%26a_y3%3D1%26a_o3%3D5%26a_n4%3Dcondition%26a_y4%3D1%26a_o4%3D6%26a_n5%3Dgigabytes%26a_y5%3D2%26a_o5%3D0%26a_v5%3D8%26a_n6%3Dmpn%26a_y6%3D1%26a_o6%3D5%26%26%26%26lnk%3Drefine-2%26nd%3D1%26hl%3Den%26gl%3DUS%26view%3DList&#34;&gt;8GB iPods on Google Base&lt;/a&gt;, I can import its &lt;a href=&#34;http://base.google.com/base/search?a_n0=products&amp;amp;a_y0=9&amp;amp;start=0&amp;amp;q=ipod&amp;amp;scoring=&amp;amp;&amp;amp;a_n1=product+type&amp;amp;a_y1=1&amp;amp;a_o1=0&amp;amp;a_v1=mp3+players&amp;amp;a_n2=price&amp;amp;a_y2=8&amp;amp;a_o2=1&amp;amp;a_t2=200&amp;amp;a_u2=usd&amp;amp;a_n3=brand&amp;amp;a_y3=1&amp;amp;a_o3=5&amp;amp;a_n4=condition&amp;amp;a_y4=1&amp;amp;a_o4=6&amp;amp;a_n5=gigabytes&amp;amp;a_y5=2&amp;amp;a_o5=0&amp;amp;a_v5=8&amp;amp;a_n6=mpn&amp;amp;a_y6=1&amp;amp;a_o6=5&amp;amp;&amp;amp;&amp;amp;&amp;amp;lnk=refine-2&amp;amp;nd=1&amp;amp;hl=en&amp;amp;gl=US&amp;amp;view=List&amp;amp;output=rss&amp;amp;ie=utf8&amp;amp;oe=utf8&#34;&gt;feed&lt;/a&gt; in Google Spreadsheets.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.s-anand.net/blog/assets/flickr-google-spreadsheets-importfeed_2152015648_o-png.webp&#34; title=&#34;Google Spreadsheets ImportFeed&#34;&gt;&lt;img alt=&#34;Google Spreadsheets ImportFeed&#34; loading=&#34;lazy&#34; src=&#34;https://www.s-anand.net/blog/assets/flickr-google-spreadsheets-importfeed_2152015648_o-png.webp&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This automatically creates a list of the latest 8GB iPods.&lt;/p&gt;
&lt;p&gt;Incidentally, the &amp;ldquo;Price&amp;rdquo; column doesn&amp;rsquo;t appear automatically. It&amp;rsquo;s a part of the description. But it&amp;rsquo;s quite easy to get the price using the standard Excel functions. Let&amp;rsquo;s say the description is in cell C1. &lt;code&gt;=MID(C1, FIND(&amp;quot;Price&amp;quot;, C1), 20)&lt;/code&gt; gets you the 20 characters starting from &amp;ldquo;Price&amp;rdquo;. Then you can sort and play around as usual.&lt;/p&gt;
&lt;p&gt;The other powerful thing about Google Spreadsheets is the &lt;a href=&#34;http://documents.google.com/support/spreadsheets/bin/answer.py?hl=en&amp;amp;answer=71291&#34;&gt;CONTINUE function&lt;/a&gt;. The &lt;code&gt;importFeed&lt;/code&gt; function creates a multi-dimensional array. You can extract any cell from the array (for example, row 3, column 2 from cell C1) using &lt;code&gt;CONTINUE(C1, 3, 2)&lt;/code&gt;. So you can just pick up the title and description, or only alternate rows, or put all rows and columns in a single column &amp;ndash; whatever.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.s-anand.net/blog/assets/flickr-google-spreadsheets-continue_2151240703_o-png.webp&#34; title=&#34;Google Spreadsheets CONTINUE&#34;&gt;&lt;img alt=&#34;Google Spreadsheets CONTINUE&#34; loading=&#34;lazy&#34; src=&#34;https://www.s-anand.net/blog/assets/flickr-google-spreadsheets-continue_2151240703_o-png.webp&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The most versatile of the import functions is the &lt;code&gt;importXML&lt;/code&gt; function. It lets you import any URL (including an RSS feed), filtering only the &lt;a href=&#34;http://www.w3.org/TR/1999/REC-xpath-19991116&#34;&gt;XPath&lt;/a&gt; you need. As I mentioned earlier, you can &lt;a href=&#34;https://www.s-anand.net/blog/scraping-rss-feeds-using-xpath/&#34;&gt;scrape any site using XPath&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For example, &lt;code&gt;=importXML(&amp;quot;http://www.imdb.com/chart/top&amp;quot;, &amp;quot;//table//table//table//a&amp;quot;)&lt;/code&gt; imports the top 250 movies from the &lt;a href=&#34;http://www.imdb.com/chart/top&#34;&gt;IMDb Top 250&lt;/a&gt;. the second parameter says, get all links (a) inside a table inside a table inside a table. This populates a list with the entire Top 250.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.s-anand.net/blog/assets/flickr-google-spreadsheets---importxml_2152056088_o-png.webp&#34; title=&#34;Google Spreadsheets - ImportXML&#34;&gt;&lt;img alt=&#34;Google Spreadsheets - ImportXML&#34; loading=&#34;lazy&#34; src=&#34;https://www.s-anand.net/blog/assets/flickr-google-spreadsheets---importxml_2152056088_o-png.webp&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Now, against each of these, we could get a feed of Mininova&amp;rsquo;s torrents. Mininova&amp;rsquo;s RSS URL is &lt;code&gt;http://www.mininova.org/rss/search_string&lt;/code&gt;. So, in cell B1, I can get a torrent for the cell A1 (The Godfather) using the &lt;code&gt;importFeed&lt;/code&gt; function. (Note: you need to replace spaces with a + symbol. These functions don&amp;rsquo;t like invalid URLs.).&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.s-anand.net/blog/assets/flickr-google-spreadsheets---import-mininova-feed_2151264663_o-png.webp&#34; title=&#34;Google Spreadsheets - Import Mininova Feed&#34;&gt;&lt;img alt=&#34;Google Spreadsheets - Import Mininova Feed&#34; loading=&#34;lazy&#34; src=&#34;https://www.s-anand.net/blog/assets/flickr-google-spreadsheets---import-mininova-feed_2151264663_o-png.webp&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Just copy this formula down to get a torrent against each of the IMDb Top 250 movies!&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://spreadsheets.google.com/ccc?key=poz40xh4E1uen8Pedf01NEQ&amp;amp;hl=en&#34;&gt;Check out the sheet I&amp;rsquo;ve created&lt;/a&gt;. (You need a Google account to see the sheet. If you don&amp;rsquo;t want have one, you can &lt;a href=&#34;http://spreadsheets.google.com/pub?key=poz40xh4E1uen8Pedf01NEQ&#34;&gt;view the sheet&lt;/a&gt;.)&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Now, that&amp;rsquo;s still not the best of it. You can extract this file as an RSS feed! Google lets you publish your sheets as HTML, PDF, Text, XLS, etc. and RSS and Atom are included as well. Here&amp;rsquo;s the &lt;a href=&#34;http://spreadsheets.google.com/feeds/list/o16705544397998276259.1246737882357952679/od7/public/basic?alt=rss&#34;&gt;RSS feed for my sheet above&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Think about it. We now have an application that sucks in data from a web page, does a web-based vlookup on another service, and returns the results as an RSS feed!&lt;/p&gt;
&lt;p&gt;There are only two catches to this. The first is that Google has restricted us to 50 import functions per sheet. So you can&amp;rsquo;t really have the IMDb Top 250 populated here &amp;ndash; only the top 49. The second is that the spreadsheet updates only when you open it again. So it&amp;rsquo;s not really a dynamically updating feed. You need to open the spreadsheet to refresh it.&lt;/p&gt;
&lt;p&gt;But if you really wanted these things, there&amp;rsquo;s always &lt;a href=&#34;http://pipes.yahoo.com&#34;&gt;Yahoo! Pipes&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;comments&#34;&gt;Comments&lt;/h2&gt;
&lt;!-- wp-comments-start --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Gregory Dillon&lt;/strong&gt; &lt;em&gt;31 Dec 2007 12:00 pm&lt;/em&gt;:
Hey, thanks. Your page was the most helpful of all. In the example with the movie names, how did you figure out that it was a table x3. or table within table within table.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;http://www.s-anand.net/&#34;&gt;S Anand&lt;/a&gt;&lt;/strong&gt; &lt;em&gt;30 Mar 2010 9:04 pm&lt;/em&gt;:
Looks like the IMDb top 250 page format has changed. =importXML(&amp;ldquo;&lt;a href=&#34;http://www.imdb.com/chart/top%22&#34;&gt;http://www.imdb.com/chart/top&amp;quot;&lt;/a&gt;, &amp;ldquo;//div[@id=&amp;ldquo;&amp;ldquo;main&amp;rdquo;&amp;rdquo;]//table//font/a&amp;rdquo;) seems to work now.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sintl&lt;/strong&gt; &lt;em&gt;2 Jan 2011 4:24 am&lt;/em&gt;:
Hi
Is there a possibility to get selective text from webpage by using import url function.
=ImportHtml(URL; &amp;ldquo;list&amp;rdquo; | &amp;ldquo;table&amp;rdquo;; index)
I want to pull following text Updated Sunday, December 19, 2010 from a html page
Thnx&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;http://www.thebodyzoom.com&#34;&gt;Siamak&lt;/a&gt;&lt;/strong&gt; &lt;em&gt;26 Aug 2011 11:03 pm&lt;/em&gt;:
I have an excel file with the name of about 300 businesses that I want to look up their phone numbers or websites. Any idea how I can automate this, rather than type each entry in Google?
Thanks&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;akc&lt;/strong&gt; &lt;em&gt;30 Jul 2011 11:07 am&lt;/em&gt;:
Hey
Very Helpful website it is&amp;hellip;&amp;hellip;&amp;hellip;.Please help me
I wan to import data from (&lt;a href=&#34;http://dsebd.org/latest&#34;&gt;http://dsebd.org/latest&lt;/a&gt;_share_price_scroll_l.php ) . to google spreadsheet . I wan to import share price .
Now tell me which way i will use. I m failed&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- wp-comments-end --&gt;
</description>
    </item>
    <item>
      <title>Most popular movies on IMDb</title>
      <link>https://www.s-anand.net/blog/most-popular-movies-on-imdb/</link>
      <pubDate>Thu, 30 Nov 2006 12:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/most-popular-movies-on-imdb/</guid>
      <description>&lt;p&gt;Here are the top 1000 most popular movies on the Internet Movie database, along with their ratings and number of votes. I&#39;ve also marked whether I&#39;ve seen them or not, as of today.&lt;/p&gt;
&lt;p&gt;This list, incidentally, is part of my source for the post on &lt;a href=&#34;https://www.s-anand.net/blog/popular-lousy-movies/&#34;&gt;popular lousy movies&lt;/a&gt;.&lt;/p&gt;
&lt;iframe width=&#39;500&#39; height=&#39;800&#39; frameborder=&#39;0&#39; src=&#39;http://spreadsheets.google.com/pub?key=poz40xh4E1ufRC7YturhxJQ&amp;output=html&amp;gid=0&amp;single=true&amp;widget=true&#39;&gt;&lt;/iframe&gt;
&lt;p&gt;Here is the &lt;a href=&#34;http://spreadsheets.google.com/pub?key=poz40xh4E1ufRC7YturhxJQ&amp;output=xls&#34;&gt;Excel list of Top 1000 movies on IMDb&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;comments&#34;&gt;Comments&lt;/h2&gt;
&lt;!-- wp-comments-start --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Arch&lt;/strong&gt; &lt;em&gt;1 Dec 2006 10:14 am&lt;/em&gt;:
Your site is too good.I browse thru so many blogs every other day, but hav found nothing as entertaining and as informative as this one. U must be really gifted fella&amp;hellip;Y dont u post some pics of ur kid &amp;hellip;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;err&lt;/strong&gt; &lt;em&gt;1 Dec 2006 10:04 pm&lt;/em&gt;:
is to do.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;1 Dec 2006 10:35 pm&lt;/em&gt;:
Thanks, Arch. I haven&amp;rsquo;t gotten around to posting any family stuff. No specific reason. Maybe I will&amp;hellip;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Michelle&lt;/strong&gt; &lt;em&gt;5 Dec 2006 12:36 pm&lt;/em&gt;:
You have been writing movies, do you have top 10 books?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DeuceLee&lt;/strong&gt; &lt;em&gt;11 Dec 2009 2:37 am&lt;/em&gt;:
Hi, I really love your imdb top 1000. Seriously it&amp;rsquo;s great info. Can you get an updated version from imdb and swivel? Looks like it&amp;rsquo;s been a while (2006). :-)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Andreas Beer&lt;/strong&gt; &lt;em&gt;20 Oct 2010 4:38 pm&lt;/em&gt;:
Dude, you seriously should watch Yojimbo! Masterpiece! :D&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- wp-comments-end --&gt;
</description>
    </item>
    <item>
      <title>GTalk is more than a messenger</title>
      <link>https://www.s-anand.net/blog/gtalk-is-more-than-a-messenger/</link>
      <pubDate>Fri, 25 Aug 2006 12:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/gtalk-is-more-than-a-messenger/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://googlesystem.blogspot.com/2006/08/google-talk-not-just-instant-messenger.html&#34;&gt;Google Talk, Not Just An Instant Messenger&lt;/a&gt;. It&amp;rsquo;s used in Gmail, Google Desktop and Google Spreadsheets already. Google plans to use it in more of its services.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>How I use Google Spreadsheets</title>
      <link>https://www.s-anand.net/blog/how-i-use-google-spreadsheets/</link>
      <pubDate>Wed, 28 Jun 2006 12:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/how-i-use-google-spreadsheets/</guid>
      <description>&lt;p&gt;I work across multiple computers (my office laptop, home laptop, client desktop) on a daily basis.&lt;/p&gt;
&lt;p&gt;I used to transfer data across these by e-mailing them before I travelled. (I often forgot to do so.) Mostly, these are notes &amp;ndash; like telephone numbers, things to buy, places to visit, etc.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.google.com/notebook/&#34;&gt;Google Notebook&lt;/a&gt; solves the problem. But not entirely. I store a lot of my notes on spreadsheets, as lists. For example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Gadgets to buy (and accompanying research)&lt;/li&gt;
&lt;li&gt;Movies I&amp;rsquo;ve seen&lt;/li&gt;
&lt;li&gt;Books to read (and which library they&amp;rsquo;re available from)&lt;/li&gt;
&lt;li&gt;To do lists&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That&amp;rsquo;s what I use &lt;a href=&#34;http://spreadsheets.google.com/&#34;&gt;Google Spreadsheets&lt;/a&gt; for &amp;ndash; to share lists with myself, across computers.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;comments&#34;&gt;Comments&lt;/h2&gt;
&lt;!-- wp-comments-start --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Anand Srinivasan&lt;/strong&gt; &lt;em&gt;29 Nov 2006 11:10 pm&lt;/em&gt;:
I love google docs as the service is now called. I hope that Google will steadily add features to make this service comparable to Excel and Word. Being able to collaborate with others without having to mail these documents is the best feature in my opinion. Do you use Google Calendar ? I love it though i want google to introduce the feature of tasks and to-do lists which may not fit into a daily schedule.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;30 Nov 2006 12:25 pm&lt;/em&gt;:
Yeah, collaboration is clearly a big help. In fact, I used it on a project in Nov 2006. I do use GCal as well, mostly for public calendars and reminders (on my mobile).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Nozikins&lt;/strong&gt; &lt;em&gt;28 Jun 2006 12:00 pm&lt;/em&gt;:
I use gmail as my notes, reminders. google spreadseets for work, and data tracking and gathering among peers.&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- wp-comments-end --&gt;
</description>
    </item>
    <item>
      <title>Google Spreadsheets</title>
      <link>https://www.s-anand.net/blog/google-spreadsheets/</link>
      <pubDate>Thu, 08 Jun 2006 12:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/google-spreadsheets/</guid>
      <description>&lt;p&gt;I got an invite for &lt;a href=&#34;http://spreadsheets.google.com/&#34;&gt;Google Spreadsheets&lt;/a&gt;. Very impressive AJAX interface.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;comments&#34;&gt;Comments&lt;/h2&gt;
&lt;!-- wp-comments-start --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Dhar&lt;/strong&gt; &lt;em&gt;9 Jun 2006 11:36 am&lt;/em&gt;:
Tried Google Spreadsheets. Love the concept, but I seem to be missing the Grand Picture. How is Google going to integrate things like Calendar, Spreadsheets, Notebook, Browser Sync to give us an &amp;ldquo;Aha&amp;rdquo; moment? The glue that should hold these applications together seems to be missing. Quite a few of them are very average and scratch the itch for a small section of web population. Nothing earthshaking like Gmail or search. :(&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;9 Jun 2006 2:31 pm&lt;/em&gt;:
Funnily, the very apps you mentioned (Calendar, Notebook, Spreadsheets and Browser Sync) are the ones I use the most &amp;ndash; as much as GMail and search! You&amp;rsquo;re right, there isn&amp;rsquo;t much integration, except perhaps between Calendar and GMail. Maybe it&amp;rsquo;s coming. But even as standalone apps, I&amp;rsquo;m surprised at how much I use them. I&amp;rsquo;ll write about how I&amp;rsquo;m using these sometime&amp;hellip;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Madhu&lt;/strong&gt; &lt;em&gt;12 Jun 2006 7:03 pm&lt;/em&gt;:
Its more when than how i think&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- wp-comments-end --&gt;
</description>
    </item>
  </channel>
</rss>
