Pages

Monday, March 23, 2015

Merge adjacent rows of same data with VBA code

From: http://www.extendoffice.com/documents/excel/1138-excel-merge-same-value.html

1. Hold down the ALT + F11 keys, and it opens the Microsoft Visual Basic for Applications window.
2. Click Insert > Module, and paste the following macro in the Modulewindow.
------------------------------------------------------------
Sub MergeSameCell()
'Updateby20131127
Dim Rng As Range, xCell As Range
Dim xRows As Integer
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
xRows = WorkRng.Rows.Count
For Each Rng In WorkRng.Columns
For i = 1 To xRows - 1
For j = i + 1 To xRows
If Rng.Cells(i, 1).Value <> Rng.Cells(j, 1).Value Then
Exit For
End If
Next
WorkRng.Parent.Range(Rng.Cells(i, 1), Rng.Cells(j - 1, 1)).Merge
i = j - 1
Next
Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
------------------------------------------------------------
  3. Then press the F5 key to run this code, a dialog is displayed on the screen for selecting a range to  work with.

Thursday, February 19, 2015

有效关闭win8.1的触摸键盘

转:http://billow.gdut2008.blog.163.com/blog/static/7558963020143210127370/

win8.1的触摸键盘其实是一个服务,只需将其停用即可。 win key + s,输入“服务”,进入“查看本地服务”,找到“Touch Keyboard and Handwriting Panel Service”,可以看到这个服务的功能介绍。
如果只是想临时停用,将该服务停止即可。
如果想长期停用:首先停止该服务,然后将其启动类型改为“禁用”,这样的话重启电脑之后也不会自动启动这触摸键盘了。需要使用该功能时只需来这里将该服务启动即可。
注意,若只是将其启动类型改为“手动”,则有些输入框能通过触发方式启动该服务,这样的话又相当于“自动启动”了,目前发现chrome的输入框可以触发。

服务的启动或关闭也可以通过控制台实现,win key + x,再键入“A”键,以管理员身份运行控制台,以停用win8.1的触摸键盘服务为例,输入下面命令行并回车即可实现
net stop tabletinputservice
当然,下面的命令行可以实现启动该服务:
net start tabletinputservice
        
        去除任务栏中触摸键盘的图标显示:
         右键任务栏空白处--工具栏--把 触摸键盘 的勾去除
如何有效关闭win8.1的触摸键盘 - billow - Billow

Wednesday, February 18, 2015

excel countif函数中,条件设置为大于某个单元格数字怎么设置

转: http://zhidao.baidu.com/link?url=ktjG826Ixj9P5CFJb1qIQoSqSeIqa24hwV3dK-tLlNJwRmoBm3pU_9sZmetsOsjPZRL6wG-UPbxbAUlYzk3oHK

问:
如大于D4,">D4",但实际统计时是计算的D4,而不是D4单元格中的数值,怎么办?我要的是大于那个单元格中的数值,谢谢
我是有一列数,求这列数中大于本列数之和的0.9倍值和小于本列数值之和的1.1倍,怎么设置
 
答:
求数值用if函数

求个数用countif函数  =countif(A:A,">"&D4)

实在不行就用sum(if())镶嵌的数组函数,不过应该不会不行

countif函数的参数不能引用
 
尼玛这个折腾死了……  

Wednesday, February 11, 2015

EXCEL 返回非空最后一行的行号

转:http://www.360doc.com/content/13/1017/09/8249701_322042700.shtml

A1-A9:数字/字母/汉字
 A10-A12:空格
A13:汉字  
如何返回A13的行数13  
就是说一列数,中间不定单元格有空格 要返回最后个有数据的行数    
 =LOOKUP(1,0/(A1:A65535<>""),ROW(1:65535))  
或者数组公式:  =MAX((A1:A65535<>"")*ROW(A1:A65535))
输入后要按Ctrl+Shift+Enter 
 
 
LOOKUP()函数采用“二分法”进行查数,因此,要求源数据必须进行升序排序。但是,世事无绝对,总有一些牛人能想出各种办法,在不排序的情况下用LOOKUP()!!
公式:=LOOKUP(1,0/($A$2:A$696=F2),$C$2:C$696)
公式释义:$A$2:A$696=F2得到的是False、True的序列,在Excel中,涉及到数学运算时,False=0,True=1,因此用0除后,得到的是#DIV/0!、0序列。注意:在Excel中,所有错误值不参与排序,不参与字符串的比较,或者说:错误值比所有的数值、字符串都要“大”。而公式的作用是在生成的#DIV/0!、0序列中找到小于或等于1的最大值,因为错误值不参与排序,因此只能找到0(也就是$A$2:$A$696=F2成立的地方!!!!并且只有一个!!!),然后返回相对应的$C$2:$C$696中的数值。

另 外,因为“二分法”的缘故,如果源数据中有好几个符合条件的值(这些值肯定是相等的!!),那么LOOKUP()总会返回排在最后面的一个(而 VLOOKUP()总会返回第一次!!)。因此,假设A列有许多数据,并且里面还有空格,想找到最后一个单元格的位置,怎么办?如果没有空格,可以用公 式:
=COUNTA(A1:A65535)
现在有空单元格,可以用公式:
=LOOKUP(1,0/(A1:A65535<>""),ROW(A1:A65535))
与上面的公式原理相同。

Excel 引用单元格的数值 作为行号

转:http://zhidao.baidu.com/link?url=1reARhidPoTbfoAOeb3eClivMajgBoYdMQo2tzZ9Jp7kE9v-gZRt-gmMM2-CxYMuQSOz6oGRagaTXa8stDlNPIEGeobGqT58vMb5_5Mzteq

比如这个公式=COUNTIFS(E$2:E$288,">="&W3)/(COUNTA(D:D)-1)*100,这里的E$288, 288从A1单元格数值,随A1单元格 数值改自动改变。
 
=COUNTIF(E$2:INDIRECT(ADDRESS(A1,COLUMN(E1))),">="&W3)/(COUNTA(D:D)-1)*100
 
引用规则:
 
A1相对引用
$A1绝对引用列
A$1绝对引用行
$A$1绝对引用行和列
$在谁的前面就绝对引用谁
F4是在四种引用间相互转换的快捷键(在编辑栏输入公式时按下F4功能键可进行切换)

相对引用、绝对引用和混合引用是指在公式中使用单元格或单元格区域的地址时,当将公式向旁边复制时,地址是如何变化的。 
具体情况举例说明: 
      1、相对引用,复制公式时地址跟着发生变化,如C1单元格有公式:=A1+B1 
当将公式复制到C2单元格时变为:=A2+B2 
当将公式复制到D1单元格时变为:=B1+C1
      2、绝对引用,复制公式时地址不会跟着发生变化,如C1单元格有公式:=$A$1+$B$1 
当将公式复制到C2单元格时仍为:=$A$1+$B$1 
当将公式复制到D1单元格时仍为:=$A$1+$B$1
       3、混合引用,复制公式时地址的部分内容跟着发生变化,如C1单元格有公式:=$A1+B$1 
当将公式复制到C2单元格时变为:=$A2+B$1 
当将公式复制到D1单元格时变为:=$A1+C$1 
       规律:加上了绝对地址符“$”的列标和行号为绝对地址,在公式向旁边复制时不会发生变化,没有加上绝对地址符号的列标和行号为相对地址,在公式向旁边复制时会跟着发生变化。混合引用时部分地址发生变化。
 

Friday, January 30, 2015

转:X11 forwarding-基于SSH使用远程X-Windows应用

From: http://blog.sina.com.cn/s/blog_6808fbed0100wrt4.html

X11 forwarding-基于SSH使用远程X-Windows应用

(2012-03-02 17:48:58)
标签:

杂谈


首先简单的介绍一下X 系统。 X 系统分为X server&X client部分,X server&X  client之间是通过XDMCP (X Display Manager Control Protocol)协议进行传输的。
x server 服务端负责处理和用户的交互,也就是图形的显示,键盘鼠标的输入等等.而客户端就是一个个应用程序。
其中服务端又分为2部分,一个是处理图形的显示单元,另一个是窗口管理器也就是处理应用程序的标题,边框等等的部分。
任何一个涉及xwindows的应用程序,在启动后都会发出tcp连接连往xserver的6000端口(默认得 0)xserver接受请求,通过认证后,就会负责该应用程序的界面。
这个模式哪怕是在本机都是如此。因此,x-windows具有极高的远程管理能力。
在win 下,常用的X server有 Exceed, X-win32等。
而ssh登陆工具我选择putty,体积小,功能强大,免费软件。(Xshell)
1, 打开X-win32, 通过x-config 设置Display number为 0. 此时 x-win32开始监听6000端口。
       如果你设置你的Display number 为1,那么监听的端口是6001,以此类推。
2, 打开putty
       在Connectin->ssh  选中Enable compression
       在Connection->ssh->Tunnels  选中 Enable X11 forwarding,X display  location中的设置要和x-win设置的 Display number 保持一致: localhost:0 或者(locaohost:1 )
( Connection->ssh->X11)
3,ssh登陆linux主机,然后输入 # xterm &
       你的win系统中就会弹出一个xterm的界面,你就可以通过xterm来操作远程的机器了。
    注意: 如果在x-config ->window中选择Multiple,否则选择single的话,如果不启动窗口管理, 你在putty中敲入的第二个xterm窗口会完全覆盖第一个xterm窗口。而在multiple模式下,每个xterm各占用一个独立的窗口,可以用鼠标进行控制,移动。
再次表示惊讶:putty这个小软件功能实在是强大。
ps: 1 要确定远程主机配置文件/etc/ssh/sshd_config是否有
      X11Forwarding  yes
          这一行;
   Exceed ,X-win32是商业软件。cygwin 带有免费的X-server
           运行cygwin,输入startxwin.bat 来运行X-server (可以用Xming)