Ich denke nicht, dass Sie es in nativem Excel tun können, aber wenn Sie bereit sind, ein Add-In zu verwenden, ist es möglich. Mit dem Funfun-Add-In können Sie diese Art von Diagramm mit Javascript in Excel erstellen.
Hier ist ein Arbeitscode, den ich für Sie geschrieben habe:
https://www.funfun.io/1/#/edit/5a69ddc9ee0b8c3283c653e0
Ich habe das gewünschte Format verwendet. Ich habe nur die Daten geändert, um zwei verschiedene Rechtecke mit jeweils nur zwei Koordinaten zu erstellen.
Wie Sie in diesem Link sehen können, habe ich einen Online-Editor von Funfun verwendet, in dem ich Ihre Tabelle in die eingebettete Tabelle eingegeben habe.
Ich verwende eine JSON-Datei, um die Daten aus der Tabelle in meinen Javascript-Code als solchen zu übertragen:
{
"data": "=A1:E3"
}
Ich speichere dann die Daten in lokalen Variablen und erstelle meine Rechtecke mit den richtigen Koordinaten:
/* we store the data from the spreadsheet in local variables */
var label = [];
var x = [];
var y = [];
for (var i = 1; i < $internal.data.length; i++)
{
label.push($internal.data[i][0]);
x.push([parseInt($internal.data[i][1]), parseInt($internal.data[i][3])]);
y.push([parseInt($internal.data[i][2]), parseInt($internal.data[i][4])]);
}
/* create all the shapes you want with the data stored */
var shapes = [];
var traces = [];
for (var i = 0; i < $internal.data.length - 1; i++) {
shapes.push({
type: 'rectangle',
xref: 'x',
yref: 'y',
fillcolor: 'rgba(50, 171, 96, 0.7)',
x0: x[i][0],
y0: y[i][0],
x1: x[i][1],
y1: y[i][1],
line: {
color: 'rgba(50, 171, 96, 1)'
}
});
traces.push({
x: [x[i][0] + 3.5],
y: [y[i][0] - 2],
text: label[i],
mode: 'text'
});
}
Das shapes
Array ist für die Rechtecke und das trace
ist, um jedes Rechteck zu beschriften.
Sie können Ihr Diagramm beliebig anpassen. Es stehen zahlreiche Optionen zur Verfügung. Dies ist das Schöne an Javascript und seinen leistungsstarken Bibliotheken. In diesem Beispiel habe ich plotly.js verwendet
Sie können es in Excel laden, indem Sie die URL in das Funfun Excel-Add-In einfügen . So sieht es mit meinem Beispiel aus:
Bearbeiten
Wenn Sie Text in die Formen schreiben möchten, benötigen Sie nur weitere lokale Variablen mit den darin gespeicherten Werten und suchen die richtigen Koordinaten als solche:
var textInRectangles = ["First", "second"];
...
traces.push({
x: [x[i][0] + 2.5],
y: [y[i][0] + 4],
text: textInRectangles[i],
textfont: {
color: 'black',
size: 9,
family: 'Arial'
},
mode: 'text'
});
Ich habe den Link des Beispiels oben geändert.
Offenlegung: Ich bin ein Entwickler von Funfun.