列公式月()我有一个数据表,其中有多个日期和时间。 我试图将所有日期更改为月份,甚至可能是月年格式。
我知道我之前已经通过选择公式列并将月份(日期和时间)放在一起来完成此操作,而不是使用重新编码将数字更改为一月 - 十二月。
当我今天尝试时,Month() 公式将我的日期更改为点。 我看过其他帖子,公式就是我应该使用的。 我不确定为什么我没有得到预期的结果?
回复:Col 公式月()万分感谢:)
回复:Col 公式月()这是一个可行的公式
Substr( Format( :Date, "Monddyyyy" ), 1, 3 ) || " " || Char( Year( :Date ) )
回复:Col 公式月()大家好,
我能够使用这个论坛上提供的很多帮助。 我正在寻找有关附表的帮助。 第 2 列包含 2019 年和 2020 年的月份。 我需要在下个月添加年份。
回复:Col 公式月()If(:month <= 2 | :month >=12,
season="Winter",
:month <=5, season="Spring",
:month <=8, season="Summer",
season="Fall"
); 回复:Col 公式月()如果我想从月份开始创建季节专栏,我该怎么办?
@朱利安写道:
你好@Herrera5238 ,
Substr() 是一个非常有用的字符函数,可以挑选出字符串的一部分。 Substr() 的参数显示在“帮助”>“脚本索引”中:
Substr(string, start, length)
因此,示例中的 1 和 3 告诉 Substr() 获取字符串并返回从字符串的第一个序数位置开始的 3 个字符。这样做的原因是我编写的公式的其余部分
Format( :Date Time, "Monddyyyy" )
根据指定的格式(“Monddyyyy”)返回日期的格式化版本。 如果您只使用该函数而不使用 Substr() ,您将得到具有如下值的行: "Jan012018" 。
如果您想要一个非缩写的月份,您需要做一些不同的事情。 我们可以从以下开始:
Format( :Date Time, "Date Long" )
它会返回类似:Monday, January 1, 2018。由于 Substr() 要求我们指定特定的起始位置和字符数,因此由于一周中的日子不同,因此分离该字符串不会很有用字符数。 但是,我们还有许多其他角色功能可供使用! Word() 是一个很棒的方法——它将根据某些分隔符返回字符串中的特定单词(默认是空格,但也可以是逗号,或者既是逗号又是空格,这正是我们所需要的)。 知道了这一点,我们可以使用以下公式:
Word( 2, Format( :Date Time, "Date Long" ), ", " )
阅读此内容的方法是:从格式化的日期时间列(使用 Date Long)中取出第二个单词(即 2),并使用逗号和空格作为单词的分隔符(注意在引号中我有一个逗号,然后是空格——这就是我告诉 JMP 使用两者的方式)。 这将为数据集中的第一行返回“January”。
但是,也许您还想要年末、年初或一些中间字符。 我们可以使用连接运算符 || 或函数 Concat() 来完成所有这些操作。 例如,假设我们想将年份放在每行字符串的末尾。 我们需要以某种方式获取年份(可能是指向 :Date Time 的 Year() 函数,或者我们可以再次使用 Words(),两者都可以)。 这是执行此操作的一种方法:
Word( 2, Format( :Date Time, "Date Long" ), ", " ) || "-" ||
Char( Year( :Date Time ) )
这将返回“January-2018”。 我在这里做了一件你可能意想不到的事情。 我包裹了年Char() 函数中的 ( :Date Time )。 这很重要,因为年( :Date Time ) 将返回年份的数字值,并且 Concat() 函数(或其内联运算符版本 ||)需要字符参数。 因此,在 Year() 周围添加一个简单的 Char() 可确保 Concat() 获得要使用的年份的字符表示形式。
您可以使用字符函数做很多事情,我鼓励您查看“帮助”>“脚本索引”中公式参考的“字符”部分。
我希望这有帮助!
@朱利安
回复:Col 公式月()@Herrera5238
我强烈地建议您熟悉脚本索引。
帮助==>脚本索引
朱利安和/或我自己在本次讨论中展示的每个函数都在索引中列出,在索引中定义,并且示例在索引中显示。
回复:Col 公式月()你好@Herrera5238 ,
Substr() 是一个非常有用的字符函数,可以挑选出字符串的一部分。 Substr() 的参数显示在“帮助”>“脚本索引”中:
Substr(string, start, length)
因此,示例中的 1 和 3 告诉 Substr() 获取字符串并返回从字符串的第一个序数位置开始的 3 个字符。这样做的原因是我编写的公式的其余部分
Format( :Date Time, "Monddyyyy" )
根据指定的格式(“Monddyyyy”)返回日期的格式化版本。 如果您只使用该函数而不使用 Substr() ,您将得到具有如下值的行: "Jan012018" 。
如果您想要一个非缩写的月份,您需要做一些不同的事情。 我们可以从以下开始:
Format( :Date Time, "Date Long" )
它会返回类似:Monday, January 1, 2018。由于 Substr() 要求我们指定特定的起始位置和字符数,因此由于一周中的日子不同,因此分离该字符串不会很有用字符数。 但是,我们还有许多其他角色功能可供使用! Word() 是一个很棒的方法——它将根据某些分隔符返回字符串中的特定单词(默认是空格,但也可以是逗号,或者既是逗号又是空格,这正是我们所需要的)。 知道了这一点,我们可以使用以下公式:
Word( 2, Format( :Date Time, "Date Long" ), ", " )
阅读此内容的方法是:从格式化的日期时间列(使用 Date Long)中取出第二个单词(即 2),并使用逗号和空格作为单词的分隔符(注意在引号中我有一个逗号,然后是空格——这就是我告诉 JMP 使用两者的方式)。 这将为数据集中的第一行返回“January”。
但是,也许您还想要年末、年初或一些中间字符。 我们可以使用连接运算符 || 或函数 Concat() 来完成所有这些操作。 例如,假设我们想将年份放在每行字符串的末尾。 我们需要以某种方式获取年份(可能是指向 :Date Time 的 Year() 函数,或者我们可以再次使用 Words(),两者都可以)。 这是执行此操作的一种方法:
Word( 2, Format( :Date Time, "Date Long" ), ", " ) || "-" ||
Char( Year( :Date Time ) )
这将返回“January-2018”。 我在这里做了一件你可能意想不到的事情。 我包裹了年Char() 函数中的 ( :Date Time )。 这很重要,因为年( :Date Time ) 将返回年份的数字值,并且 Concat() 函数(或其内联运算符版本 ||)需要字符参数。 因此,在 Year() 周围添加一个简单的 Char() 可确保 Concat() 获得要使用的年份的字符表示形式。
您可以使用字符函数做很多事情,我鼓励您查看“帮助”>“脚本索引”中公式参考的“字符”部分。
我希望这有帮助!
@朱利安
回复:Col 公式月()朱利安,
这个公式中的 1 和 3 对我们有什么作用?
如果我不想缩写或缩写年份怎么办?即 Jan-18 或 Jan-2018。
有没有地方可以参考可用的格式选项?
编写包括格式在内的公式将为我节省额外的重新编码步骤。
谢谢你的提示!!
回复:Col 公式月()吉姆,
我正准备说它仍然无法正常工作,并准备好屏幕截图。

我意识到问题是什么。 我试图在我引用的同一列上使用该公式。
我应该做的是创建一个新列并在此处添加公式。
一旦我这样做了,我就没有问题了。
我很感激你的帮助,但我感觉很糟糕,因为我错过了如此简单的事情。
回复:Col 公式月()感谢您附上文件。
我在将公式应用于您附加的数据表时没有遇到任何问题。
我应用的公式是
Month( :Date Time )
鉴于“日期时间”列是正确的 JMP 日期时间列,我怀疑您可能存在范围界定问题,即指定“日期时间”而不是“:日期时间”。在列名称前面放置一个冒号,告诉 JMP 使用名为“日期时间”的列,而不是名为“日期时间”的内存变量

回复:Col 公式月()你好@Herrera5238 ,
在您的数据集上,使用以下公式似乎对我来说效果很好:
Month( :Date Time )
另外,如果您要重新编码以将月份数字更改为月份缩写,您可以直接使用以下公式:
Substr( Format( :Date Time, "Monddyyyy" ), 1, 3 )
我已在此处附上您的示例数据表以及这些列公式。
@朱利安
回复:Col 公式月()你好吉姆,
我附上了数据表。 这是我在另一篇文章中找到的另一项内容。 所以我检查了专栏信息。它说数据类型是数字。 我正在从 Excel 导入这些数据,但这应该不是问题,不是吗? 我不记得上次这样做时遇到过这个问题,不过我想说上次我使用的是 JMP12 而不是 13。
回复:Col 公式月()我认为问题在于您在 Month() 函数中引用的列不是 JMP 日期或日期时间值。难道引用的列是字符串列而不是数字列?
如果您可以附上您正在处理的数据表的示例,那将会很有帮助。