非標準の日付値を使用した月の差の計算(Microsoft Excel)
イアンは、最初の列に生徒の年代順の年齢を9年11か月の9.11の形式で入力し、次の列に読書年齢(たとえば、10年6か月の場合は10.6)を入力してから、 3番目の列の月(この場合は7)。差は常に月で表示する必要があるため、1.2ではなく14か月、または2.0ではなく24か月としてギャップを表示する必要があります。
イアンはそのような公式をどのようにまとめるかについて途方に暮れています。
秘訣は、単純に共通の単位セット(この場合は数か月)に変換することです。したがって、たとえば、10.6は12 * 10 + 6、つまり126か月になります。このタイプの変換を年代順の年齢と読書の年齢の両方に行う場合は、違いを判断するために必要な減算を数か月で行うことができます。
ただし、ここには大きな注意点があります。非標準の日付をワークシートに入力する方法は、そのデータの操作方法に大きな影響を及ぼします。この問題は、10歳10か月を意味する10.10などの日付値を検討することで最もよく説明されます。この値をセルに直接入力すると、末尾の0は(Excelにとって)重要ではないため、Excelはそれを数値として解析し、自動的に10.1に変更します。残念ながら、この値は10.1と区別がつかず、10年1か月を意味します。
2つの可能な解決策があります。数値を入力する場合は、月の先頭に常に0を含めるようにしてください。
したがって、10.1または10.6ではなく、10.01または10.06と入力します。
ただし、Ianの問題ステートメントでは、例として10.6を具体的に使用しています。これは、先行ゼロが入力されていないことを意味します。この場合、入力する内容がExcelによってテキストとして解析されることを確認する必要があります。つまり、日付の入力を開始する前に、これらの日付入力列をテキストとしてフォーマットしてください。このように、Excelは10.10をそのように表示し、末尾にゼロを付けます。
計算に使用するすべてのソリューションは、月の先頭にゼロを付けて日付を入力するか、テキスト値として日付を入力することを前提としています。すべての場合において、年代順の年齢が列Aにあり、読書年齢が列Bにあると仮定しましょう。
日付がテキストとしてフォーマットされている場合は、列Cで次のような数式を使用できます。
=INT(B1)12+MID(B1,FIND(".",B1)+1,2)-(INT(A1)12+MID(A1,FIND(".",A1)+1,2))
読書年齢が年代順の年齢よりも大きい場合は正の値を返し、読書年齢が年代順の年齢よりも小さい場合は負の値を返します。日付を数値として入力した場合、年齢を10.00(10年0か月を意味する)と入力した場合でも、Excelはその値を10として解析するため、数式を使用できません。
次に、数式は#VALUE!を返します。 FIND関数が存在しない小数点を見つけることができないため、エラーが発生します。
数値形式の日付を使用している場合(ここでも、月の先行ゼロを使用)、次の2つの式のいずれかに依存できます。
=12(INT(A1)-INT(B1))+100(MOD(A1,1)-MOD(B1,1)) =(DOLLARDE(A1,12)-DOLLARDE(B1,12))*12
重要なのは、日付値のフォーマット方法に一貫性を持たせ、数値形式で入力する場合は月に先行ゼロを使用し、テキストまたは数値のどちらで作業しているかに基づいて適切な数式を使用することです。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(10095)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice365のExcelに適用されます。