问题标签 [excel-2011]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
9639 浏览

excel - 带有 * 的通配符条件用于具有数字值的列上的 SUMIFS 公式

我有一个巨大的 excel 表,看起来像这样:

B 列包含许多不同的数字,但它们都以数字 2、3 或 8 开头。B 列中的数字始终为 4 位;我只对检查第一个数字感兴趣。

我需要将 C 列的值相加,其中 B 列中相应单元格的第一个数字是2*,3*8*。我需要的是创建一个执行此操作的公式(Ruby-esque 伪代码):

我正在尝试在 Excel 中使用以下公式来完成此操作:

我知道 Excel 不支持数字的通配符条件,但是,我已将 B 列格式化为 Excel 中的“文本”类型,所以我认为它会被这样处理,但它似乎仍被视为 int。

是否有不同的方法=SUMIFS在 Excel 中为数字值应用通配符条件?也许有一种方法可以以某种方式将整数“转换”为公式中的字符串?我还没有找到办法(还)。

我正在使用 Excel for Mac 2011。

0 投票
1 回答
1391 浏览

excel - 复选框在 mac 上不起作用

我编写了一个适用于复选框的 excel VBA 宏。要检查复选框是否被选中,我使用以下代码:

这在 Windows PC 上运行良好;但是,一位同事使用 mac 并在那里产生错误。

如何以与 windows 和 mac 兼容的方式使用复选框?

0 投票
1 回答
1600 浏览

vba - Excel VBA 无法编译 - MD5 哈希函数

现在试图在我通过互联网找到的 Excel 2011 for Mac 中实现 VBA 模块。以下模块在您看到的第三行失败As String

VBA 编译器错误

希望有人可以帮忙,因为这是我第一次玩 VBA。感谢帮助!

更新

错误消息文本:

未定义用户定义类型

0 投票
3 回答
2869 浏览

excel - 在 Excel (Mac) 中将文本转换为日期 (YYYY-MM-DD) 的问题

我已经能够将此日期转换为 YYYY-MM-DD HH:mm 但现在不行了。我能做些什么来转换这个日期。

2014 年 9 月 15 日上午 9:30:32

您需要知道我使用的是瑞典语键盘、日期和地区。

例子:

Order # Purchased On 100026881 Sep 15, 2014 9:30:32 AM 100026880 Sep 15, 2014 9:10:56 AM 100026879 Sep 15, 2014 9:09:10 AM 100026878 Sep 15, 2014 9:03:27 AM 100026877 Sep 15, 2014 8:57:02 AM 100026876 Sep 15, 2014 8:38:37 AM 100026875 Sep 15, 2014 6:54:29 AM 100026874 Sep 15, 2014 5:03:23 AM 100026873 Sep 15, 2014 2:45:50 AM 100026872 Sep 15, 2014 1:42:26 AM 100026871 Sep 14, 2014 11:20:31 PM 100026870 Sep 14, 2014 11:16:29 PM 100026869 Sep 14, 2014 11:11:15 PM 100026868 Sep 14, 2014 11:10:06 PM 100026867 Sep 14, 2014 10:42:56 PM 100026866 Sep 14, 2014 10:41:22 PM 100026865 Sep 14, 2014 10:36:43 PM 100026863 Sep 14, 2014 10:26:13 PM

0 投票
1 回答
256 浏览

vba - 从同一列中的活动自动过滤器中删除当前单元格的值

我有一个包含 +100k 行的大 Excel 表,并且在一列带有类别编号和描述的文本值上有一个自动过滤器。F 列中有数千个不同的值,因此通过使用标准 UI 更新自动过滤器是非常不切实际的。

如何创建一个宏,从同一列上处于活动状态的自动过滤器中删除当前活动单元格的值?

0 投票
0 回答
445 浏览

c++ - 大型 CSV 选项卡式分隔文本文件将无法在 Excel 2011 或 Mac 上的 OO 中打开

我们的 C++ 代码库中有一个工具,可以将 EEG 浮点值输出到制表符分隔的文本中。例如,如果我们有 256 个通道和 550000 个样本,我们会输出一个 CSV 选项卡式测试文件,该文件应在 Excel 中打开,包含 256 列和 550000 行。

当我尝试在 Open Office 中打开此文件时(按照打开 TDT 文件的说明),我可以看到进度条运行得很慢,最终完成,但文件永远不会打开。

当我尝试在 Excel 2011 for Mac 中打开它时,它会挂起几分钟,然后我最终会看到一个对话框“内存不足”。我查看活动监视器,我有 16 gigs 的内存,大约 2.7 个正在使用,当 Excel 返回此消息时,我仍然有大约 6 gigs 内存可用。转换此文件后的大小从大约 560MB 变为 1.81 gigs,这对于值的字符串大小似乎是正确的。

较小的文件(例如 100000 个样本和 256 个通道)可以正常打开并且看起来正确。

根据 Excel 的文档,它应该能够显示超过 100 万行和 16000 列之类的东西。

我编写了一个 Python 脚本来检查该文件,它应该有 550,000 行。我还编写了一些 C++ 测试代码,以确保它不是我在做的任何事情。

代码片段:

如果我将列数从 256 更改为 3,它工作正常。我是否应该假设因为这在 Excel 和 OO 中都发生了,所以 OS Mavericks 可能会引入某种类型的错误?

任何信息表示赞赏。

0 投票
2 回答
2652 浏览

excel - 仅在时间大于 60 分钟时显示小时

我正在使用时间跟踪表,通过在两个单元格中的开始时间和结束时间之间进行简单的减法来计算工作所花费的时间。

在这种hh:mm情况下,格式就足够了,或者作为我正在使用的一个小修改[h] "h" mm "m",但两者的问题是我不希望在没有小时数时显示小时数(当小时数 = 0 时)。

例如,如果记录了 35 分钟,我希望输出是35 m而不是0 h 35 m。格式可能是一个选项,但我仍然希望我的[mm]60 分钟以上的时间显示为1 h 30 m,而不是90 m

0 投票
4 回答
23892 浏览

excel - 匹配来自两个不同工作簿的文本,从不同列返回值

在我的生活中,我从未对 Excel 感到如此沮丧。我在工作中遇到了两个主要的截止日期,而将正确的信息传递给正确的人的唯一方法是解决以下问题。

我有两个工作簿,每个工作簿都有不同的“客户”指标,我需要将所有信息放入一个工作表中 - 不能简单地复制/粘贴数据,因为我可以在第一个工作簿中有客户 A,但是不是在第二个。此外,不能使用“客户名称”作为工作簿之间的唯一标识符,因为一个可能是“约翰史密斯公司”,另一个可能是“约翰史密斯公司”。

这是一个非常简化的示例:

工作簿 A

  • 客户编号
  • 在职员工人数

工作簿 B

  • 客户编号
  • 客户年限
  • 地点
  • 客户名称

在您将我标记为重复问题之前,请知道我已尝试以下公式无济于事:

=VLOOKUP(D2,[othersheet.xlsx]sheet1!$A:$D,2,FALSE)

=IF(ISERROR(EXACT(D2,[othersheet.xlsx]sheet1!$1:$1048576)), "True", VLOOKUP(D2,[othersheet.xlsx]sheet1!$1:$1048576,2,FALSE))

在这里失去理智 - 任何想法都会很棒。先感谢您!

预计到达时间:

我正在使用 Excel 2011 for Mac,v. 14.4.1。

0 投票
3 回答
2515 浏览

excel - ExecuteExcel4Macro 方法在 Mac 上的 Excel 2011 中失败,出现 1004 错误

因此,我是另一个希望使用 ExecuteExcel4Macro 方法调用从特定单元格中检索数据并在已关闭工作簿中查找范围的人。我在这里和其他地方看到了很多例子和问题的答案。我正在(或将要)使用约翰·沃肯巴赫(John Walkenbach)的一个变体例程,并在此处和其他论坛上引用。(参见 9311188 的线程。)

对 ExecuteExcel4Macro 的调用失败并出现错误“1004 - 对象 '_Global' 的方法 'ExecuteExcel4Macro' 失败”。对我来说,这不是很多事情要做。我已经仔细检查了目录路径、文件和工作表名称,所有这些。DIR() 函数发现文件正常。我什至将文件放在根目录中以消除路径复杂性或方法参数过长。一个复杂的问题是我在一台装有 OS 10.8 并使用 Excel 2011 的 Mac 上。Mac OS 使用“:”而不是“”作为目录分隔符。

但我真的不需要深入了解所有这些,因为问题似乎是关于单元格引用寻址的基本问题。我无法让 ExecuteExcel4Macro 在同一个工作表中成功执行,并使用一个 Excel 函数来处理任何单元格或范围,更不用说远程、封闭的工作表引用了。因此,我将示例代码浓缩为基本要素——没有远程引用,仅在一个工作表中的单元格上运行。

在下面的示例中,我有一个简单的例程,它执行一些示例 Excel 函数并显示一个带有成功结果或错误消息的 MessageBox,以及 Method 调用的参数。还有一个函数可以在需要时将 A1 样式引用转换为 R1C1。函数列表在例程中,只需根据需要注释/取消注释以执行要测试的任何一个。

前六个都可以正常工作,返回您期望的值:

arg = "GET.CELL(42)"        这将返回左边距,或者其他任何东西;
arg = "CHAR(65)"            很好,你会得到一个“A”;
arg = "LEN(""ABCDE"")"      不错,这是 5;
arg = "SUM(2,5,8)"          好的,15;
arg = "INFO(""directory"")" 是的,带有宏的活动工作簿的目录路径;
arg = "INFO(""numfile"")"   以及工作簿中的工作表数量(加 1?随便)。

所以从这里我知道我正在正确访问方法;它确实有效;您不要在参数中使用“=”;并且两个 INFO() 函数告诉我它能够访问有关此工作簿的信息;即它不需要明确的完整目录路径来找到它自己。

现在一些函数引用了工作表中的单元格。这些都可以作为工作表中单元格中的公式正常工作。但是它们作为对方法的调用失败,并带有相应的错误代码:

arg = "SUM(A32:A34)"           13 - 类型不匹配
正如预期的那样,该方法需要 R1C1 样式引用。

arg = "SUM(ValList)"           13 - 类型不匹配
好吧,这并不奇怪,所以它不适用于命名范围。太糟糕了,我指望着那个。

arg = MakeR1C1("SUM(A32:A34)") 1004 - 对象 '_Global' 的方法 'ExecuteExcel4Macro' 失败
现在很困惑。MakeR1C1() 将 A1 寻址转换为“SUM(R32C1:R34C1)”。

arg = "SUM(R32C1:R34C1)"       1004 - 对象 '_Global' 的方法 'ExecuteExcel4Macro' 失败
使用 R1C1 样式显式设置参数同样失败。

如果这是由于一些简单而明显的事情,我会感到非常尴尬。但我会冒险,因为我被难住了。
如果它不是那么简单,那么,大师们,就去做吧。如果我弄清楚了这个简单的引用寻址问题,那么远程文件引用也应该到位。

我将特别感谢任何可以在 Windows 版本中测试这些并让我知道你得到什么的人。这就是我最担心的——我无法修复的 Mac 不兼容问题。

提前感谢大家。
PS:我希望我已经正确标记了以上所有内容,我试过了。

编辑:也许我应该提到要运行我的 TestExcel4Macro() 子例程,我只是在 VBA 编辑器中混合 F5 键。

0 投票
3 回答
2984 浏览

excel - 根据月份名称获取日期值

我的情况如下:

  • 单元格 A1 - 包含当前月份的名称,例如“十月”
  • 单元格 A2 - 包含当前年份的值,例如“2014”
  • 单元格 A3 - 包含给定日期的值,例如“22”

我想用一个公式填充 A3,该公式将其值设为 2014 年 10 月 22 日,并将其格式化为日期,以便我可以在其他单元格中执行比较和计算 - 所以沿着22+ A1+的行A2。我尝试过使用该CONCATENATE功能,但这不允许我将单元格格式化为日期。

使用标准 Excel 函数是否可以实现这样的操作?