つまり、複数の折れ線を含む折れ線グラフがあります。そのように。
各行にデータラベルを追加したいのですが、右側の最後の値にのみです。
個別のラベルを削除できるかどうかはわかります。しかし、新しい値をテーブルに追加すると、新しい値は新しいラベルで表示されますが、これは適切ですが、以前の値は手動で削除する必要がありました。ラベルを自動的に右に移動する方法はありますか?
私の他の回答では、移動する最後のポイント(つまり、追加されたデータポイント)を考慮していません。単一の移動ラベルを可能にするためにデータを調整することは大したことではありません。
ここでは1つのデータシリーズのみを示していますが、トリックを知っていれば、必要な数だけ簡単に実行できます。次のデータセットには、Date列と、同じヘッダーの2つの列Valueがあります。最初の値列には、日付範囲の中央までの値があります。 2番目の列には、最後の値のみを表示する数式があります。これはセルC2の数式です。
=IF(AND(ISNUMBER(B2),LEN(B3)=0),B2,NA())
この数式は列の下にコピーされます。
次に、すべてのデータのグラフを作成します。最初の値系列は青い円と線で、2番目の値系列は最後の青い点のオレンジ色の円です。オレンジではなく、青のシリーズにラベルを追加しました。
2番目のグラフは、それがクリーンアップされたことを示しています。2番目のValueシリーズをフォーマットして、マーカーも線も使用せず、凡例を削除しました。
次のグラフでは、いくつかのデータポイントを追加するだけです。私の側でそれ以上の努力なしに、レーベルは新しい最後のポイントに移動しました。
シリーズ全体を選択すると、シリーズの各ポイントにラベルが付けられます。
ラベルを付ける単一のポイントのみを選択します。1回クリックして系列を選択し、もう一度クリックして1つのポイントを選択します。右クリックメニューまたはプラス記号アイコンを使用してデータラベルを追加すると、選択した1つのポイントにのみラベルが追加されます。
最後のポイントにラベルを追加するだけで、グラフに ""ラベルの束を残さないVBAアプローチの場合、これは私のチュートリアルの簡単な手順 Excel 2007のラベルの最後のポイント です。具体的には、アクティブなグラフの各シリーズの最後のポイントにシリーズ名を付けます。
Sub LastPointLabel()
Dim mySrs As Series
Dim iPts As Long
Dim vYVals As Variant
Dim vXVals As Variant
If ActiveChart Is Nothing Then
MsgBox "Select a chart and try again.", vbExclamation
Else
Application.ScreenUpdating = False
For Each mySrs In ActiveChart.SeriesCollection
With mySrs
vYVals = .Values
vXVals = .XValues
' clear existing labels
.HasDataLabels = False
For iPts = .Points.Count To 1 Step -1
If Not IsEmpty(vYVals(iPts)) And Not IsError(vYVals(iPts)) _
And Not IsEmpty(vXVals(iPts)) And Not IsError(vXVals(iPts)) Then
' add label
mySrs.Points(iPts).ApplyDataLabels _
ShowSeriesName:=True, _
ShowCategoryName:=False, ShowValue:=False, _
AutoText:=True, LegendKey:=False
Exit For
End If
Next
End With
Next
' legend is now unnecessary
ActiveChart.HasLegend = False
Application.ScreenUpdating = True
End If
End Sub
私はこれについてたくさんの記事を書きました:
さらに、私の商用Excelグラフ作成ソフトウェアには、この機能の更新バージョンが含まれています。
私はあなたに両方のオプションを提案したいと思います。最初は非VBAであり、他はVBAコードです
非VBAソリューション:
Excelには、1つのデータラベルのみを割り当てるための配置がないため、一連のセルがグラフの作成に関与している場合。
ただし、グラフが作成された後、ラベルをリセットできます。
あなたのケースでは、ラベルが適用された後、線を右クリックすると、ラベルを編集する準備ができていることがわかります。 [ラベル]を1つずつ選択し、右クリックして削除するか、グラフエリアの横にある[値のチェック]チェックボックスをオフにします。
VBAソリューション:
1つのコマンドボタンを作成し、このコードを入力します。
単にグラフを作成するだけで、データラベルは適用しないことを忘れないでください。すべての準備が整ったら、[コマンド]ボタンをクリックします。コードは最初にすべてのデータラベルを作成し、最後に最後のものを保持します。
コマンドボタンがなくても、このコードをRUN MACROとしてラムすることができることに注意してください。
Sub LastDataLabel()
Dim ws As Worksheet
Dim chrt as Chart
Dim srs as Series
Dim pnt as Point
Dim p as Integer
Set ws = ActiveSheet
Set chrt = ws.ChartObjects("Line Chart")
Set srs = chrt.SeriesCollection(1)
srs.ApplyDataLabels
For p = 1 to srs.Points.Count - 1
Set pnt = srs.Points(p)
p.Datalabel.Text = ""
Next
srs.Points(srs.Points.Count).DataLabel.Format.TextFrame2.TextRange.Font.Size = 10
End Sub
これがお役に立てば幸いです。