如何在excel2007中实现宏的快捷键

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在excel2007中实现宏的快捷键相关的知识,希望对你有一定的参考价值。

方法如下:

1.Alt+F8,打开宏界面,选择需要设置快捷键的宏,点击”选项“按钮:

2.输入宏需要设定的快捷键,点击确定:

3.这样就设置好了,按下自定义的快捷键,就会自动运行宏。

参考技术A 点击文件-选项 找到快速访问工具栏,选择开发工具选项卡 将“插入控件”添加至右侧,确定 点击屏幕顶端插入控件里的按钮就可以添加按钮了 添加按钮后会自动让你指定一个宏 选择你创建的宏,点击确定,当你点击按钮时就会自动执行该宏本回答被提问者采纳

如何在Python中实现EXCEL的查找功能

【中文标题】如何在Python中实现EXCEL的查找功能【英文标题】:How to implement EXCEL's lookup function in Python 【发布时间】:2019-07-05 23:15:19 【问题描述】:

我一直试图弄清楚如何在 Python 中实现类似于 EXCEL 的VLOOKUP 函数的功能,以便使用一个共同的值组合多个数据集。我想出了一个确实有效的方法,但我觉得这不是最好的解决方案。在下面的示例中,为了说明我的问题,我将数据集限制为三个,但实际上,我可能有很多数据集

import pandas as pd
import numpy as np

time_a   = np.arange(0, 10010, 10)
data_a1  = np.random.randint(1500, 2500, 1001)
data_a2  = np.random.randint(750, 1500, 1001)

time_b   = np.arange(0, 10005, 5)
data_b1  = np.random.randint(0, 10, 2001)
data_b2  = np.random.randint(0, 20, 2001)
data_b3  = np.random.randint(0, 15, 2001)

time_c   = np.arange(0, 10030, 30)

df_a     = pd.DataFrame('time_a': time_a, 'data_a1': data_a1, 'data_a2': data_a2)
df_b     = pd.DataFrame('time_b': time_b, 'data_b1': data_b1, 'data_b2': data_b2, 'data_b3': data_b3)
df_c     = pd.DataFrame('time_c': time_c)

df_a_c   = pd.merge_asof(df_c, df_a, left_on=['time_c'], right_on=['time_a'])
df_a_b_c = pd.merge_asof(df_a_c, df_b, left_on=['time_c'], right_on=['time_b'])

考虑到我有三个数据集(我想避免),我需要使用pd.merge_asof 两次,以使其正常工作。由于我现在得到了三个相同的不同时间(time_atime_btime_c),也许将其中一个重命名为 time 并删除另外两个也很方便:

df_a_b_c.rename(columns='time_c':'time', inplace=True)
df_a_b_c.drop(columns=['time_a', 'time_b'])

受到https://codereview.stackexchange.com/questions/124964/vlookup-in-python的启发,我也尝试使用,没有任何运气

def vlookup(key, table, column, approximate_match=True):
    compare = key.__ge__ if approximate_match else key.__eq__
    try:
        return max(row for row in table if compare(row[0]))[column]
    except ValueError:
        return None
可以使用例如 numpy 来执行此操作,还是我必须绕过 pandas? 是否必须多次使用pd.merge_asof 才能合并多个数据集? 如果我只想选择某些列而不合并整个数据集,这可能吗? 在 Python 中推荐的做法是什么?

我非常感谢任何帮助。

【问题讨论】:

【参考方案1】:

np.searchsorted 与 VLOOKUP 相同(实际上,与 INDEX + MATCH 相同)设置为 -1 或 +1(向上或向下排序)。

df_a     = pd.DataFrame('time': time_a, 'data_a1': data_a1, 'data_a2': data_a2)
df_b     = pd.DataFrame('time': time_b, 'data_b1': data_b1, 'data_b2': data_b2, 'data_b3': data_b3)
df_c     = pd.DataFrame('time': time_c)

for df in [df_a, df_b]:
    for c in df.columns:
        if c == 'time':
            continue
        df_c[c] = df[c].iloc[np.clip(df['time'].searchsorted(df_c.time), 0, len(df)-1)].values

【讨论】:

以上是关于如何在excel2007中实现宏的快捷键的主要内容,如果未能解决你的问题,请参考以下文章

如何在excel中新建一个宏,设置快捷键?

如何在excel中新建一个宏,设置快捷键?

带宏的excel无法在sharepoint上显示吗

Excel 保存文件出现 您试图打开的文件类型(Excel 2007和更高版本的启用宏的工作簿和模板)被信任中心的文件阻止设置阻止

EXCEL宏的快捷键可以使用一个单键吗 F1什么的不用的?

正则表达式如何匹配excel文件