Table Excel VBA 中的操作
Table Manipulations in Excel VBA
我在一张 sheet 的顶部 table 上有以下 table,我需要在第二张 [=24] 上将其转换为不同的格式=](图片底部table)。我需要在 Excel 中使用 VBA 来执行此操作。我从单独的 sheet 上的 SQL 查询中提取了主 table(顶部),需要重新排列它以满足我的需要。我有比这更多的数据,但它遵循相同的格式。想象一下,只有更多的货架、物品、数量和商店。
我到处搜索,但似乎找不到直接的答案。
我对 VBA 比较陌生。有人可以给我一些指示吗? table 在 Excel VBA 中是否有一些关于 table 操作的教程?
除了智力上的追求,完全没有必要VBA。根据您的示例,将此 数组公式 放入 C24.
=IFERROR(INDEX($B:$B, MATCH(0, IF(LEN($B:$B), COUNTIF($B24:B24, $B:$B), 1), 0)), "")
使用Ctrl+Shift+Enter↵完成。正确输入后,向右填写,直到 运行 没有要检索的值。
在 A25 中使用此标准公式。
=IF(COUNTIF(A:A24, MOD(ROW(1:1)-1, MAX(A:A))+1)<SUMPRODUCT((D:D<>"")/COUNTIF(D:D, D:D&"")), MOD(ROW(1:1)-1, MAX(A:A))+1, "")
向下填写以获得您需要的所有架子。
在 B25 中使用这个 数组公式,
=IF(AND(ROW(1:1)>1,COUNTIF(A:A25, A25)=COUNTIF(A:A24, A24)), B24, IFERROR(INDEX($D:$D, MATCH(0, IF(LEN($D:$D), COUNTIF(B:B24, $D:$D), 1), 0)), ""))
使用Ctrl+Shift+Enter↵完成。向下填写以捕获所有商店。
最后把这个放到C25里。
=SUMIFS($C:$C, $A:$A, $A25, $B:$B, C, $D:$D, $B25)
向右填充 D25,然后填充 C25:D25 直到 table 的长度。
我的第二个 table 的唯一区别是 Water 出现在 Gartorade 之前,这是它出现的结果第一个 table 的 项 列在第一位。
我在一张 sheet 的顶部 table 上有以下 table,我需要在第二张 [=24] 上将其转换为不同的格式=](图片底部table)。我需要在 Excel 中使用 VBA 来执行此操作。我从单独的 sheet 上的 SQL 查询中提取了主 table(顶部),需要重新排列它以满足我的需要。我有比这更多的数据,但它遵循相同的格式。想象一下,只有更多的货架、物品、数量和商店。
我到处搜索,但似乎找不到直接的答案。
我对 VBA 比较陌生。有人可以给我一些指示吗? table 在 Excel VBA 中是否有一些关于 table 操作的教程?
除了智力上的追求,完全没有必要VBA。根据您的示例,将此 数组公式 放入 C24.
=IFERROR(INDEX($B:$B, MATCH(0, IF(LEN($B:$B), COUNTIF($B24:B24, $B:$B), 1), 0)), "")
使用Ctrl+Shift+Enter↵完成。正确输入后,向右填写,直到 运行 没有要检索的值。
在 A25 中使用此标准公式。
=IF(COUNTIF(A:A24, MOD(ROW(1:1)-1, MAX(A:A))+1)<SUMPRODUCT((D:D<>"")/COUNTIF(D:D, D:D&"")), MOD(ROW(1:1)-1, MAX(A:A))+1, "")
向下填写以获得您需要的所有架子。
在 B25 中使用这个 数组公式,
=IF(AND(ROW(1:1)>1,COUNTIF(A:A25, A25)=COUNTIF(A:A24, A24)), B24, IFERROR(INDEX($D:$D, MATCH(0, IF(LEN($D:$D), COUNTIF(B:B24, $D:$D), 1), 0)), ""))
使用Ctrl+Shift+Enter↵完成。向下填写以捕获所有商店。
最后把这个放到C25里。
=SUMIFS($C:$C, $A:$A, $A25, $B:$B, C, $D:$D, $B25)
向右填充 D25,然后填充 C25:D25 直到 table 的长度。
我的第二个 table 的唯一区别是 Water 出现在 Gartorade 之前,这是它出现的结果第一个 table 的 项 列在第一位。